@adventurelabs/scout-core 1.5.5 → 2.0.1

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 (224) hide show
  1. package/README.md +47 -0
  2. package/dist/api_keys/actions.d.ts +0 -1
  3. package/dist/api_keys/actions.js +0 -14
  4. package/dist/client/index.d.ts +76 -0
  5. package/dist/client/index.js +83 -0
  6. package/dist/constants/index.d.ts +1 -0
  7. package/dist/constants/index.js +1 -0
  8. package/dist/helpers/analysis_usage/jobs_server.d.ts +25 -0
  9. package/dist/helpers/analysis_usage/jobs_server.js +10 -0
  10. package/dist/helpers/analysis_usage/tasks_server.d.ts +63 -0
  11. package/dist/helpers/analysis_usage/tasks_server.js +14 -0
  12. package/dist/helpers/artifacts.d.ts +0 -1
  13. package/dist/helpers/artifacts.js +10 -147
  14. package/dist/helpers/artifacts.queries.d.ts +26 -0
  15. package/dist/helpers/{artifacts.internal.js → artifacts.queries.js} +24 -41
  16. package/dist/helpers/auth.d.ts +1 -1
  17. package/dist/helpers/auth.js +2 -3
  18. package/dist/helpers/auth_server.d.ts +2 -0
  19. package/dist/helpers/auth_server.js +10 -0
  20. package/dist/helpers/certificates_server.d.ts +101 -0
  21. package/dist/helpers/certificates_server.js +42 -0
  22. package/dist/helpers/chat.d.ts +1 -2
  23. package/dist/helpers/chat.js +3 -38
  24. package/dist/helpers/chat.queries.d.ts +13 -0
  25. package/dist/helpers/chat.queries.js +39 -0
  26. package/dist/helpers/client_abilities_jwt_keys.js +0 -1
  27. package/dist/helpers/client_abilities_token_server.d.ts +1 -0
  28. package/dist/helpers/client_abilities_token_server.js +5 -2
  29. package/dist/helpers/compliance.d.ts +26 -0
  30. package/dist/helpers/compliance.js +74 -0
  31. package/dist/helpers/compliance.queries.d.ts +28 -0
  32. package/dist/helpers/compliance.queries.js +167 -0
  33. package/dist/helpers/connectivity.d.ts +1 -5
  34. package/dist/helpers/connectivity.js +7 -140
  35. package/dist/helpers/connectivity.queries.d.ts +18 -0
  36. package/dist/helpers/connectivity.queries.js +121 -0
  37. package/dist/helpers/contacts_server.d.ts +75 -0
  38. package/dist/helpers/contacts_server.js +18 -0
  39. package/dist/helpers/deviceTransfer.js +2 -11
  40. package/dist/helpers/deviceTransfer.queries.d.ts +4 -0
  41. package/dist/helpers/deviceTransfer.queries.js +11 -0
  42. package/dist/helpers/devices.js +4 -61
  43. package/dist/helpers/devices.queries.d.ts +4 -1
  44. package/dist/helpers/devices.queries.js +52 -0
  45. package/dist/helpers/document_templates.js +6 -52
  46. package/dist/helpers/document_templates.queries.d.ts +9 -0
  47. package/dist/helpers/document_templates.queries.js +56 -0
  48. package/dist/helpers/documents_server.d.ts +226 -0
  49. package/dist/helpers/documents_server.js +38 -0
  50. package/dist/helpers/email.d.ts +0 -6
  51. package/dist/helpers/email.js +1 -19
  52. package/dist/helpers/embeddings.d.ts +0 -5
  53. package/dist/helpers/embeddings.js +2 -19
  54. package/dist/helpers/embeddings.queries.d.ts +7 -0
  55. package/dist/helpers/{embeddings.internal.js → embeddings.queries.js} +2 -2
  56. package/dist/helpers/eventUtils.d.ts +3 -12
  57. package/dist/helpers/eventUtils.js +0 -10
  58. package/dist/helpers/events.d.ts +0 -1
  59. package/dist/helpers/events.js +7 -107
  60. package/dist/helpers/events.queries.d.ts +17 -0
  61. package/dist/helpers/{events.internal.js → events.queries.js} +24 -15
  62. package/dist/helpers/health_metrics.js +3 -38
  63. package/dist/helpers/health_metrics.queries.d.ts +12 -0
  64. package/dist/helpers/health_metrics.queries.js +39 -0
  65. package/dist/helpers/heartbeats.js +4 -83
  66. package/dist/helpers/heartbeats.queries.d.ts +11 -0
  67. package/dist/helpers/heartbeats.queries.js +76 -0
  68. package/dist/helpers/herd_allowed_domains.js +2 -12
  69. package/dist/helpers/{herd_allowed_domains_internal.d.ts → herd_allowed_domains.queries.d.ts} +1 -1
  70. package/dist/helpers/{herd_allowed_domains_internal.js → herd_allowed_domains.queries.js} +2 -2
  71. package/dist/helpers/herd_credentials_server.d.ts +76 -0
  72. package/dist/helpers/herd_credentials_server.js +22 -0
  73. package/dist/helpers/herd_modules.queries.js +10 -7
  74. package/dist/helpers/herd_roles.js +13 -148
  75. package/dist/helpers/herd_roles.queries.d.ts +18 -0
  76. package/dist/helpers/{herd_roles_internal.js → herd_roles.queries.js} +28 -28
  77. package/dist/helpers/herds.js +5 -47
  78. package/dist/helpers/herds.queries.d.ts +8 -1
  79. package/dist/helpers/herds.queries.js +48 -0
  80. package/dist/helpers/invitations.js +7 -58
  81. package/dist/helpers/invitations.queries.d.ts +10 -0
  82. package/dist/helpers/{invitations_internal.js → invitations.queries.js} +12 -12
  83. package/dist/helpers/issuers.js +6 -52
  84. package/dist/helpers/issuers.queries.d.ts +9 -0
  85. package/dist/helpers/issuers.queries.js +53 -0
  86. package/dist/helpers/layers.js +2 -20
  87. package/dist/helpers/layers.queries.d.ts +2 -1
  88. package/dist/helpers/layers.queries.js +9 -13
  89. package/dist/helpers/lifecycle_server.d.ts +178 -0
  90. package/dist/helpers/lifecycle_server.js +38 -0
  91. package/dist/helpers/localizations.js +5 -42
  92. package/dist/helpers/localizations.queries.d.ts +8 -0
  93. package/dist/helpers/localizations.queries.js +45 -0
  94. package/dist/helpers/maintenance_requests_server.d.ts +124 -0
  95. package/dist/helpers/maintenance_requests_server.js +34 -0
  96. package/dist/helpers/manufacturers.js +5 -43
  97. package/dist/helpers/manufacturers.queries.d.ts +10 -0
  98. package/dist/helpers/manufacturers.queries.js +46 -0
  99. package/dist/helpers/media_urls.d.ts +13 -0
  100. package/dist/helpers/media_urls.js +21 -0
  101. package/dist/helpers/models.js +8 -80
  102. package/dist/helpers/models.queries.d.ts +13 -0
  103. package/dist/helpers/models.queries.js +79 -0
  104. package/dist/helpers/observations_server.d.ts +51 -0
  105. package/dist/helpers/observations_server.js +22 -0
  106. package/dist/helpers/operating_contexts.js +39 -154
  107. package/dist/helpers/operating_contexts.queries.d.ts +48 -0
  108. package/dist/helpers/operating_contexts.queries.js +223 -0
  109. package/dist/helpers/operators.js +4 -57
  110. package/dist/helpers/operators.queries.d.ts +7 -0
  111. package/dist/helpers/operators.queries.js +55 -0
  112. package/dist/helpers/parts.d.ts +0 -87
  113. package/dist/helpers/parts.js +1 -89
  114. package/dist/helpers/parts_server.d.ts +260 -0
  115. package/dist/helpers/parts_server.js +71 -0
  116. package/dist/helpers/pins_server.d.ts +118 -0
  117. package/dist/helpers/pins_server.js +38 -0
  118. package/dist/helpers/plans.js +4 -56
  119. package/dist/helpers/plans.queries.d.ts +4 -1
  120. package/dist/helpers/plans.queries.js +39 -12
  121. package/dist/helpers/points_for_user_server.d.ts +9 -0
  122. package/dist/helpers/points_for_user_server.js +14 -0
  123. package/dist/helpers/product_compatibilities.js +6 -78
  124. package/dist/helpers/product_compatibilities.queries.d.ts +9 -0
  125. package/dist/helpers/product_compatibilities.queries.js +83 -0
  126. package/dist/helpers/product_numbers.js +6 -55
  127. package/dist/helpers/product_numbers.queries.d.ts +9 -0
  128. package/dist/helpers/product_numbers.queries.js +58 -0
  129. package/dist/helpers/products.js +6 -54
  130. package/dist/helpers/products.queries.d.ts +11 -0
  131. package/dist/helpers/products.queries.js +58 -0
  132. package/dist/helpers/providers.js +5 -71
  133. package/dist/helpers/providers.queries.d.ts +5 -1
  134. package/dist/helpers/providers.queries.js +52 -11
  135. package/dist/helpers/pubsub_token_server.d.ts +1 -0
  136. package/dist/helpers/pubsub_token_server.js +5 -2
  137. package/dist/helpers/segmentations_sam3.js +5 -78
  138. package/dist/helpers/segmentations_sam3.queries.d.ts +16 -0
  139. package/dist/helpers/segmentations_sam3.queries.js +81 -0
  140. package/dist/helpers/sensor_poses_server.d.ts +98 -0
  141. package/dist/helpers/sensor_poses_server.js +26 -0
  142. package/dist/helpers/session_incidents_server.d.ts +106 -0
  143. package/dist/helpers/session_incidents_server.js +22 -0
  144. package/dist/helpers/session_summaries.d.ts +2 -0
  145. package/dist/helpers/session_summaries.js +7 -23
  146. package/dist/helpers/session_summaries.queries.d.ts +6 -3
  147. package/dist/helpers/session_summaries.queries.js +27 -0
  148. package/dist/helpers/sessions.js +8 -122
  149. package/dist/helpers/sessions.queries.d.ts +14 -2
  150. package/dist/helpers/sessions.queries.js +88 -1
  151. package/dist/helpers/storage.js +0 -1
  152. package/dist/helpers/supabase_auth.d.ts +6 -0
  153. package/dist/helpers/supabase_auth.js +37 -0
  154. package/dist/helpers/tags.d.ts +0 -1
  155. package/dist/helpers/tags.js +13 -559
  156. package/dist/helpers/tags.queries.d.ts +33 -0
  157. package/dist/helpers/tags.queries.js +454 -0
  158. package/dist/helpers/user_credentials_server.d.ts +76 -0
  159. package/dist/helpers/user_credentials_server.js +22 -0
  160. package/dist/helpers/users.d.ts +2 -2
  161. package/dist/helpers/users.js +8 -107
  162. package/dist/helpers/users.queries.d.ts +9 -1
  163. package/dist/helpers/users.queries.js +107 -0
  164. package/dist/helpers/versions_software.d.ts +3 -1
  165. package/dist/helpers/versions_software.js +24 -0
  166. package/dist/helpers/versions_software_server.d.ts +83 -4
  167. package/dist/helpers/versions_software_server.js +23 -50
  168. package/dist/helpers/zones.d.ts +1 -16
  169. package/dist/helpers/zones.js +4 -104
  170. package/dist/helpers/zones.queries.d.ts +6 -0
  171. package/dist/helpers/zones.queries.js +78 -0
  172. package/dist/hooks/useAuthorizedRealtimeTopics.js +8 -2
  173. package/dist/hooks/useInfiniteQuery.js +18 -14
  174. package/dist/hooks/useScoutRealtimeBroadcast.js +8 -6
  175. package/dist/hooks/useScoutRealtimeDocuments.js +3 -2
  176. package/dist/hooks/useScoutRefresh.d.ts +9 -25
  177. package/dist/hooks/useScoutRefresh.js +33 -213
  178. package/dist/providers/ScoutRefreshProvider.d.ts +1 -1
  179. package/dist/providers/ScoutRefreshProvider.js +56 -13
  180. package/dist/server/index.d.ts +78 -0
  181. package/dist/server/index.js +80 -0
  182. package/dist/server/middleware.d.ts +2 -0
  183. package/dist/server/middleware.js +2 -0
  184. package/dist/server/supabase.d.ts +2 -0
  185. package/dist/server/supabase.js +2 -0
  186. package/dist/store/api.d.ts +40 -40
  187. package/dist/store/api.js +38 -109
  188. package/dist/store/configureStore.d.ts +0 -55
  189. package/dist/store/configureStore.js +1 -8
  190. package/dist/store/hooks.js +1 -0
  191. package/dist/supabase/client.d.ts +3 -0
  192. package/dist/supabase/client.js +10 -0
  193. package/dist/supabase/middleware.d.ts +1 -0
  194. package/dist/supabase/middleware.js +6 -20
  195. package/dist/supabase/server.d.ts +7 -2
  196. package/dist/supabase/server.js +13 -1
  197. package/dist/types/db.d.ts +47 -3
  198. package/dist/types/index.d.ts +5 -0
  199. package/dist/types/index.js +5 -0
  200. package/dist/types/supabase.d.ts +512 -0
  201. package/package.json +53 -4
  202. package/dist/api_keys/index.d.ts +0 -1
  203. package/dist/api_keys/index.js +0 -1
  204. package/dist/helpers/artifacts.internal.d.ts +0 -22
  205. package/dist/helpers/client_abilities_jwt_keys_internal.d.ts +0 -9
  206. package/dist/helpers/client_abilities_jwt_keys_internal.js +0 -20
  207. package/dist/helpers/connectivity.internal.d.ts +0 -10
  208. package/dist/helpers/connectivity.internal.js +0 -47
  209. package/dist/helpers/credentials.d.ts +0 -9
  210. package/dist/helpers/credentials.js +0 -92
  211. package/dist/helpers/embeddings.internal.d.ts +0 -5
  212. package/dist/helpers/events.internal.d.ts +0 -13
  213. package/dist/helpers/herd_roles_internal.d.ts +0 -18
  214. package/dist/helpers/index.d.ts +0 -56
  215. package/dist/helpers/index.js +0 -56
  216. package/dist/helpers/invitations_internal.d.ts +0 -10
  217. package/dist/helpers/versions_software_internal.d.ts +0 -6
  218. package/dist/helpers/versions_software_internal.js +0 -53
  219. package/dist/hooks/useDeviceDisplayName.d.ts +0 -8
  220. package/dist/hooks/useDeviceDisplayName.js +0 -49
  221. package/dist/index.d.ts +0 -108
  222. package/dist/index.js +0 -114
  223. package/dist/supabase/index.d.ts +0 -2
  224. package/dist/supabase/index.js +0 -2
