Browse code

Added README.md appinfo/info.xml appinfo/signature.json lib/Controller/AuthorApiController.php and the providers directory

DoubleBastionAdmin authored on 20/08/2022 16:33:00
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,118 @@
1
+<?php
2
+
3
+namespace Telnyx\ApiOperations;
4
+
5
+/**
6
+ * Trait for resources that have nested resources.
7
+ *
8
+ * This trait should only be applied to classes that derive from TelnyxObject.
9
+ */
10
+trait NestedResource
11
+{
12
+    /**
13
+     * @param string $method
14
+     * @param string $url
15
+     * @param array|null $params
16
+     * @param array|string|null $options
17
+     *
18
+     * @return \Telnyx\TelnyxObject
19
+     */
20
+    protected static function _nestedResourceOperation($method, $url, $params = null, $options = null)
21
+    {
22
+        self::_validateParams($params);
23
+
24
+        list($response, $opts) = static::_staticRequest($method, $url, $params, $options);
25
+        $obj = \Telnyx\Util\Util::convertToTelnyxObject($response->json, $opts);
26
+        $obj->setLastResponse($response);
27
+        return $obj;
28
+    }
29
+
30
+    /**
31
+     * @param string $id
32
+     * @param string $nestedPath
33
+     * @param string|null $nestedId
34
+     *
35
+     * @return string
36
+     */
37
+    protected static function _nestedResourceUrl($id, $nestedPath, $nestedId = null)
38
+    {
39
+        $url = static::resourceUrl($id) . $nestedPath;
40
+        if ($nestedId !== null) {
41
+            $url .= "/$nestedId";
42
+        }
43
+        return $url;
44
+    }
45
+
46
+    /**
47
+     * @param string $id
48
+     * @param string $nestedPath
49
+     * @param array|null $params
50
+     * @param array|string|null $options
51
+     *
52
+     * @return \Telnyx\TelnyxObject
53
+     */
54
+    protected static function _createNestedResource($id, $nestedPath, $params = null, $options = null)
55
+    {
56
+        $url = static::_nestedResourceUrl($id, $nestedPath);
57
+        return self::_nestedResourceOperation('post', $url, $params, $options);
58
+    }
59
+
60
+    /**
61
+     * @param string $id
62
+     * @param string $nestedPath
63
+     * @param string|null $nestedId
64
+     * @param array|null $params
65
+     * @param array|string|null $options
66
+     *
67
+     * @return \Telnyx\TelnyxObject
68
+     */
69
+    protected static function _retrieveNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
70
+    {
71
+        $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
72
+        return self::_nestedResourceOperation('get', $url, $params, $options);
73
+    }
74
+
75
+    /**
76
+     * @param string $id
77
+     * @param string $nestedPath
78
+     * @param string|null $nestedId
79
+     * @param array|null $params
80
+     * @param array|string|null $options
81
+     *
82
+     * @return \Telnyx\TelnyxObject
83
+     */
84
+    protected static function _updateNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
85
+    {
86
+        $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
87
+        return self::_nestedResourceOperation('post', $url, $params, $options);
88
+    }
89
+
90
+    /**
91
+     * @param string $id
92
+     * @param string $nestedPath
93
+     * @param string|null $nestedId
94
+     * @param array|null $params
95
+     * @param array|string|null $options
96
+     *
97
+     * @return \Telnyx\TelnyxObject
98
+     */
99
+    protected static function _deleteNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
100
+    {
101
+        $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
102
+        return self::_nestedResourceOperation('delete', $url, $params, $options);
103
+    }
104
+
105
+    /**
106
+     * @param string $id
107
+     * @param string $nestedPath
108
+     * @param array|null $params
109
+     * @param array|string|null $options
110
+     *
111
+     * @return \Telnyx\TelnyxObject
112
+     */
113
+    protected static function _allNestedResources($id, $nestedPath, $params = null, $options = null)
114
+    {
115
+        $url = static::_nestedResourceUrl($id, $nestedPath);
116
+        return self::_nestedResourceOperation('get', $url, $params, $options);
117
+    }
118
+}