softsolz 0.1.2__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {softsolz-0.1.2 → softsolz-0.2.0}/PKG-INFO +1 -1
- {softsolz-0.1.2 → softsolz-0.2.0}/pyproject.toml +1 -1
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/__init__.py +3 -0
- softsolz-0.2.0/src/softsolz/resources/appointments.py +138 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/blogs.py +17 -16
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/social.py +9 -8
- {softsolz-0.1.2 → softsolz-0.2.0}/.gitignore +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/README.md +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/__init__.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/_client.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/_http.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/_version.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/errors.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/pagination.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/py.typed +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/customer_auth.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/forms.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/invoicing.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/newsletter.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/payments.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/smart_chat.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/resources/workflows.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/src/softsolz/webhooks.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/tests/test_http.py +0 -0
- {softsolz-0.1.2 → softsolz-0.2.0}/tests/test_webhooks.py +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from typing import Any, Dict
|
|
2
2
|
|
|
3
3
|
from .._http import HttpClient
|
|
4
|
+
from .appointments import AppointmentsResource
|
|
4
5
|
from .blogs import BlogsResource
|
|
5
6
|
from .customer_auth import CustomerAuthResource
|
|
6
7
|
from .forms import FormsResource
|
|
@@ -14,6 +15,7 @@ from .workflows import WorkflowsResource
|
|
|
14
15
|
|
|
15
16
|
def build_resources(http: HttpClient) -> Dict[str, Any]:
|
|
16
17
|
return {
|
|
18
|
+
"appointments": AppointmentsResource(http),
|
|
17
19
|
"blogs": BlogsResource(http),
|
|
18
20
|
"customer_auth": CustomerAuthResource(http),
|
|
19
21
|
"forms": FormsResource(http),
|
|
@@ -28,6 +30,7 @@ def build_resources(http: HttpClient) -> Dict[str, Any]:
|
|
|
28
30
|
|
|
29
31
|
__all__ = [
|
|
30
32
|
"build_resources",
|
|
33
|
+
"AppointmentsResource",
|
|
31
34
|
"BlogsResource",
|
|
32
35
|
"CustomerAuthResource",
|
|
33
36
|
"FormsResource",
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
from typing import Any, Dict, Optional
|
|
2
|
+
|
|
3
|
+
from .._http import HttpClient, _q
|
|
4
|
+
from ..pagination import Page
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class AppointmentsResource:
|
|
8
|
+
def __init__(self, http: HttpClient) -> None:
|
|
9
|
+
self._http = http
|
|
10
|
+
|
|
11
|
+
def get_availability(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Any:
|
|
12
|
+
return self._http.request("GET", "/api/v1/services/appointments/availability", query=query, options=options or None)
|
|
13
|
+
|
|
14
|
+
def list_appointments(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
15
|
+
return self._http.page("GET", "/api/v1/services/appointments/appointments", query=query, options=options or None)
|
|
16
|
+
|
|
17
|
+
def get_appointment(self, id: Any, **options: Any) -> Any:
|
|
18
|
+
return self._http.request("GET", f"/api/v1/services/appointments/appointments/{_q(id)}", options=options or None)
|
|
19
|
+
|
|
20
|
+
def create_appointment(self, body: Dict[str, Any], **options: Any) -> Any:
|
|
21
|
+
return self._http.request("POST", "/api/v1/services/appointments/appointments", body=body, options=options or None)
|
|
22
|
+
|
|
23
|
+
def update_appointment(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
24
|
+
return self._http.request("PATCH", f"/api/v1/services/appointments/appointments/{_q(id)}", body=body, options=options or None)
|
|
25
|
+
|
|
26
|
+
def create_appointment_reschedule(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
27
|
+
return self._http.request("POST", f"/api/v1/services/appointments/appointments/{_q(id)}/reschedule", body=body, options=options or None)
|
|
28
|
+
|
|
29
|
+
def create_appointment_transition(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
30
|
+
return self._http.request("POST", f"/api/v1/services/appointments/appointments/{_q(id)}/transition", body=body, options=options or None)
|
|
31
|
+
|
|
32
|
+
def cancel_appointment(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
33
|
+
return self._http.request("POST", f"/api/v1/services/appointments/appointments/{_q(id)}/cancel", body=body, options=options or None)
|
|
34
|
+
|
|
35
|
+
def delete_appointment(self, id: Any, **options: Any) -> None:
|
|
36
|
+
self._http.request("DELETE", f"/api/v1/services/appointments/appointments/{_q(id)}", response_kind="none", options=options or None)
|
|
37
|
+
|
|
38
|
+
def list_appointment_attendees(self, id: Any, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
39
|
+
return self._http.page("GET", f"/api/v1/services/appointments/appointments/{_q(id)}/attendees", query=query, options=options or None)
|
|
40
|
+
|
|
41
|
+
def create_appointment_attendee(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
42
|
+
return self._http.request("POST", f"/api/v1/services/appointments/appointments/{_q(id)}/attendees", body=body, options=options or None)
|
|
43
|
+
|
|
44
|
+
def delete_appointment_attendee(self, id: Any, sub_id: Any, **options: Any) -> None:
|
|
45
|
+
self._http.request("DELETE", f"/api/v1/services/appointments/appointments/{_q(id)}/attendees/{_q(sub_id)}", response_kind="none", options=options or None)
|
|
46
|
+
|
|
47
|
+
def list_appointment_notes(self, id: Any, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
48
|
+
return self._http.page("GET", f"/api/v1/services/appointments/appointments/{_q(id)}/notes", query=query, options=options or None)
|
|
49
|
+
|
|
50
|
+
def create_appointment_note(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
51
|
+
return self._http.request("POST", f"/api/v1/services/appointments/appointments/{_q(id)}/notes", body=body, options=options or None)
|
|
52
|
+
|
|
53
|
+
def list_tasks(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
54
|
+
return self._http.page("GET", "/api/v1/services/appointments/tasks", query=query, options=options or None)
|
|
55
|
+
|
|
56
|
+
def create_task(self, body: Dict[str, Any], **options: Any) -> Any:
|
|
57
|
+
return self._http.request("POST", "/api/v1/services/appointments/tasks", body=body, options=options or None)
|
|
58
|
+
|
|
59
|
+
def update_task(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
60
|
+
return self._http.request("PATCH", f"/api/v1/services/appointments/tasks/{_q(id)}", body=body, options=options or None)
|
|
61
|
+
|
|
62
|
+
def list_booking_links(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
63
|
+
return self._http.page("GET", "/api/v1/services/appointments/booking-links", query=query, options=options or None)
|
|
64
|
+
|
|
65
|
+
def create_booking_link(self, body: Dict[str, Any], **options: Any) -> Any:
|
|
66
|
+
return self._http.request("POST", "/api/v1/services/appointments/booking-links", body=body, options=options or None)
|
|
67
|
+
|
|
68
|
+
def get_reports_summary(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Any:
|
|
69
|
+
return self._http.request("GET", "/api/v1/services/appointments/reports/summary", query=query, options=options or None)
|
|
70
|
+
|
|
71
|
+
def list_types(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
72
|
+
return self._http.page("GET", "/api/v1/services/appointments/types", query=query, options=options or None)
|
|
73
|
+
|
|
74
|
+
def get_type(self, id: Any, **options: Any) -> Any:
|
|
75
|
+
return self._http.request("GET", f"/api/v1/services/appointments/types/{_q(id)}", options=options or None)
|
|
76
|
+
|
|
77
|
+
def create_type(self, body: Dict[str, Any], **options: Any) -> Any:
|
|
78
|
+
return self._http.request("POST", "/api/v1/services/appointments/types", body=body, options=options or None)
|
|
79
|
+
|
|
80
|
+
def update_type(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
81
|
+
return self._http.request("PATCH", f"/api/v1/services/appointments/types/{_q(id)}", body=body, options=options or None)
|
|
82
|
+
|
|
83
|
+
def delete_type(self, id: Any, **options: Any) -> None:
|
|
84
|
+
self._http.request("DELETE", f"/api/v1/services/appointments/types/{_q(id)}", response_kind="none", options=options or None)
|
|
85
|
+
|
|
86
|
+
def list_resources(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
87
|
+
return self._http.page("GET", "/api/v1/services/appointments/resources", query=query, options=options or None)
|
|
88
|
+
|
|
89
|
+
def get_resource(self, id: Any, **options: Any) -> Any:
|
|
90
|
+
return self._http.request("GET", f"/api/v1/services/appointments/resources/{_q(id)}", options=options or None)
|
|
91
|
+
|
|
92
|
+
def create_resource(self, body: Dict[str, Any], **options: Any) -> Any:
|
|
93
|
+
return self._http.request("POST", "/api/v1/services/appointments/resources", body=body, options=options or None)
|
|
94
|
+
|
|
95
|
+
def update_resource(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
96
|
+
return self._http.request("PATCH", f"/api/v1/services/appointments/resources/{_q(id)}", body=body, options=options or None)
|
|
97
|
+
|
|
98
|
+
def delete_resource(self, id: Any, **options: Any) -> None:
|
|
99
|
+
self._http.request("DELETE", f"/api/v1/services/appointments/resources/{_q(id)}", response_kind="none", options=options or None)
|
|
100
|
+
|
|
101
|
+
def get_resource_schedule(self, id: Any, **options: Any) -> Any:
|
|
102
|
+
return self._http.request("GET", f"/api/v1/services/appointments/resources/{_q(id)}/schedule", options=options or None)
|
|
103
|
+
|
|
104
|
+
def update_resource_schedule(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
105
|
+
return self._http.request("PUT", f"/api/v1/services/appointments/resources/{_q(id)}/schedule", body=body, options=options or None)
|
|
106
|
+
|
|
107
|
+
def list_customers(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
108
|
+
return self._http.page("GET", "/api/v1/services/appointments/customers", query=query, options=options or None)
|
|
109
|
+
|
|
110
|
+
def get_customer(self, id: Any, **options: Any) -> Any:
|
|
111
|
+
return self._http.request("GET", f"/api/v1/services/appointments/customers/{_q(id)}", options=options or None)
|
|
112
|
+
|
|
113
|
+
def create_customer(self, body: Dict[str, Any], **options: Any) -> Any:
|
|
114
|
+
return self._http.request("POST", "/api/v1/services/appointments/customers", body=body, options=options or None)
|
|
115
|
+
|
|
116
|
+
def update_customer(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
117
|
+
return self._http.request("PATCH", f"/api/v1/services/appointments/customers/{_q(id)}", body=body, options=options or None)
|
|
118
|
+
|
|
119
|
+
def delete_customer(self, id: Any, **options: Any) -> None:
|
|
120
|
+
self._http.request("DELETE", f"/api/v1/services/appointments/customers/{_q(id)}", response_kind="none", options=options or None)
|
|
121
|
+
|
|
122
|
+
def list_customer_history(self, id: Any, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
123
|
+
return self._http.page("GET", f"/api/v1/services/appointments/customers/{_q(id)}/history", query=query, options=options or None)
|
|
124
|
+
|
|
125
|
+
def list_assets(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
126
|
+
return self._http.page("GET", "/api/v1/services/appointments/assets", query=query, options=options or None)
|
|
127
|
+
|
|
128
|
+
def get_asset(self, id: Any, **options: Any) -> Any:
|
|
129
|
+
return self._http.request("GET", f"/api/v1/services/appointments/assets/{_q(id)}", options=options or None)
|
|
130
|
+
|
|
131
|
+
def create_asset(self, body: Dict[str, Any], **options: Any) -> Any:
|
|
132
|
+
return self._http.request("POST", "/api/v1/services/appointments/assets", body=body, options=options or None)
|
|
133
|
+
|
|
134
|
+
def update_asset(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
135
|
+
return self._http.request("PATCH", f"/api/v1/services/appointments/assets/{_q(id)}", body=body, options=options or None)
|
|
136
|
+
|
|
137
|
+
def delete_asset(self, id: Any, **options: Any) -> None:
|
|
138
|
+
self._http.request("DELETE", f"/api/v1/services/appointments/assets/{_q(id)}", response_kind="none", options=options or None)
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
from typing import Any, Dict, Optional
|
|
2
2
|
|
|
3
3
|
from .._http import HttpClient, _q
|
|
4
|
+
from ..pagination import Page
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
class BlogsResource:
|
|
7
8
|
def __init__(self, http: HttpClient) -> None:
|
|
8
9
|
self._http = http
|
|
9
10
|
|
|
10
|
-
def list_published_posts(self, **options: Any) ->
|
|
11
|
-
return self._http.
|
|
11
|
+
def list_published_posts(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
12
|
+
return self._http.page("GET", "/api/v1/services/blogs/posts/published", query=query, options=options or None)
|
|
12
13
|
|
|
13
14
|
def get_published_post_by_slug(self, slug: Any, **options: Any) -> Any:
|
|
14
15
|
return self._http.request("GET", f"/api/v1/services/blogs/posts/published/{_q(slug)}", options=options or None)
|
|
@@ -28,17 +29,17 @@ class BlogsResource:
|
|
|
28
29
|
def create_comment_like(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
29
30
|
return self._http.request("POST", f"/api/v1/services/blogs/comments/{_q(id)}/like", body=body, options=options or None)
|
|
30
31
|
|
|
31
|
-
def
|
|
32
|
-
return self._http.
|
|
32
|
+
def list_post_comments(self, id: Any, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
33
|
+
return self._http.page("GET", f"/api/v1/services/blogs/posts/{_q(id)}/comments", query=query, options=options or None)
|
|
33
34
|
|
|
34
35
|
def update_comment(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
35
36
|
return self._http.request("PATCH", f"/api/v1/services/blogs/comments/{_q(id)}", body=body, options=options or None)
|
|
36
37
|
|
|
37
|
-
def delete_comment(self, id: Any, **options: Any) ->
|
|
38
|
-
|
|
38
|
+
def delete_comment(self, id: Any, **options: Any) -> None:
|
|
39
|
+
self._http.request("DELETE", f"/api/v1/services/blogs/comments/{_q(id)}", response_kind="none", options=options or None)
|
|
39
40
|
|
|
40
|
-
def
|
|
41
|
-
return self._http.
|
|
41
|
+
def list_posts(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
42
|
+
return self._http.page("GET", "/api/v1/services/blogs/posts", query=query, options=options or None)
|
|
42
43
|
|
|
43
44
|
def get_post(self, id: Any, **options: Any) -> Any:
|
|
44
45
|
return self._http.request("GET", f"/api/v1/services/blogs/posts/{_q(id)}", options=options or None)
|
|
@@ -52,17 +53,17 @@ class BlogsResource:
|
|
|
52
53
|
def update_post_status(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
53
54
|
return self._http.request("POST", f"/api/v1/services/blogs/posts/{_q(id)}/status", body=body, options=options or None)
|
|
54
55
|
|
|
55
|
-
def delete_post(self, id: Any, **options: Any) ->
|
|
56
|
-
|
|
56
|
+
def delete_post(self, id: Any, **options: Any) -> None:
|
|
57
|
+
self._http.request("DELETE", f"/api/v1/services/blogs/posts/{_q(id)}", response_kind="none", options=options or None)
|
|
57
58
|
|
|
58
|
-
def
|
|
59
|
-
return self._http.
|
|
59
|
+
def list_categories(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
60
|
+
return self._http.page("GET", "/api/v1/services/blogs/categories", query=query, options=options or None)
|
|
60
61
|
|
|
61
62
|
def get_analytics(self, **options: Any) -> Any:
|
|
62
63
|
return self._http.request("GET", "/api/v1/services/blogs/analytics", options=options or None)
|
|
63
64
|
|
|
64
|
-
def
|
|
65
|
-
return self._http.
|
|
65
|
+
def list_subscribers(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
66
|
+
return self._http.page("GET", "/api/v1/services/blogs/subscribers", query=query, options=options or None)
|
|
66
67
|
|
|
67
68
|
def create_subscriber(self, body: Dict[str, Any], **options: Any) -> Any:
|
|
68
69
|
return self._http.request("POST", "/api/v1/services/blogs/subscribers", body=body, options=options or None)
|
|
@@ -70,5 +71,5 @@ class BlogsResource:
|
|
|
70
71
|
def update_subscriber(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
71
72
|
return self._http.request("PATCH", f"/api/v1/services/blogs/subscribers/{_q(id)}", body=body, options=options or None)
|
|
72
73
|
|
|
73
|
-
def delete_subscriber(self, id: Any, **options: Any) ->
|
|
74
|
-
|
|
74
|
+
def delete_subscriber(self, id: Any, **options: Any) -> None:
|
|
75
|
+
self._http.request("DELETE", f"/api/v1/services/blogs/subscribers/{_q(id)}", response_kind="none", options=options or None)
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
from typing import Any, Dict, Optional
|
|
2
2
|
|
|
3
3
|
from .._http import HttpClient, _q
|
|
4
|
+
from ..pagination import Page
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
class SocialResource:
|
|
7
8
|
def __init__(self, http: HttpClient) -> None:
|
|
8
9
|
self._http = http
|
|
9
10
|
|
|
10
|
-
def
|
|
11
|
-
return self._http.
|
|
11
|
+
def list_accounts(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
12
|
+
return self._http.page("GET", "/api/v1/services/social/accounts", query=query, options=options or None)
|
|
12
13
|
|
|
13
|
-
def
|
|
14
|
-
return self._http.
|
|
14
|
+
def list_posts(self, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
15
|
+
return self._http.page("GET", "/api/v1/services/social/posts", query=query, options=options or None)
|
|
15
16
|
|
|
16
17
|
def get_post(self, id: Any, **options: Any) -> Any:
|
|
17
18
|
return self._http.request("GET", f"/api/v1/services/social/posts/{_q(id)}", options=options or None)
|
|
18
19
|
|
|
19
|
-
def
|
|
20
|
-
return self._http.
|
|
20
|
+
def list_post_targets(self, id: Any, query: Optional[Dict[str, Any]] = None, **options: Any) -> Page:
|
|
21
|
+
return self._http.page("GET", f"/api/v1/services/social/posts/{_q(id)}/targets", query=query, options=options or None)
|
|
21
22
|
|
|
22
23
|
def create_post(self, body: Dict[str, Any], **options: Any) -> Any:
|
|
23
24
|
return self._http.request("POST", "/api/v1/services/social/posts", body=body, options=options or None)
|
|
@@ -25,8 +26,8 @@ class SocialResource:
|
|
|
25
26
|
def update_post(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
26
27
|
return self._http.request("PATCH", f"/api/v1/services/social/posts/{_q(id)}", body=body, options=options or None)
|
|
27
28
|
|
|
28
|
-
def delete_post(self, id: Any, **options: Any) ->
|
|
29
|
-
|
|
29
|
+
def delete_post(self, id: Any, **options: Any) -> None:
|
|
30
|
+
self._http.request("DELETE", f"/api/v1/services/social/posts/{_q(id)}", response_kind="none", options=options or None)
|
|
30
31
|
|
|
31
32
|
def publish_post(self, id: Any, body: Dict[str, Any], **options: Any) -> Any:
|
|
32
33
|
return self._http.request("POST", f"/api/v1/services/social/posts/{_q(id)}/publish", body=body, options=options or None)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|