@@ -1,231 +1,116 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { IWebResponse } from "../types/requests";
4
- function error(message) {
5
- return IWebResponse.error(message).to_compatible();
6
- }
7
- function page_limit(options) {
8
- const limit = options?.limit ?? 100;
9
- return limit < 1 || limit > 500 ? null : limit;
10
- }
11
- async function authenticated_user_id(client) {
12
- const { data, error: authError } = await client.auth.getUser();
13
- return authError ? null : (data.user?.id ?? null);
14
- }
15
- function with_lifecycle_actor(updates, user_id) {
16
- return updates.lifecycle
17
- ? { ...updates, lifecycle_changed_by: user_id }
18
- : updates;
19
- }
20
- function with_update_actor(updates, user_id) {
21
- return { ...with_lifecycle_actor(updates, user_id), updated_by: user_id };
22
- }
23
- function update_error(updates) {
24
- if (Object.keys(updates).length === 0)
25
- return "no fields to update";
26
- if (updates.lifecycle_reason !== undefined && updates.lifecycle === undefined) {
27
- return "lifecycle_reason requires lifecycle";
28
- }
29
- return null;
30
- }
31
- async function list_by(table, column, value, options) {
32
- const limit = page_limit(options);
33
- if (limit == null)
34
- return error("limit must be between 1 and 500");
35
- const supabase = await newServerClient();
36
- let query = supabase
37
- .from(table)
38
- .select("*")
39
- .eq(column, value)
40
- .order("id")
41
- .limit(limit);
42
- if (!options?.include_inactive)
43
- query = query.eq("lifecycle", "active");
44
- if (options?.after_id != null)
45
- query = query.gt("id", options.after_id);
46
- const { data, error: queryError } = await query;
47
- return queryError
48
- ? error(queryError.message)
49
- : IWebResponse.success((data ?? [])).to_compatible();
50
- }
51
- async function insert_row(table, row) {
52
- const supabase = await newServerClient();
53
- const { data, error: queryError } = await supabase
54
- .from(table)
55
- .insert(row)
56
- .select("*")
57
- .single();
58
- return queryError
59
- ? error(queryError.message)
60
- : IWebResponse.success(data).to_compatible();
61
- }
62
- async function insert_with_creator(table, row) {
63
- const supabase = await newServerClient();
64
- const user_id = await authenticated_user_id(supabase);
65
- if (!user_id)
66
- return error("authentication required");
67
- const { data, error: queryError } = await supabase
68
- .from(table)
69
- .insert({ ...row, created_by: user_id })
70
- .select("*")
71
- .single();
72
- return queryError
73
- ? error(queryError.message)
74
- : IWebResponse.success(data).to_compatible();
75
- }
76
- async function patch_row(table, id, updates, actor) {
77
- const invalid = update_error(updates);
78
- if (invalid)
79
- return error(invalid);
80
- const supabase = await newServerClient();
81
- const user_id = await authenticated_user_id(supabase);
82
- if (!user_id)
83
- return error("authentication required");
84
- const payload = actor === "update"
85
- ? with_update_actor(updates, user_id)
86
- : with_lifecycle_actor(updates, user_id);
87
- const { data, error: queryError } = await supabase
88
- .from(table)
89
- .update(payload)
90
- .eq("id", id)
91
- .select("*")
92
- .single();
93
- return queryError
94
- ? error(queryError.message)
95
- : IWebResponse.success(data).to_compatible();
96
- }
2
+ import * as queries from "./operating_contexts.queries";
97
3
  export async function server_get_document_conditions_by_localization(localization_id, options) {
98
- return list_by("document_conditions", "localization_id", localization_id, options);
4
+ return queries.get_document_conditions_by_localization_query(await newServerClient(), localization_id, options);
99
5
  }
