clappia-api-tools 2.0.0__tar.gz → 2.0.2__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.
Files changed (68) hide show
  1. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/PKG-INFO +1 -1
  2. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/client/analytics_client.py +119 -18
  3. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/client/app_definition_client.py +541 -93
  4. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/client/workflow_definition_client.py +167 -37
  5. clappia_api_tools-2.0.2/clappia_api_tools/enums/__init__.py +17 -0
  6. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/enums/enums.py +0 -142
  7. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/__init__.py +4 -0
  8. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/__init__.py +4 -0
  9. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/analytics/model.py +36 -47
  10. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/__init__.py +7 -0
  11. clappia_api_tools-2.0.2/clappia_api_tools/models/request/app_definition/app_metadata/__init__.py +7 -0
  12. clappia_api_tools-2.0.2/clappia_api_tools/models/request/app_definition/app_metadata/request.py +73 -0
  13. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/base.py +1 -0
  14. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/definition/request.py +2 -3
  15. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/field/request.py +10 -30
  16. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/section/request.py +2 -3
  17. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/workflow_definition/step/request.py +2 -3
  18. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/submission.py +12 -21
  19. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/utils/api_utils.py +5 -1
  20. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools.egg-info/PKG-INFO +1 -1
  21. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools.egg-info/SOURCES.txt +2 -0
  22. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/pyproject.toml +1 -1
  23. clappia_api_tools-2.0.0/clappia_api_tools/enums/__init__.py +0 -49
  24. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/LICENSE +0 -0
  25. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/README.md +0 -0
  26. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/__init__.py +0 -0
  27. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/client/__init__.py +0 -0
  28. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/client/base_client.py +0 -0
  29. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/client/submission_client.py +0 -0
  30. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/client/workplace_client.py +0 -0
  31. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/json_serialized.py +0 -0
  32. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/permissions.py +0 -0
  33. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/analytics/__init__.py +0 -0
  34. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/analytics/base.py +0 -0
  35. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/analytics/chart/__init__.py +0 -0
  36. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/analytics/chart/request.py +0 -0
  37. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/definition/__init__.py +0 -0
  38. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/field/__init__.py +0 -0
  39. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/model.py +0 -0
  40. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/page/__init__.py +0 -0
  41. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/page/request.py +0 -0
  42. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/app_definition/section/__init__.py +0 -0
  43. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/submission_requests.py +0 -0
  44. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/workflow_definition/__init__.py +0 -0
  45. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/workflow_definition/base.py +0 -0
  46. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/workflow_definition/step/__init__.py +0 -0
  47. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/request/workplace_requests.py +0 -0
  48. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/response/__init__.py +0 -0
  49. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/response/analytics_responses.py +0 -0
  50. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/response/app_definition_responses.py +0 -0
  51. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/response/base_response.py +0 -0
  52. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/response/submission_responses.py +0 -0
  53. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/response/workflow_responses.py +0 -0
  54. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/response/workplace_responses.py +0 -0
  55. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/models/workplace_user.py +0 -0
  56. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/tests/integration/__init__.py +0 -0
  57. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/tests/integration/definition/test_tools_definition.py +0 -0
  58. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/tests/integration/submission/test_tools_submission.py +0 -0
  59. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/tests/integration/workplace/test_tools_workplace.py +0 -0
  60. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/tests/unit/client/test_analytics_client.py +0 -0
  61. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/tests/unit/client/test_client.py +0 -0
  62. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/utils/__init__.py +0 -0
  63. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/utils/logging_utils.py +0 -0
  64. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools/utils/utils.py +0 -0
  65. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools.egg-info/dependency_links.txt +0 -0
  66. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools.egg-info/requires.txt +0 -0
  67. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/clappia_api_tools.egg-info/top_level.txt +0 -0
  68. {clappia_api_tools-2.0.0 → clappia_api_tools-2.0.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clappia-api-tools
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: Python client for Clappia API integration
5
5
  Author-email: Rishabh Verma <rishabh.v@clappia.com>
6
6
  License: MIT
@@ -13,6 +13,23 @@ from clappia_api_tools.models.request import (
13
13
  )
14
14
  from clappia_api_tools.models.response import ChartResponse, BaseResponse
15
15
  from clappia_api_tools.enums import ChartType
16
+ from typing import Union
17
+
18
+ ChartDefinitionRequestUnion = Union[
19
+ UpsertSummaryChartDefinitionRequest,
20
+ UpsertBarChartDefinitionRequest,
21
+ UpsertPieChartDefinitionRequest,
22
+ UpsertDoughnutChartDefinitionRequest,
23
+ UpsertLineChartDefinitionRequest,
24
+ UpsertDataTableChartDefinitionRequest,
25
+ UpsertMapChartDefinitionRequest,
26
+ UpsertGanttChartDefinitionRequest,
27
+ ]
28
+
29
+ ChartDefinitionResponseUnion = Union[
30
+ ChartResponse,
31
+ BaseResponse,
32
+ ]
16
33
 
17
34
  logger = get_logger(__name__)
18
35
 
@@ -24,7 +41,79 @@ class AnalyticsClient(BaseClappiaClient):
24
41
  adding charts, removing charts, updating charts, and reordering charts.
25
42
  """
26
43
 
27
- def add_summary_chart(
44
+ def add(
45
+ self,
46
+ app_id: str,
47
+ chart_index: int,
48
+ chart_title: str,
49
+ request: ChartDefinitionRequestUnion,
50
+ ) -> ChartResponse:
51
+ """Add a chart to an app.
52
+
53
+ Args:
54
+ app_id: The ID of the app to add the chart to
55
+ chart_index: The index of the chart to add
56
+ chart_title: The title of the chart
57
+ request: The request object containing the chart configuration
58
+
59
+ Returns:
60
+ ChartResponse: Response containing the result of the operation
61
+ """
62
+ if isinstance(request, UpsertSummaryChartDefinitionRequest):
63
+ return self._add_summary_chart(app_id, chart_index, chart_title, request)
64
+ elif isinstance(request, UpsertBarChartDefinitionRequest):
65
+ return self._add_bar_chart(app_id, chart_index, chart_title, request)
66
+ elif isinstance(request, UpsertPieChartDefinitionRequest):
67
+ return self._add_pie_chart(app_id, chart_index, chart_title, request)
68
+ elif isinstance(request, UpsertDoughnutChartDefinitionRequest):
69
+ return self._add_doughnut_chart(app_id, chart_index, chart_title, request)
70
+ elif isinstance(request, UpsertLineChartDefinitionRequest):
71
+ return self._add_line_chart(app_id, chart_index, chart_title, request)
72
+ elif isinstance(request, UpsertDataTableChartDefinitionRequest):
73
+ return self._add_data_table_chart(app_id, chart_index, chart_title, request)
74
+ elif isinstance(request, UpsertMapChartDefinitionRequest):
75
+ return self._add_map_chart(app_id, chart_index, chart_title, request)
76
+ elif isinstance(request, UpsertGanttChartDefinitionRequest):
77
+ return self._add_gantt_chart(app_id, chart_index, chart_title, request)
78
+ else:
79
+ raise ValueError(f"Unsupported chart definition request type: {type(request)}")
80
+
81
+ def update(
82
+ self,
83
+ app_id: str,
84
+ chart_index: int,
85
+ request: ChartDefinitionRequestUnion,
86
+ ) -> ChartResponse:
87
+ """Update a chart in an app.
88
+
89
+ Args:
90
+ app_id: The ID of the app containing the chart
91
+ chart_index: The index of the chart to update
92
+ request: The request object containing the updated chart configuration
93
+
94
+ Returns:
95
+ ChartResponse: Response containing the result of the operation
96
+ """
97
+ if isinstance(request, UpsertSummaryChartDefinitionRequest):
98
+ return self._update_summary_chart(app_id, chart_index, request)
99
+ elif isinstance(request, UpsertBarChartDefinitionRequest):
100
+ return self._update_bar_chart(app_id, chart_index, request)
101
+ elif isinstance(request, UpsertPieChartDefinitionRequest):
102
+ return self._update_pie_chart(app_id, chart_index, request)
103
+ elif isinstance(request, UpsertDoughnutChartDefinitionRequest):
104
+ return self._update_doughnut_chart(app_id, chart_index, request)
105
+ elif isinstance(request, UpsertLineChartDefinitionRequest):
106
+ return self._update_line_chart(app_id, chart_index, request)
107
+ elif isinstance(request, UpsertDataTableChartDefinitionRequest):
108
+ return self._update_data_table_chart(app_id, chart_index, request)
109
+ elif isinstance(request, UpsertMapChartDefinitionRequest):
110
+ return self._update_map_chart(app_id, chart_index, request)
111
+ elif isinstance(request, UpsertGanttChartDefinitionRequest):
112
+ return self._update_gantt_chart(app_id, chart_index, request)
113
+ else:
114
+ raise ValueError(f"Unsupported chart definition request type: {type(request)}")
115
+
116
+ def _add_summary_chart(
28
117
  self,
29
118
  app_id: str,
30
119
  chart_index: int,
@@ -40,8 +129,8 @@ class AnalyticsClient(BaseClappiaClient):
40
129
  request: The request object containing the chart configuration
41
130
 
42
131
  Returns:
132
+ ChartResponse: Response containing the result of the operation
43
133
  """
44
-
45
134
  env_valid, env_error = self.api_utils.validate_environment()
46
135
  if not env_valid:
47
136
  return ChartResponse(
@@ -87,19 +176,29 @@ class AnalyticsClient(BaseClappiaClient):
87
176
  data=response_data,
88
177
  )
89
178
 
90
- def update_summary_chart(
179
+ def _update_summary_chart(
91
180
  self,
92
181
  app_id: str,
93
182
  chart_index: int,
94
183
  request: UpsertSummaryChartDefinitionRequest,
95
184
  ) -> ChartResponse:
185
+ """Update a summary chart in an app.
186
+
187
+ Args:
188
+ app_id: The ID of the app containing the chart
189
+ chart_index: The index of the chart to update
190
+ request: The request object containing the updated chart configuration
191
+
192
+ Returns:
193
+ ChartResponse: Response containing the result of the operation
194
+ """
96
195
  env_valid, env_error = self.api_utils.validate_environment()
97
196
  if not env_valid:
98
197
  return ChartResponse(
99
198
  success=False,
100
199
  message=env_error,
101
200
  app_id=app_id,
102
- operation="add_summary_chart",
201
+ operation="update_summary_chart",
103
202
  chart_type=ChartType.SUMMARY_CARD.value,
104
203
  )
105
204
 
@@ -124,6 +223,7 @@ class AnalyticsClient(BaseClappiaClient):
124
223
  message=error_message,
125
224
  app_id=app_id,
126
225
  operation="update_summary_chart",
226
+ chart_type=ChartType.SUMMARY_CARD.value,
127
227
  )
128
228
 
129
229
  return ChartResponse(
@@ -131,10 +231,11 @@ class AnalyticsClient(BaseClappiaClient):
131
231
  message="Successfully updated summary chart",
132
232
  app_id=app_id,
133
233
  operation="update_summary_chart",
234
+ chart_type=ChartType.SUMMARY_CARD.value,
134
235
  data=response_data,
135
236
  )
136
237
 
137
- def add_bar_chart(
238
+ def _add_bar_chart(
138
239
  self,
139
240
  app_id: str,
140
241
  chart_index: int,
@@ -198,7 +299,7 @@ class AnalyticsClient(BaseClappiaClient):
198
299
  data=response_data,
199
300
  )
200
301
 
201
- def update_bar_chart(
302
+ def _update_bar_chart(
202
303
  self,
203
304
  app_id: str,
204
305
  chart_index: int,
@@ -255,7 +356,7 @@ class AnalyticsClient(BaseClappiaClient):
255
356
  data=response_data,
256
357
  )
257
358
 
258
- def add_pie_chart(
359
+ def _add_pie_chart(
259
360
  self,
260
361
  app_id: str,
261
362
  chart_index: int,
@@ -319,7 +420,7 @@ class AnalyticsClient(BaseClappiaClient):
319
420
  data=response_data,
320
421
  )
321
422
 
322
- def update_pie_chart(
423
+ def _update_pie_chart(
323
424
  self,
324
425
  app_id: str,
325
426
  chart_index: int,
@@ -376,7 +477,7 @@ class AnalyticsClient(BaseClappiaClient):
376
477
  data=response_data,
377
478
  )
378
479
 
379
- def add_doughnut_chart(
480
+ def _add_doughnut_chart(
380
481
  self,
381
482
  app_id: str,
382
483
  chart_index: int,
@@ -440,7 +541,7 @@ class AnalyticsClient(BaseClappiaClient):
440
541
  data=response_data,
441
542
  )
442
543
 
443
- def update_doughnut_chart(
544
+ def _update_doughnut_chart(
444
545
  self,
445
546
  app_id: str,
446
547
  chart_index: int,
@@ -499,7 +600,7 @@ class AnalyticsClient(BaseClappiaClient):
499
600
  data=response_data,
500
601
  )
501
602
 
502
- def add_line_chart(
603
+ def _add_line_chart(
503
604
  self,
504
605
  app_id: str,
505
606
  chart_index: int,
@@ -563,7 +664,7 @@ class AnalyticsClient(BaseClappiaClient):
563
664
  data=response_data,
564
665
  )
565
666
 
566
- def update_line_chart(
667
+ def _update_line_chart(
567
668
  self,
568
669
  app_id: str,
569
670
  chart_index: int,
@@ -620,7 +721,7 @@ class AnalyticsClient(BaseClappiaClient):
620
721
  data=response_data,
621
722
  )
622
723
 
623
- def add_data_table_chart(
724
+ def _add_data_table_chart(
624
725
  self,
625
726
  app_id: str,
626
727
  chart_index: int,
@@ -684,7 +785,7 @@ class AnalyticsClient(BaseClappiaClient):
684
785
  data=response_data,
685
786
  )
686
787
 
687
- def update_data_table_chart(
788
+ def _update_data_table_chart(
688
789
  self,
689
790
  app_id: str,
690
791
  chart_index: int,
@@ -743,7 +844,7 @@ class AnalyticsClient(BaseClappiaClient):
743
844
  data=response_data,
744
845
  )
745
846
 
746
- def add_map_chart(
847
+ def _add_map_chart(
747
848
  self,
748
849
  app_id: str,
749
850
  chart_index: int,
@@ -807,7 +908,7 @@ class AnalyticsClient(BaseClappiaClient):
807
908
  data=response_data,
808
909
  )
809
910
 
810
- def update_map_chart(
911
+ def _update_map_chart(
811
912
  self,
812
913
  app_id: str,
813
914
  chart_index: int,
@@ -864,7 +965,7 @@ class AnalyticsClient(BaseClappiaClient):
864
965
  data=response_data,
865
966
  )
866
967
 
867
- def add_gantt_chart(
968
+ def _add_gantt_chart(
868
969
  self,
869
970
  app_id: str,
870
971
  chart_index: int,
@@ -928,7 +1029,7 @@ class AnalyticsClient(BaseClappiaClient):
928
1029
  data=response_data,
929
1030
  )
930
1031
 
931
- def update_gantt_chart(
1032
+ def _update_gantt_chart(
932
1033
  self,
933
1034
  app_id: str,
934
1035
  chart_index: int,