100
6
  export async function server_create_document_condition(row) {
101
- return insert_row("document_conditions", row);
7
+ return queries.create_document_condition_query(await newServerClient(), row);
102
8
  }
103
9
  export async function server_update_document_condition(id, updates) {
104
- return patch_row("document_conditions", id, updates, "lifecycle");
10
+ return queries.update_document_condition_query(await newServerClient(), id, updates);
105
11
  }
106
12
  export async function server_get_operating_context_types_by_localization(localization_id, options) {
107
- return list_by("operating_context_types", "localization_id", localization_id, options);
13
+ return queries.get_operating_context_types_by_localization_query(await newServerClient(), localization_id, options);
108
14
  }
109
15
  export async function server_create_operating_context_type(row) {
110
- return insert_row("operating_context_types", row);
16
+ return queries.create_operating_context_type_query(await newServerClient(), row);
111
17
  }
112
18
  export async function server_update_operating_context_type(id, updates) {
113
- return patch_row("operating_context_types", id, updates, "lifecycle");
19
+ return queries.update_operating_context_type_query(await newServerClient(), id, updates);
114
20
  }
115
21
  export async function server_get_operating_context_roles_by_localization(localization_id, options) {
116
- return list_by("operating_context_roles", "localization_id", localization_id, options);
22
+ return queries.get_operating_context_roles_by_localization_query(await newServerClient(), localization_id, options);
117
23
  }
118
24
  export async function server_create_operating_context_role(row) {
119
- return insert_row("operating_context_roles", row);
25
+ return queries.create_operating_context_role_query(await newServerClient(), row);
120
26
  }
121
27
  export async function server_update_operating_context_role(id, updates) {
122
- return patch_row("operating_context_roles", id, updates, "lifecycle");
28
+ return queries.update_operating_context_role_query(await newServerClient(), id, updates);
123
29
  }
124
30
  export async function server_get_operating_context_equipment_categories_by_localization(localization_id, options) {
125
- return list_by("operating_context_equipment_categories", "localization_id", localization_id, options);
31
+ return queries.get_operating_context_equipment_categories_by_localization_query(await newServerClient(), localization_id, options);
126
32
  }
127
33
  export async function server_create_operating_context_equipment_category(row) {
128
- return insert_row("operating_context_equipment_categories", row);
34
+ return queries.create_operating_context_equipment_category_query(await newServerClient(), row);
129
35
  }
130
36
  export async function server_update_operating_context_equipment_category(id, updates) {
131
- return patch_row("operating_context_equipment_categories", id, updates, "lifecycle");
37
+ return queries.update_operating_context_equipment_category_query(await newServerClient(), id, updates);
132
38
  }
133
39
  export async function server_get_operating_context_equipment_items_by_category(equipment_category_id, options) {
134
- return list_by("operating_context_equipment_items", "equipment_category_id", equipment_category_id, options);
40
+ return queries.get_operating_context_equipment_items_by_category_query(await newServerClient(), equipment_category_id, options);
135
41
  }
136
42
  export async function server_create_operating_context_equipment_item(row) {
137
- return insert_row("operating_context_equipment_items", row);
43
+ return queries.create_operating_context_equipment_item_query(await newServerClient(), row);
138
44
  }
139
45
  export async function server_update_operating_context_equipment_item(id, updates) {
140
- return patch_row("operating_context_equipment_items", id, updates, "lifecycle");
46
+ return queries.update_operating_context_equipment_item_query(await newServerClient(), id, updates);
141
47
  }
142
48
  export async function server_get_operating_contexts_by_herd(herd_id, options) {
143
- return list_by("operating_contexts", "herd_id", herd_id, options);
49
+ return queries.get_operating_contexts_by_herd_query(await newServerClient(), herd_id, options);
144
50
  }
145
51
  export async function server_get_operating_context_by_id(id) {
146
- const supabase = await newServerClient();
147
- const { data, error: queryError } = await supabase
148
- .from("operating_contexts")
149
- .select("*")
150
- .eq("id", id)
151
- .maybeSingle();
152
- return queryError
153
- ? error(queryError.message)
154
- : IWebResponse.success(data).to_compatible();
52
+ return queries.get_operating_context_by_id_query(await newServerClient(), id);
155
53
  }
156
54
  export async function server_create_operating_context(row) {
157
- return insert_with_creator("operating_contexts", row);
55
+ return queries.create_operating_context_query(await newServerClient(), row);
158
56
  }
159
57
  export async function server_update_operating_context(id, updates) {
160
- return patch_row("operating_contexts", id, updates, "update");
58
+ return queries.update_operating_context_query(await newServerClient(), id, updates);
161
59
  }
162
60
  export async function server_get_operating_context_payloads_by_operating_context(operating_context_id, options) {
163
- return list_by("operating_context_payloads", "operating_context_id", operating_context_id, options);
61
+ return queries.get_operating_context_payloads_by_operating_context_query(await newServerClient(), operating_context_id, options);
164
62
  }
165
63
  export async function server_create_operating_context_payload(row) {
166
- return insert_with_creator("operating_context_payloads", row);
64
+ return queries.create_operating_context_payload_query(await newServerClient(), row);
167
65
  }
168
66
  export async function server_update_operating_context_payload(id, updates) {
169
- return patch_row("operating_context_payloads", id, updates, "update");
67
+ return queries.update_operating_context_payload_query(await newServerClient(), id, updates);
170
68
  }
171
69
  export async function server_get_operating_context_role_assignments_by_operating_context(operating_context_id, options) {
172
- return list_by("operating_context_role_assignments", "operating_context_id", operating_context_id, options);
70
+ return queries.get_operating_context_role_assignments_by_operating_context_query(await newServerClient(), operating_context_id, options);
173
71
  }
174
72
  export async function server_create_operating_context_role_assignment(row) {
175
- return insert_row("operating_context_role_assignments", row);
73
+ return queries.create_operating_context_role_assignment_query(await newServerClient(), row);
176
74
  }
177
75
  export async function server_update_operating_context_role_assignment(id, updates) {
178
- return patch_row("operating_context_role_assignments", id, updates, "lifecycle");
76
+ return queries.update_operating_context_role_assignment_query(await newServerClient(), id, updates);
179
77
  }
180
78
  export async function server_get_operating_context_devices_by_operating_context(operating_context_id, options) {
181
- return list_by("operating_contexts_devices", "operating_context_id", operating_context_id, options);
79
+ return queries.get_operating_context_devices_by_operating_context_query(await newServerClient(), operating_context_id, options);
182
80
  }
183
81
  export async function server_create_operating_context_device(row) {
184
- return insert_row("operating_contexts_devices", row);
82
+ return queries.create_operating_context_device_query(await newServerClient(), row);
185
83
  }
186
84
  export async function server_update_operating_context_device(id, updates) {
187
- return patch_row("operating_contexts_devices", id, updates, "lifecycle");
85
+ return queries.update_operating_context_device_query(await newServerClient(), id, updates);
188
86
  }
189
87
  export async function server_get_operating_context_equipment_requirements_by_operating_context(operating_context_id, options) {
190
- return list_by("operating_context_equipment_requirements", "operating_context_id", operating_context_id, options);
88
+ return queries.get_operating_context_equipment_requirements_by_operating_context_query(await newServerClient(), operating_context_id, options);
191
89
  }
192
90
  export async function server_create_operating_context_equipment_requirement(row) {
193
- return insert_row("operating_context_equipment_requirements", row);
91
+ return queries.create_operating_context_equipment_requirement_query(await newServerClient(), row);
194
92
  }
195
93
  export async function server_update_operating_context_equipment_requirement(id, updates) {
196
- return patch_row("operating_context_equipment_requirements", id, updates, "lifecycle");
94
+ return queries.update_operating_context_equipment_requirement_query(await newServerClient(), id, updates);
197
95
  }
198
96
  export async function server_get_operating_context_regions_by_operating_context(operating_context_id, options) {
199
- return list_by("operating_context_regions", "operating_context_id", operating_context_id, options);
97
+ return queries.get_operating_context_regions_by_operating_context_query(await newServerClient(), operating_context_id, options);
200
98
  }
201
99
  export async function server_create_operating_context_region(row) {
202
- return insert_with_creator("operating_context_regions", row);
100
+ return queries.create_operating_context_region_query(await newServerClient(), row);
203
101
  }
204
102
  export async function server_update_operating_context_region(id, updates) {
205
- return patch_row("operating_context_regions", id, updates, "update");
103
+ return queries.update_operating_context_region_query(await newServerClient(), id, updates);
206
104
  }
207
105
  export async function server_get_operating_context_risks_by_operating_context(operating_context_id, options) {
208
- return list_by("operating_context_risks", "operating_context_id", operating_context_id, options);
106
+ return queries.get_operating_context_risks_by_operating_context_query(await newServerClient(), operating_context_id, options);
209
107
  }
210
108
  export async function server_create_operating_context_risk(row) {
211
- return insert_with_creator("operating_context_risks", row);
109
+ return queries.create_operating_context_risk_query(await newServerClient(), row);
212
110
  }
213
111
  export async function server_update_operating_context_risk(id, updates) {
214
- return patch_row("operating_context_risks", id, updates, "update");
112
+ return queries.update_operating_context_risk_query(await newServerClient(), id, updates);
215
113
  }
216
114
  export async function server_get_operating_context_weather_snapshots(operating_context_id, options) {
217
- if (options?.limit != null &&
218
- (options.limit < 1 || options.limit > 500)) {
219
- return error("limit must be between 1 and 500");
220
- }
221
- const supabase = await newServerClient();
222
- const { data, error: queryError } = await supabase.rpc("get_operating_context_weather_snapshots", {
223
- operating_context_id_caller: operating_context_id,
224
- limit_caller: options?.limit,
225
- cursor_collected_at: options?.cursor?.collected_at,
226
- cursor_id: options?.cursor?.id,
227
- });
228
- return queryError
229
- ? error(queryError.message)
230
- : IWebResponse.success(data ?? []).to_compatible();
115
+ return queries.get_operating_context_weather_snapshots_query(await newServerClient(), operating_context_id, options);
231
116
  }
@@ -0,0 +1,48 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ import { DocumentConditionCreateInput, DocumentConditionUpdateInput, IDocumentCondition, IOperatingContext, IOperatingContextDevice, IOperatingContextEquipmentCategory, IOperatingContextEquipmentItem, IOperatingContextEquipmentRequirement, IOperatingContextPayload, IOperatingContextRegion, IOperatingContextRisk, IOperatingContextRole, IOperatingContextRoleAssignment, IOperatingContextType, IOperatingContextWeatherSnapshot, OperatingContextCreateInput, OperatingContextDeviceCreateInput, OperatingContextDeviceUpdateInput, OperatingContextEquipmentCategoryCreateInput, OperatingContextEquipmentCategoryUpdateInput, OperatingContextEquipmentItemCreateInput, OperatingContextEquipmentItemUpdateInput, OperatingContextEquipmentRequirementCreateInput, OperatingContextEquipmentRequirementUpdateInput, OperatingContextListOptions, OperatingContextPayloadCreateInput, OperatingContextPayloadUpdateInput, OperatingContextRegionCreateInput, OperatingContextRegionUpdateInput, OperatingContextRiskCreateInput, OperatingContextRiskUpdateInput, OperatingContextRoleAssignmentCreateInput, OperatingContextRoleAssignmentUpdateInput, OperatingContextRoleCreateInput, OperatingContextRoleUpdateInput, OperatingContextTypeCreateInput, OperatingContextTypeUpdateInput, OperatingContextUpdateInput } from "../types/db";
3
+ import { IWebResponseCompatible } from "../types/requests";
4
+ import { Database } from "../types/supabase";
5
+ export declare function get_document_conditions_by_localization_query(client: SupabaseClient<Database>, localization_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IDocumentCondition[]>>;
6
+ export declare function create_document_condition_query(client: SupabaseClient<Database>, row: DocumentConditionCreateInput): Promise<IWebResponseCompatible<IDocumentCondition | null>>;
7
+ export declare function update_document_condition_query(client: SupabaseClient<Database>, id: number, updates: DocumentConditionUpdateInput): Promise<IWebResponseCompatible<IDocumentCondition | null>>;
8
+ export declare function get_operating_context_types_by_localization_query(client: SupabaseClient<Database>, localization_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextType[]>>;
9
+ export declare function create_operating_context_type_query(client: SupabaseClient<Database>, row: OperatingContextTypeCreateInput): Promise<IWebResponseCompatible<IOperatingContextType | null>>;
10
+ export declare function update_operating_context_type_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextTypeUpdateInput): Promise<IWebResponseCompatible<IOperatingContextType | null>>;
11
+ export declare function get_operating_context_roles_by_localization_query(client: SupabaseClient<Database>, localization_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextRole[]>>;
12
+ export declare function create_operating_context_role_query(client: SupabaseClient<Database>, row: OperatingContextRoleCreateInput): Promise<IWebResponseCompatible<IOperatingContextRole | null>>;
13
+ export declare function update_operating_context_role_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextRoleUpdateInput): Promise<IWebResponseCompatible<IOperatingContextRole | null>>;
14
+ export declare function get_operating_context_equipment_categories_by_localization_query(client: SupabaseClient<Database>, localization_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextEquipmentCategory[]>>;
15
+ export declare function create_operating_context_equipment_category_query(client: SupabaseClient<Database>, row: OperatingContextEquipmentCategoryCreateInput): Promise<IWebResponseCompatible<IOperatingContextEquipmentCategory | null>>;
16
+ export declare function update_operating_context_equipment_category_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextEquipmentCategoryUpdateInput): Promise<IWebResponseCompatible<IOperatingContextEquipmentCategory | null>>;
17
+ export declare function get_operating_context_equipment_items_by_category_query(client: SupabaseClient<Database>, equipment_category_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextEquipmentItem[]>>;
18
+ export declare function create_operating_context_equipment_item_query(client: SupabaseClient<Database>, row: OperatingContextEquipmentItemCreateInput): Promise<IWebResponseCompatible<IOperatingContextEquipmentItem | null>>;
19
+ export declare function update_operating_context_equipment_item_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextEquipmentItemUpdateInput): Promise<IWebResponseCompatible<IOperatingContextEquipmentItem | null>>;
20
+ export declare function get_operating_contexts_by_herd_query(client: SupabaseClient<Database>, herd_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContext[]>>;
21
+ export declare function get_operating_context_by_id_query(client: SupabaseClient<Database>, id: number): Promise<IWebResponseCompatible<IOperatingContext | null>>;
22
+ export declare function create_operating_context_query(client: SupabaseClient<Database>, row: OperatingContextCreateInput): Promise<IWebResponseCompatible<IOperatingContext | null>>;
23
+ export declare function update_operating_context_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextUpdateInput): Promise<IWebResponseCompatible<IOperatingContext | null>>;
24
+ export declare function get_operating_context_payloads_by_operating_context_query(client: SupabaseClient<Database>, operating_context_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextPayload[]>>;
25
+ export declare function create_operating_context_payload_query(client: SupabaseClient<Database>, row: OperatingContextPayloadCreateInput): Promise<IWebResponseCompatible<IOperatingContextPayload | null>>;
26
+ export declare function update_operating_context_payload_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextPayloadUpdateInput): Promise<IWebResponseCompatible<IOperatingContextPayload | null>>;
27
+ export declare function get_operating_context_role_assignments_by_operating_context_query(client: SupabaseClient<Database>, operating_context_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextRoleAssignment[]>>;
28
+ export declare function create_operating_context_role_assignment_query(client: SupabaseClient<Database>, row: OperatingContextRoleAssignmentCreateInput): Promise<IWebResponseCompatible<IOperatingContextRoleAssignment | null>>;
29
+ export declare function update_operating_context_role_assignment_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextRoleAssignmentUpdateInput): Promise<IWebResponseCompatible<IOperatingContextRoleAssignment | null>>;
30
+ export declare function get_operating_context_devices_by_operating_context_query(client: SupabaseClient<Database>, operating_context_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextDevice[]>>;
31
+ export declare function create_operating_context_device_query(client: SupabaseClient<Database>, row: OperatingContextDeviceCreateInput): Promise<IWebResponseCompatible<IOperatingContextDevice | null>>;
32
+ export declare function update_operating_context_device_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextDeviceUpdateInput): Promise<IWebResponseCompatible<IOperatingContextDevice | null>>;
33
+ export declare function get_operating_context_equipment_requirements_by_operating_context_query(client: SupabaseClient<Database>, operating_context_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextEquipmentRequirement[]>>;
34
+ export declare function create_operating_context_equipment_requirement_query(client: SupabaseClient<Database>, row: OperatingContextEquipmentRequirementCreateInput): Promise<IWebResponseCompatible<IOperatingContextEquipmentRequirement | null>>;
35
+ export declare function update_operating_context_equipment_requirement_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextEquipmentRequirementUpdateInput): Promise<IWebResponseCompatible<IOperatingContextEquipmentRequirement | null>>;
36
+ export declare function get_operating_context_regions_by_operating_context_query(client: SupabaseClient<Database>, operating_context_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextRegion[]>>;
37
+ export declare function create_operating_context_region_query(client: SupabaseClient<Database>, row: OperatingContextRegionCreateInput): Promise<IWebResponseCompatible<IOperatingContextRegion | null>>;
38
+ export declare function update_operating_context_region_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextRegionUpdateInput): Promise<IWebResponseCompatible<IOperatingContextRegion | null>>;
39
+ export declare function get_operating_context_risks_by_operating_context_query(client: SupabaseClient<Database>, operating_context_id: number, options?: OperatingContextListOptions): Promise<IWebResponseCompatible<IOperatingContextRisk[]>>;
40
+ export declare function create_operating_context_risk_query(client: SupabaseClient<Database>, row: OperatingContextRiskCreateInput): Promise<IWebResponseCompatible<IOperatingContextRisk | null>>;
41
+ export declare function update_operating_context_risk_query(client: SupabaseClient<Database>, id: number, updates: OperatingContextRiskUpdateInput): Promise<IWebResponseCompatible<IOperatingContextRisk | null>>;
42
+ export declare function get_operating_context_weather_snapshots_query(client: SupabaseClient<Database>, operating_context_id: number, options?: {
43
+ limit?: number;
44
+ cursor?: {
45
+ collected_at: string;
46
+ id: number;
47
+ };
48
+ }): Promise<IWebResponseCompatible<IOperatingContextWeatherSnapshot[]>>;
@@ -0,0 +1,223 @@
1
+ import { IWebResponse } from "../types/requests";
2
+ function error(message) {
3
+ return IWebResponse.error(message).to_compatible();
4
+ }
5
+ function page_limit(options) {
6
+ const limit = options?.limit ?? 100;
7
+ return limit < 1 || limit > 500 ? null : limit;
8
+ }
9
+ async function authenticated_user_id(client) {
10
+ const { data, error: authError } = await client.auth.getUser();
11
+ return authError ? null : (data.user?.id ?? null);
12
+ }
13
+ function with_lifecycle_actor(updates, user_id) {
14
+ return updates.lifecycle
15
+ ? { ...updates, lifecycle_changed_by: user_id }
16
+ : updates;
17
+ }
18
+ function with_update_actor(updates, user_id) {
19
+ return { ...with_lifecycle_actor(updates, user_id), updated_by: user_id };
20
+ }
21
+ function update_error(updates) {
22
+ if (Object.keys(updates).length === 0)
23
+ return "no fields to update";
24
+ if (updates.lifecycle_reason !== undefined && updates.lifecycle === undefined) {
25
+ return "lifecycle_reason requires lifecycle";
26
+ }
27
+ return null;
28
+ }
29
+ async function list_by(client, table, column, value, options) {
30
+ const limit = page_limit(options);
31
+ if (limit == null)
32
+ return error("limit must be between 1 and 500");
33
+ let query = client
34
+ .from(table)
35
+ .select("*")
36
+ .eq(column, value)
37
+ .order("id")
38
+ .limit(limit);
39
+ if (!options?.include_inactive)
40
+ query = query.eq("lifecycle", "active");
41
+ if (options?.after_id != null)
42
+ query = query.gt("id", options.after_id);
43
+ const { data, error: queryError } = await query;
44
+ return queryError
45
+ ? error(queryError.message)
46
+ : IWebResponse.success((data ?? [])).to_compatible();
47
+ }
48
+ async function insert_row(client, table, row) {
49
+ const { data, error: queryError } = await client
50
+ .from(table)
51
+ .insert(row)
52
+ .select("*")
53
+ .single();
54
+ return queryError
55
+ ? error(queryError.message)
56
+ : IWebResponse.success(data).to_compatible();
57
+ }
58
+ async function insert_with_creator(client, table, row) {
59
+ const user_id = await authenticated_user_id(client);
60
+ if (!user_id)
61
+ return error("authentication required");
62
+ const { data, error: queryError } = await client
63
+ .from(table)
64
+ .insert({ ...row, created_by: user_id })
65
+ .select("*")
66
+ .single();
67
+ return queryError
68
+ ? error(queryError.message)
69
+ : IWebResponse.success(data).to_compatible();
70
+ }
71
+ async function patch_row(client, table, id, updates, actor) {
72
+ const invalid = update_error(updates);
73
+ if (invalid)
74
+ return error(invalid);
75
+ const user_id = await authenticated_user_id(client);
76
+ if (!user_id)
77
+ return error("authentication required");
78
+ const payload = actor === "update"
79
+ ? with_update_actor(updates, user_id)
80
+ : with_lifecycle_actor(updates, user_id);
81
+ const { data, error: queryError } = await client
82
+ .from(table)
83
+ .update(payload)
84
+ .eq("id", id)
85
+ .select("*")
86
+ .single();
87
+ return queryError
88
+ ? error(queryError.message)
89
+ : IWebResponse.success(data).to_compatible();
90
+ }
91
+ export async function get_document_conditions_by_localization_query(client, localization_id, options) {
92
+ return list_by(client, "document_conditions", "localization_id", localization_id, options);
93
+ }
94
+ export async function create_document_condition_query(client, row) {
95
+ return insert_row(client, "document_conditions", row);
96
+ }
97
+ export async function update_document_condition_query(client, id, updates) {
98
+ return patch_row(client, "document_conditions", id, updates, "lifecycle");
99
+ }
100
+ export async function get_operating_context_types_by_localization_query(client, localization_id, options) {
101
+ return list_by(client, "operating_context_types", "localization_id", localization_id, options);
102
+ }
103
+ export async function create_operating_context_type_query(client, row) {
104
+ return insert_row(client, "operating_context_types", row);
105
+ }
106
+ export async function update_operating_context_type_query(client, id, updates) {
107
+ return patch_row(client, "operating_context_types", id, updates, "lifecycle");
108
+ }
109
+ export async function get_operating_context_roles_by_localization_query(client, localization_id, options) {
110
+ return list_by(client, "operating_context_roles", "localization_id", localization_id, options);
111
+ }
112
+ export async function create_operating_context_role_query(client, row) {
113
+ return insert_row(client, "operating_context_roles", row);
114
+ }
115
+ export async function update_operating_context_role_query(client, id, updates) {
116
+ return patch_row(client, "operating_context_roles", id, updates, "lifecycle");
117
+ }
118
+ export async function get_operating_context_equipment_categories_by_localization_query(client, localization_id, options) {
119
+ return list_by(client, "operating_context_equipment_categories", "localization_id", localization_id, options);
120
+ }
121
+ export async function create_operating_context_equipment_category_query(client, row) {
122
+ return insert_row(client, "operating_context_equipment_categories", row);
123
+ }
124
+ export async function update_operating_context_equipment_category_query(client, id, updates) {
125
+ return patch_row(client, "operating_context_equipment_categories", id, updates, "lifecycle");
126
+ }
127
+ export async function get_operating_context_equipment_items_by_category_query(client, equipment_category_id, options) {
128
+ return list_by(client, "operating_context_equipment_items", "equipment_category_id", equipment_category_id, options);
129
+ }
130
+ export async function create_operating_context_equipment_item_query(client, row) {
131
+ return insert_row(client, "operating_context_equipment_items", row);
132
+ }
133
+ export async function update_operating_context_equipment_item_query(client, id, updates) {
134
+ return patch_row(client, "operating_context_equipment_items", id, updates, "lifecycle");
135
+ }
136
+ export async function get_operating_contexts_by_herd_query(client, herd_id, options) {
137
+ return list_by(client, "operating_contexts", "herd_id", herd_id, options);
138
+ }
139
+ export async function get_operating_context_by_id_query(client, id) {
140
+ const { data, error: queryError } = await client
141
+ .from("operating_contexts")
142
+ .select("*")
143
+ .eq("id", id)
144
+ .maybeSingle();
145
+ return queryError
146
+ ? error(queryError.message)
147
+ : IWebResponse.success(data).to_compatible();
148
+ }
149
+ export async function create_operating_context_query(client, row) {
150
+ return insert_with_creator(client, "operating_contexts", row);
151
+ }
152
+ export async function update_operating_context_query(client, id, updates) {
153
+ return patch_row(client, "operating_contexts", id, updates, "update");
154
+ }
155
+ export async function get_operating_context_payloads_by_operating_context_query(client, operating_context_id, options) {
156
+ return list_by(client, "operating_context_payloads", "operating_context_id", operating_context_id, options);
157
+ }
158
+ export async function create_operating_context_payload_query(client, row) {
159
+ return insert_with_creator(client, "operating_context_payloads", row);
160
+ }
161
+ export async function update_operating_context_payload_query(client, id, updates) {
162
+ return patch_row(client, "operating_context_payloads", id, updates, "update");
163
+ }
164
+ export async function get_operating_context_role_assignments_by_operating_context_query(client, operating_context_id, options) {
165
+ return list_by(client, "operating_context_role_assignments", "operating_context_id", operating_context_id, options);
166
+ }
167
+ export async function create_operating_context_role_assignment_query(client, row) {
168
+ return insert_row(client, "operating_context_role_assignments", row);
169
+ }
170
+ export async function update_operating_context_role_assignment_query(client, id, updates) {
171
+ return patch_row(client, "operating_context_role_assignments", id, updates, "lifecycle");
172
+ }
173
+ export async function get_operating_context_devices_by_operating_context_query(client, operating_context_id, options) {
174
+ return list_by(client, "operating_contexts_devices", "operating_context_id", operating_context_id, options);
175
+ }
176
+ export async function create_operating_context_device_query(client, row) {
177
+ return insert_row(client, "operating_contexts_devices", row);
178
+ }
179
+ export async function update_operating_context_device_query(client, id, updates) {
180
+ return patch_row(client, "operating_contexts_devices", id, updates, "lifecycle");
181
+ }
182
+ export async function get_operating_context_equipment_requirements_by_operating_context_query(client, operating_context_id, options) {
183
+ return list_by(client, "operating_context_equipment_requirements", "operating_context_id", operating_context_id, options);
184
+ }
185
+ export async function create_operating_context_equipment_requirement_query(client, row) {
186
+ return insert_row(client, "operating_context_equipment_requirements", row);
187
+ }
188
+ export async function update_operating_context_equipment_requirement_query(client, id, updates) {
189
+ return patch_row(client, "operating_context_equipment_requirements", id, updates, "lifecycle");
190
+ }
191
+ export async function get_operating_context_regions_by_operating_context_query(client, operating_context_id, options) {
192
+ return list_by(client, "operating_context_regions", "operating_context_id", operating_context_id, options);
193
+ }
194
+ export async function create_operating_context_region_query(client, row) {
195
+ return insert_with_creator(client, "operating_context_regions", row);
196
+ }
197
+ export async function update_operating_context_region_query(client, id, updates) {
198
+ return patch_row(client, "operating_context_regions", id, updates, "update");
199
+ }
200
+ export async function get_operating_context_risks_by_operating_context_query(client, operating_context_id, options) {
201
+ return list_by(client, "operating_context_risks", "operating_context_id", operating_context_id, options);
202
+ }
203
+ export async function create_operating_context_risk_query(client, row) {
204
+ return insert_with_creator(client, "operating_context_risks", row);
205
+ }
206
+ export async function update_operating_context_risk_query(client, id, updates) {
207
+ return patch_row(client, "operating_context_risks", id, updates, "update");
208
+ }
209
+ export async function get_operating_context_weather_snapshots_query(client, operating_context_id, options) {
210
+ if (options?.limit != null &&
211
+ (options.limit < 1 || options.limit > 500)) {
212
+ return error("limit must be between 1 and 500");
213
+ }
214
+ const { data, error: queryError } = await client.rpc("get_operating_context_weather_snapshots", {
215
+ operating_context_id_caller: operating_context_id,
216
+ limit_caller: options?.limit,
217
+ cursor_collected_at: options?.cursor?.collected_at,
218
+ cursor_id: options?.cursor?.id,
219
+ });
220
+ return queryError
221
+ ? error(queryError.message)
222
+ : IWebResponse.success(data ?? []).to_compatible();
223
+ }
@@ -1,64 +1,11 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { EnumWebResponse, IWebResponse, } from "../types/requests";
4
- // Get operators by session id (server id)
2
+ import { get_operators_by_session_id_filtered_query, get_operators_by_session_id_query, get_operators_by_user_id_query, } from "./operators.queries";
5
3
  export async function server_get_operators_by_session_id(sessionId) {
6
- const supabase = await newServerClient();
7
- const { data, error } = await supabase
8
- .from("operators")
9
- .select("*")
10
- .eq("session_id", sessionId)
11
- .order("created_at", { ascending: false });
12
- if (error) {
13
- console.warn("Error fetching operators by session id:", error.message);
14
- return {
15
- status: EnumWebResponse.ERROR,
16
- msg: error.message,
17
- data: [],
18
- };
19
- }
20
- return IWebResponse.success(data || []).to_compatible();
4
+ return get_operators_by_session_id_query(await newServerClient(), sessionId);
21
5
  }
22
- // Get all operators for a specific user
23
6
  export async function server_get_operators_by_user_id(userId) {
24
- const supabase = await newServerClient();
25
- const { data, error } = await supabase
26
- .from("operators")
27
- .select("*")
28
- .eq("user_id", userId)
29
- .order("created_at", { ascending: false });
30
- if (error) {
31
- console.warn("Error fetching operators by user id:", error.message);
32
- return {
33
- status: EnumWebResponse.ERROR,
34
- msg: error.message,
35
- data: [],
36
- };
37
- }
38
- return IWebResponse.success(data || []).to_compatible();
7
+ return get_operators_by_user_id_query(await newServerClient(), userId);
39
8
  }
40
- // Get operators by session id with additional filters
41
9
  export async function server_get_operators_by_session_id_filtered(sessionId, action, timestampAfter) {
42
- const supabase = await newServerClient();
43
- let query = supabase
44
- .from("operators")
45
- .select("*")
46
- .eq("session_id", sessionId);
47
- // Apply optional filters
48
- if (action) {
49
- query = query.eq("action", action);
50
- }
51
- if (timestampAfter) {
52
- query = query.gte("timestamp", timestampAfter);
53
- }
54
- const { data, error } = await query.order("timestamp", { ascending: false });
55
- if (error) {
56
- console.warn("Error fetching filtered operators by session id:", error.message);
57
- return {
58
- status: EnumWebResponse.ERROR,
59
- msg: error.message,
60
- data: [],
61
- };
62
- }
63
- return IWebResponse.success(data || []).to_compatible();
10
+ return get_operators_by_session_id_filtered_query(await newServerClient(), sessionId, action, timestampAfter);
64
11
  }
@@ -0,0 +1,7 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ import { IOperator } from "../types/db";
3
+ import { IWebResponseCompatible } from "../types/requests";
4
+ import { Database } from "../types/supabase";
5
+ export declare function get_operators_by_session_id_query(client: SupabaseClient<Database>, sessionId: number): Promise<IWebResponseCompatible<IOperator[]>>;
6
+ export declare function get_operators_by_user_id_query(client: SupabaseClient<Database>, userId: string): Promise<IWebResponseCompatible<IOperator[]>>;
7
+ export declare function get_operators_by_session_id_filtered_query(client: SupabaseClient<Database>, sessionId: number, action?: string, timestampAfter?: string): Promise<IWebResponseCompatible<IOperator[]>>;