serene-core-server 0.1.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 (315) hide show
  1. package/dist/apollo/resolvers/mutations/mailing-lists.d.ts +11 -0
  2. package/dist/apollo/resolvers/mutations/mailing-lists.js +30 -0
  3. package/dist/apollo/resolvers/mutations/user-preferences.d.ts +13 -0
  4. package/dist/apollo/resolvers/mutations/user-preferences.js +31 -0
  5. package/dist/apollo/resolvers/mutations/users.d.ts +28 -0
  6. package/dist/apollo/resolvers/mutations/users.js +44 -0
  7. package/dist/apollo/resolvers/queries/access.d.ts +11 -0
  8. package/dist/apollo/resolvers/queries/access.js +25 -0
  9. package/dist/apollo/resolvers/queries/profile.d.ts +11 -0
  10. package/dist/apollo/resolvers/queries/profile.js +25 -0
  11. package/dist/apollo/resolvers/queries/quotas.d.ts +21 -0
  12. package/dist/apollo/resolvers/queries/quotas.js +25 -0
  13. package/dist/apollo/resolvers/queries/tech.d.ts +5 -0
  14. package/dist/apollo/resolvers/queries/tech.js +35 -0
  15. package/dist/apollo/resolvers/queries/user-preferences.d.ts +5 -0
  16. package/dist/apollo/resolvers/queries/user-preferences.js +33 -0
  17. package/dist/apollo/resolvers/queries/users.d.ts +15 -0
  18. package/dist/apollo/resolvers/queries/users.js +28 -0
  19. package/dist/apollo/resolvers/resolvers.d.ts +20 -0
  20. package/dist/apollo/resolvers/resolvers.js +38 -0
  21. package/dist/apollo/typedefs/typedefs.d.ts +1 -0
  22. package/dist/apollo/typedefs/typedefs.js +142 -0
  23. package/dist/index.d.ts +52 -0
  24. package/dist/index.js +68 -0
  25. package/dist/models/chat/chat-message-created-model.d.ts +17 -0
  26. package/dist/models/chat/chat-message-created-model.js +113 -0
  27. package/dist/models/chat/chat-message-model.d.ts +44 -0
  28. package/dist/models/chat/chat-message-model.js +523 -0
  29. package/dist/models/chat/chat-participant-model.d.ts +39 -0
  30. package/dist/models/chat/chat-participant-model.js +211 -0
  31. package/dist/models/chat/chat-session-model.d.ts +92 -0
  32. package/dist/models/chat/chat-session-model.js +301 -0
  33. package/dist/models/chat/chat-settings-model.d.ts +87 -0
  34. package/dist/models/chat/chat-settings-model.js +261 -0
  35. package/dist/models/feature-flags/feature-flag-model.d.ts +40 -0
  36. package/dist/models/feature-flags/feature-flag-model.js +164 -0
  37. package/dist/models/instances/instance-model.d.ts +93 -0
  38. package/dist/models/instances/instance-model.js +432 -0
  39. package/dist/models/instances/instance-setting-model.d.ts +39 -0
  40. package/dist/models/instances/instance-setting-model.js +193 -0
  41. package/dist/models/mailing-lists/mailing-list-model.d.ts +34 -0
  42. package/dist/models/mailing-lists/mailing-list-model.js +154 -0
  43. package/dist/models/mailing-lists/mailing-list-subscriber-model.d.ts +36 -0
  44. package/dist/models/mailing-lists/mailing-list-subscriber-model.js +152 -0
  45. package/dist/models/quotas/resource-quota-total-model.d.ts +46 -0
  46. package/dist/models/quotas/resource-quota-total-model.js +200 -0
  47. package/dist/models/quotas/resource-quota-usage-model.d.ts +51 -0
  48. package/dist/models/quotas/resource-quota-usage-model.js +181 -0
  49. package/dist/models/tech/rate-limited-api-event-model.d.ts +25 -0
  50. package/dist/models/tech/rate-limited-api-event-model.js +161 -0
  51. package/dist/models/tech/rate-limited-api-model.d.ts +21 -0
  52. package/dist/models/tech/rate-limited-api-model.js +141 -0
  53. package/dist/models/tech/tech-model.d.ts +44 -0
  54. package/dist/models/tech/tech-model.js +268 -0
  55. package/dist/models/tech/tech-provider-api-key-model.d.ts +43 -0
  56. package/dist/models/tech/tech-provider-api-key-model.js +224 -0
  57. package/dist/models/tech/tech-provider-model.d.ts +28 -0
  58. package/dist/models/tech/tech-provider-model.js +197 -0
  59. package/dist/models/users/external-user-integration-model.d.ts +36 -0
  60. package/dist/models/users/external-user-integration-model.js +196 -0
  61. package/dist/models/users/user-error-model.d.ts +54 -0
  62. package/dist/models/users/user-error-model.js +173 -0
  63. package/dist/models/users/user-error-summary-model.d.ts +45 -0
  64. package/dist/models/users/user-error-summary-model.js +172 -0
  65. package/dist/models/users/user-group-member-model.d.ts +41 -0
  66. package/dist/models/users/user-group-member-model.js +193 -0
  67. package/dist/models/users/user-group-model.d.ts +27 -0
  68. package/dist/models/users/user-group-model.js +146 -0
  69. package/dist/models/users/user-model.d.ts +46 -0
  70. package/dist/models/users/user-model.js +153 -0
  71. package/dist/models/users/user-preference-model.d.ts +60 -0
  72. package/dist/models/users/user-preference-model.js +228 -0
  73. package/dist/models/users/user-profile-model.d.ts +58 -0
  74. package/dist/models/users/user-profile-model.js +173 -0
  75. package/dist/prisma.config.d.ts +3 -0
  76. package/dist/prisma.config.js +13 -0
  77. package/dist/services/access/access-service.d.ts +12 -0
  78. package/dist/services/access/access-service.js +44 -0
  79. package/dist/services/access/encrypt-service.d.ts +13 -0
  80. package/dist/services/access/encrypt-service.js +84 -0
  81. package/dist/services/api-usage/api-usage-base-service.d.ts +15 -0
  82. package/dist/services/api-usage/api-usage-base-service.js +75 -0
  83. package/dist/services/console/service.d.ts +7 -0
  84. package/dist/services/console/service.js +70 -0
  85. package/dist/services/db/pg/pg-estimate-size-service.d.ts +16 -0
  86. package/dist/services/db/pg/pg-estimate-size-service.js +90 -0
  87. package/dist/services/files/types.d.ts +6 -0
  88. package/dist/services/files/types.js +2 -0
  89. package/dist/services/files/walk-dir-service.d.ts +8 -0
  90. package/dist/services/files/walk-dir-service.js +94 -0
  91. package/dist/services/locale/countries.d.ts +6 -0
  92. package/dist/services/locale/countries.js +484 -0
  93. package/dist/services/mailing-lists/mailing-list-subscriber-service.d.ts +14 -0
  94. package/dist/services/mailing-lists/mailing-list-subscriber-service.js +45 -0
  95. package/dist/services/process/sleep.d.ts +2 -0
  96. package/dist/services/process/sleep.js +10 -0
  97. package/dist/services/quotas/mutate-service.d.ts +5 -0
  98. package/dist/services/quotas/mutate-service.js +54 -0
  99. package/dist/services/quotas/query-service.d.ts +27 -0
  100. package/dist/services/quotas/query-service.js +137 -0
  101. package/dist/services/quotas/utils-service.d.ts +4 -0
  102. package/dist/services/quotas/utils-service.js +28 -0
  103. package/dist/services/tech/tech-provider-mutate-service.d.ts +7 -0
  104. package/dist/services/tech/tech-provider-mutate-service.js +142 -0
  105. package/dist/services/tech/tech-query-service.d.ts +9 -0
  106. package/dist/services/tech/tech-query-service.js +77 -0
  107. package/dist/services/user-preference/service.d.ts +10 -0
  108. package/dist/services/user-preference/service.js +70 -0
  109. package/dist/services/users/external-user-integration-service.d.ts +9 -0
  110. package/dist/services/users/external-user-integration-service.js +42 -0
  111. package/dist/services/users/profile-service.d.ts +40 -0
  112. package/dist/services/users/profile-service.js +408 -0
  113. package/dist/services/users/service.d.ts +64 -0
  114. package/dist/services/users/service.js +187 -0
  115. package/dist/services/users/user-error-service.d.ts +4 -0
  116. package/dist/services/users/user-error-service.js +42 -0
  117. package/dist/services/users/users-group-service.d.ts +16 -0
  118. package/dist/services/users/users-group-service.js +68 -0
  119. package/dist/services/utils/string-utils-service.d.ts +5 -0
  120. package/dist/services/utils/string-utils-service.js +41 -0
  121. package/dist/src/apollo/resolvers/mutations/mailing-lists.d.ts +11 -0
  122. package/dist/src/apollo/resolvers/mutations/mailing-lists.js +19 -0
  123. package/dist/src/apollo/resolvers/mutations/user-preferences.d.ts +13 -0
  124. package/dist/src/apollo/resolvers/mutations/user-preferences.js +20 -0
  125. package/dist/src/apollo/resolvers/mutations/users.d.ts +28 -0
  126. package/dist/src/apollo/resolvers/mutations/users.js +33 -0
  127. package/dist/src/apollo/resolvers/queries/access.d.ts +11 -0
  128. package/dist/src/apollo/resolvers/queries/access.js +14 -0
  129. package/dist/src/apollo/resolvers/queries/profile.d.ts +11 -0
  130. package/dist/src/apollo/resolvers/queries/profile.js +14 -0
  131. package/dist/src/apollo/resolvers/queries/quotas.d.ts +21 -0
  132. package/dist/src/apollo/resolvers/queries/quotas.js +14 -0
  133. package/dist/src/apollo/resolvers/queries/tech.d.ts +5 -0
  134. package/dist/src/apollo/resolvers/queries/tech.js +24 -0
  135. package/dist/src/apollo/resolvers/queries/user-preferences.d.ts +5 -0
  136. package/dist/src/apollo/resolvers/queries/user-preferences.js +22 -0
  137. package/dist/src/apollo/resolvers/queries/users.d.ts +15 -0
  138. package/dist/src/apollo/resolvers/queries/users.js +17 -0
  139. package/dist/src/apollo/typedefs/typedefs.d.ts +1 -0
  140. package/dist/src/apollo/typedefs/typedefs.js +139 -0
  141. package/dist/src/db.d.ts +3 -0
  142. package/dist/src/db.js +11 -0
  143. package/dist/src/index.d.ts +52 -0
  144. package/dist/src/index.js +52 -0
  145. package/dist/src/models/chat/chat-message-created-model.d.ts +17 -0
  146. package/dist/src/models/chat/chat-message-created-model.js +92 -0
  147. package/dist/src/models/chat/chat-message-model.d.ts +44 -0
  148. package/dist/src/models/chat/chat-message-model.js +484 -0
  149. package/dist/src/models/chat/chat-participant-model.d.ts +39 -0
  150. package/dist/src/models/chat/chat-participant-model.js +178 -0
  151. package/dist/src/models/chat/chat-session-model.d.ts +92 -0
  152. package/dist/src/models/chat/chat-session-model.js +266 -0
  153. package/dist/src/models/chat/chat-settings-model.d.ts +87 -0
  154. package/dist/src/models/chat/chat-settings-model.js +230 -0
  155. package/dist/src/models/feature-flags/feature-flag-model.d.ts +40 -0
  156. package/dist/src/models/feature-flags/feature-flag-model.js +137 -0
  157. package/dist/src/models/instances/instance-model.d.ts +100 -0
  158. package/dist/src/models/instances/instance-model.js +466 -0
  159. package/dist/src/models/instances/instance-setting-model.d.ts +39 -0
  160. package/dist/src/models/instances/instance-setting-model.js +164 -0
  161. package/dist/src/models/mailing-lists/mailing-list-model.d.ts +34 -0
  162. package/dist/src/models/mailing-lists/mailing-list-model.js +127 -0
  163. package/dist/src/models/mailing-lists/mailing-list-subscriber-model.d.ts +36 -0
  164. package/dist/src/models/mailing-lists/mailing-list-subscriber-model.js +127 -0
  165. package/dist/src/models/quotas/resource-quota-total-model.d.ts +46 -0
  166. package/dist/src/models/quotas/resource-quota-total-model.js +170 -0
  167. package/dist/src/models/quotas/resource-quota-usage-model.d.ts +51 -0
  168. package/dist/src/models/quotas/resource-quota-usage-model.js +151 -0
  169. package/dist/src/models/tech/rate-limited-api-event-model.d.ts +25 -0
  170. package/dist/src/models/tech/rate-limited-api-event-model.js +134 -0
  171. package/dist/src/models/tech/rate-limited-api-model.d.ts +21 -0
  172. package/dist/src/models/tech/rate-limited-api-model.js +116 -0
  173. package/dist/src/models/tech/tech-model.d.ts +44 -0
  174. package/dist/src/models/tech/tech-model.js +239 -0
  175. package/dist/src/models/tech/tech-provider-api-key-model.d.ts +43 -0
  176. package/dist/src/models/tech/tech-provider-api-key-model.js +195 -0
  177. package/dist/src/models/tech/tech-provider-model.d.ts +28 -0
  178. package/dist/src/models/tech/tech-provider-model.js +170 -0
  179. package/dist/src/models/users/external-user-integration-model.d.ts +36 -0
  180. package/dist/src/models/users/external-user-integration-model.js +167 -0
  181. package/dist/src/models/users/user-error-model.d.ts +54 -0
  182. package/dist/src/models/users/user-error-model.js +146 -0
  183. package/dist/src/models/users/user-error-summary-model.d.ts +45 -0
  184. package/dist/src/models/users/user-error-summary-model.js +145 -0
  185. package/dist/src/models/users/user-group-member-model.d.ts +41 -0
  186. package/dist/src/models/users/user-group-member-model.js +164 -0
  187. package/dist/src/models/users/user-group-model.d.ts +27 -0
  188. package/dist/src/models/users/user-group-model.js +121 -0
  189. package/dist/src/models/users/user-model.d.ts +46 -0
  190. package/dist/src/models/users/user-model.js +126 -0
  191. package/dist/src/models/users/user-preference-model.d.ts +60 -0
  192. package/dist/src/models/users/user-preference-model.js +197 -0
  193. package/dist/src/models/users/user-profile-model.d.ts +58 -0
  194. package/dist/src/models/users/user-profile-model.js +146 -0
  195. package/dist/src/services/access/access-service.d.ts +12 -0
  196. package/dist/src/services/access/access-service.js +27 -0
  197. package/dist/src/services/access/encrypt-service.d.ts +13 -0
  198. package/dist/src/services/access/encrypt-service.js +79 -0
  199. package/dist/src/services/api-usage/api-usage-base-service.d.ts +15 -0
  200. package/dist/src/services/api-usage/api-usage-base-service.js +58 -0
  201. package/dist/src/services/console/service.d.ts +7 -0
  202. package/dist/src/services/console/service.js +18 -0
  203. package/dist/src/services/db/pg/pg-estimate-size-service.d.ts +16 -0
  204. package/dist/src/services/db/pg/pg-estimate-size-service.js +83 -0
  205. package/dist/src/services/files/types.d.ts +6 -0
  206. package/dist/src/services/files/types.js +1 -0
  207. package/dist/src/services/files/walk-dir-service.d.ts +8 -0
  208. package/dist/src/services/files/walk-dir-service.js +77 -0
  209. package/dist/src/services/locale/countries.d.ts +6 -0
  210. package/dist/src/services/locale/countries.js +481 -0
  211. package/dist/src/services/mailing-lists/mailing-list-subscriber-service.d.ts +14 -0
  212. package/dist/src/services/mailing-lists/mailing-list-subscriber-service.js +28 -0
  213. package/dist/src/services/process/sleep.d.ts +2 -0
  214. package/dist/src/services/process/sleep.js +6 -0
  215. package/dist/src/services/quotas/mutate-service.d.ts +5 -0
  216. package/dist/src/services/quotas/mutate-service.js +37 -0
  217. package/dist/src/services/quotas/query-service.d.ts +27 -0
  218. package/dist/src/services/quotas/query-service.js +116 -0
  219. package/dist/src/services/quotas/utils-service.d.ts +4 -0
  220. package/dist/src/services/quotas/utils-service.js +22 -0
  221. package/dist/src/services/tech/tech-provider-mutate-service.d.ts +7 -0
  222. package/dist/src/services/tech/tech-provider-mutate-service.js +85 -0
  223. package/dist/src/services/tech/tech-query-service.d.ts +9 -0
  224. package/dist/src/services/tech/tech-query-service.js +58 -0
  225. package/dist/src/services/user-preference/service.d.ts +10 -0
  226. package/dist/src/services/user-preference/service.js +49 -0
  227. package/dist/src/services/users/external-user-integration-service.d.ts +9 -0
  228. package/dist/src/services/users/external-user-integration-service.js +25 -0
  229. package/dist/src/services/users/profile-service.d.ts +40 -0
  230. package/dist/src/services/users/profile-service.js +385 -0
  231. package/dist/src/services/users/service.d.ts +64 -0
  232. package/dist/src/services/users/service.js +152 -0
  233. package/dist/src/services/users/user-error-service.d.ts +4 -0
  234. package/dist/src/services/users/user-error-service.js +27 -0
  235. package/dist/src/services/users/users-group-service.d.ts +16 -0
  236. package/dist/src/services/users/users-group-service.js +51 -0
  237. package/dist/src/services/utils/field-naming-service.d.ts +20 -0
  238. package/dist/src/services/utils/field-naming-service.js +59 -0
  239. package/dist/src/services/utils/string-utils-service.d.ts +5 -0
  240. package/dist/src/services/utils/string-utils-service.js +37 -0
  241. package/dist/src/types/errors.d.ts +9 -0
  242. package/dist/src/types/errors.js +15 -0
  243. package/dist/src/types/user-types.d.ts +11 -0
  244. package/dist/src/types/user-types.js +14 -0
  245. package/dist/types/errors.d.ts +9 -0
  246. package/dist/types/errors.js +20 -0
  247. package/dist/types/user-types.d.ts +11 -0
  248. package/dist/types/user-types.js +19 -0
  249. package/package.json +21 -0
  250. package/prisma/schema.prisma +572 -0
  251. package/prisma.config.ts +14 -0
  252. package/src/apollo/README.md +4 -0
  253. package/src/apollo/resolvers/mutations/mailing-lists.ts +30 -0
  254. package/src/apollo/resolvers/mutations/user-preferences.ts +33 -0
  255. package/src/apollo/resolvers/mutations/users.ts +61 -0
  256. package/src/apollo/resolvers/queries/access.ts +23 -0
  257. package/src/apollo/resolvers/queries/profile.ts +24 -0
  258. package/src/apollo/resolvers/queries/quotas.ts +25 -0
  259. package/src/apollo/resolvers/queries/tech.ts +42 -0
  260. package/src/apollo/resolvers/queries/user-preferences.ts +34 -0
  261. package/src/apollo/resolvers/queries/users.ts +33 -0
  262. package/src/apollo/typedefs/typedefs.ts +139 -0
  263. package/src/db.ts +19 -0
  264. package/src/index.ts +52 -0
  265. package/src/models/chat/chat-message-created-model.ts +126 -0
  266. package/src/models/chat/chat-message-model.ts +678 -0
  267. package/src/models/chat/chat-participant-model.ts +248 -0
  268. package/src/models/chat/chat-session-model.ts +397 -0
  269. package/src/models/chat/chat-settings-model.ts +336 -0
  270. package/src/models/feature-flags/feature-flag-model.ts +198 -0
  271. package/src/models/instances/instance-model.ts +673 -0
  272. package/src/models/instances/instance-setting-model.ts +235 -0
  273. package/src/models/mailing-lists/mailing-list-model.ts +177 -0
  274. package/src/models/mailing-lists/mailing-list-subscriber-model.ts +194 -0
  275. package/src/models/quotas/resource-quota-total-model.ts +243 -0
  276. package/src/models/quotas/resource-quota-usage-model.ts +219 -0
  277. package/src/models/tech/rate-limited-api-event-model.ts +190 -0
  278. package/src/models/tech/rate-limited-api-model.ts +171 -0
  279. package/src/models/tech/tech-model.ts +360 -0
  280. package/src/models/tech/tech-provider-api-key-model.ts +289 -0
  281. package/src/models/tech/tech-provider-model.ts +247 -0
  282. package/src/models/users/external-user-integration-model.ts +236 -0
  283. package/src/models/users/user-error-model.ts +219 -0
  284. package/src/models/users/user-error-summary-model.ts +216 -0
  285. package/src/models/users/user-group-member-model.ts +233 -0
  286. package/src/models/users/user-group-model.ts +174 -0
  287. package/src/models/users/user-model.ts +172 -0
  288. package/src/models/users/user-preference-model.ts +285 -0
  289. package/src/models/users/user-profile-model.ts +207 -0
  290. package/src/services/access/access-service.ts +36 -0
  291. package/src/services/access/encrypt-service.ts +122 -0
  292. package/src/services/api-usage/api-usage-base-service.ts +95 -0
  293. package/src/services/console/service.ts +24 -0
  294. package/src/services/db/pg/pg-estimate-size-service.ts +119 -0
  295. package/src/services/files/types.ts +7 -0
  296. package/src/services/files/walk-dir-service.ts +135 -0
  297. package/src/services/locale/countries.ts +483 -0
  298. package/src/services/mailing-lists/mailing-list-subscriber-service.ts +54 -0
  299. package/src/services/process/sleep.ts +7 -0
  300. package/src/services/quotas/mutate-service.ts +66 -0
  301. package/src/services/quotas/query-service.ts +197 -0
  302. package/src/services/quotas/utils-service.ts +29 -0
  303. package/src/services/tech/tech-provider-mutate-service.ts +136 -0
  304. package/src/services/tech/tech-query-service.ts +93 -0
  305. package/src/services/user-preference/service.ts +110 -0
  306. package/src/services/users/external-user-integration-service.ts +51 -0
  307. package/src/services/users/profile-service.ts +513 -0
  308. package/src/services/users/service.ts +293 -0
  309. package/src/services/users/user-error-service.ts +74 -0
  310. package/src/services/users/users-group-service.ts +85 -0
  311. package/src/services/utils/field-naming-service.ts +78 -0
  312. package/src/services/utils/string-utils-service.ts +48 -0
  313. package/src/types/errors.ts +18 -0
  314. package/src/types/user-types.ts +19 -0
  315. package/tsconfig.json +25 -0
@@ -0,0 +1,233 @@
1
+ import { PrismaClient } from '@/prisma/client'
2
+
3
+ export class UserGroupMemberModel {
4
+
5
+ // Consts
6
+ clName = 'UserGroupMemberModel'
7
+
8
+ // Code
9
+ async create(
10
+ prisma: PrismaClient,
11
+ userGroupId: string,
12
+ userProfileId: string,
13
+ isGroupAdmin: boolean) {
14
+
15
+ // Debug
16
+ const fnName = `${this.clName}.create()`
17
+
18
+ // Create record
19
+ try {
20
+ return await prisma.userGroupMember.create({
21
+ data: {
22
+ userGroupId: userGroupId,
23
+ userProfileId: userProfileId,
24
+ isGroupAdmin: isGroupAdmin
25
+ }
26
+ })
27
+ } catch(error: any) {
28
+ console.error(`${fnName}: error: ${error}`)
29
+ throw 'Prisma error'
30
+ }
31
+ }
32
+
33
+ async delete(
34
+ prisma: PrismaClient,
35
+ id: string) {
36
+
37
+ // Debug
38
+ const fnName = `${this.clName}.delete()`
39
+
40
+ // Delete record
41
+ try {
42
+ return await prisma.userGroupMember.delete({
43
+ where: {
44
+ id: id
45
+ }
46
+ })
47
+ } catch(error: any) {
48
+ console.error(`${fnName}: error: ${error}`)
49
+ throw 'Prisma error'
50
+ }
51
+ }
52
+
53
+ async filter(
54
+ prisma: PrismaClient,
55
+ userGroupId: string | undefined,
56
+ isGroupAdmin: boolean | undefined) {
57
+
58
+ // Debug
59
+ const fnName = `${this.clName}.filter()`
60
+
61
+ // Query
62
+ try {
63
+ return await prisma.userGroupMember.findMany({
64
+ where: {
65
+ userGroupId: userGroupId,
66
+ isGroupAdmin: isGroupAdmin
67
+ }
68
+ })
69
+ } catch(error: any) {
70
+ console.error(`${fnName}: error: ${error}`)
71
+ throw 'Prisma error'
72
+ }
73
+ }
74
+
75
+ async getById(
76
+ prisma: PrismaClient,
77
+ id: string) {
78
+
79
+ // Debug
80
+ const fnName = `${this.clName}.getById()`
81
+
82
+ // Query
83
+ var userGroupMember: any = null
84
+
85
+ try {
86
+ userGroupMember = await prisma.userGroupMember.findUnique({
87
+ where: {
88
+ id: id
89
+ }
90
+ })
91
+ } catch(error: any) {
92
+ if (!(error instanceof error.NotFound)) {
93
+ console.error(`${fnName}: error: ${error}`)
94
+ throw 'Prisma error'
95
+ }
96
+ }
97
+
98
+ // Return
99
+ return userGroupMember
100
+ }
101
+
102
+ async getByUniqueKey(
103
+ prisma: PrismaClient,
104
+ userGroupId: string,
105
+ userProfileId: string) {
106
+
107
+ // Debug
108
+ const fnName = `${this.clName}.getByUniqueKey()`
109
+
110
+ // Validate
111
+ if (userGroupId == null) {
112
+ console.error(`${fnName}: id is null and userGroupId is null`)
113
+ throw 'Prisma error'
114
+ }
115
+
116
+ if (userProfileId == null) {
117
+ console.error(`${fnName}: id is null and userProfileId is null`)
118
+ throw 'Prisma error'
119
+ }
120
+
121
+ // Query
122
+ var userGroupMember: any = null
123
+
124
+ try {
125
+ userGroupMember = await prisma.userGroupMember.findFirst({
126
+ where: {
127
+ userGroupId: userGroupId,
128
+ userProfileId: userProfileId
129
+ }
130
+ })
131
+ } catch(error: any) {
132
+ if (!(error instanceof error.NotFound)) {
133
+ console.error(`${fnName}: error: ${error}`)
134
+ throw 'Prisma error'
135
+ }
136
+ }
137
+
138
+ // Return
139
+ return userGroupMember
140
+ }
141
+
142
+ async update(
143
+ prisma: PrismaClient,
144
+ id: string,
145
+ userGroupId: string | undefined,
146
+ userProfileId: string | undefined,
147
+ isGroupAdmin: boolean | undefined) {
148
+
149
+ // Debug
150
+ const fnName = `${this.clName}.update()`
151
+
152
+ // Update record
153
+ try {
154
+ return await prisma.userGroupMember.update({
155
+ data: {
156
+ userGroupId: userGroupId,
157
+ userProfileId: userProfileId,
158
+ isGroupAdmin: isGroupAdmin
159
+ },
160
+ where: {
161
+ id: id
162
+ }
163
+ })
164
+ } catch(error) {
165
+ console.error(`${fnName}: error: ${error}`)
166
+ throw 'Prisma error'
167
+ }
168
+ }
169
+
170
+ async upsert(prisma: PrismaClient,
171
+ id: string | undefined,
172
+ userGroupId: string | undefined,
173
+ userProfileId: string | undefined,
174
+ isGroupAdmin: boolean | undefined) {
175
+
176
+ // Debug
177
+ const fnName = `${this.clName}.upsert()`
178
+
179
+ // If id isn't specified, but the unique keys are, try to get the record
180
+ if (id == null &&
181
+ userGroupId != null &&
182
+ userProfileId != null) {
183
+
184
+ const userGroupMember = await
185
+ this.getByUniqueKey(
186
+ prisma,
187
+ userGroupId,
188
+ userProfileId)
189
+
190
+ if (userGroupMember != null) {
191
+ id = userGroupMember.id
192
+ }
193
+ }
194
+
195
+ // Upsert
196
+ if (id == null) {
197
+
198
+ // Validate for create (mainly for type validation of the create call)
199
+ if (userGroupId == null) {
200
+ console.error(`${fnName}: id is null and userGroupId is null`)
201
+ throw 'Prisma error'
202
+ }
203
+
204
+ if (userProfileId == null) {
205
+ console.error(`${fnName}: id is null and userProfileId is null`)
206
+ throw 'Prisma error'
207
+ }
208
+
209
+ if (isGroupAdmin == null) {
210
+ console.error(`${fnName}: id is null and isGroupAdmin is null`)
211
+ throw 'Prisma error'
212
+ }
213
+
214
+ // Create
215
+ return await
216
+ this.create(
217
+ prisma,
218
+ userGroupId,
219
+ userProfileId,
220
+ isGroupAdmin)
221
+ } else {
222
+
223
+ // Update
224
+ return await
225
+ this.update(
226
+ prisma,
227
+ id,
228
+ userGroupId,
229
+ userProfileId,
230
+ isGroupAdmin)
231
+ }
232
+ }
233
+ }
@@ -0,0 +1,174 @@
1
+ import { PrismaClient } from '@/prisma/client'
2
+
3
+ export class UserGroupModel {
4
+
5
+ // Consts
6
+ clName = 'UserGroupModel'
7
+
8
+ // Code
9
+ async create(
10
+ prisma: PrismaClient,
11
+ ownerUserProfileId: string,
12
+ name: string) {
13
+
14
+ // Debug
15
+ const fnName = `${this.clName}.create()`
16
+
17
+ // Create record
18
+ try {
19
+ return await prisma.userGroup.create({
20
+ data: {
21
+ ownerUserProfileId: ownerUserProfileId,
22
+ name: name
23
+ }
24
+ })
25
+ } catch(error: any) {
26
+ console.error(`${fnName}: error: ${error}`)
27
+ throw 'Prisma error'
28
+ }
29
+ }
30
+
31
+ async getById(
32
+ prisma: PrismaClient,
33
+ id: string) {
34
+
35
+ // Debug
36
+ const fnName = `${this.clName}.getById()`
37
+
38
+ // Query
39
+ var userGroup: any = null
40
+
41
+ try {
42
+ userGroup = await prisma.userGroup.findUnique({
43
+ where: {
44
+ id: id
45
+ }
46
+ })
47
+ } catch(error: any) {
48
+ if (!(error instanceof error.NotFound)) {
49
+ console.error(`${fnName}: error: ${error}`)
50
+ throw 'Prisma error'
51
+ }
52
+ }
53
+
54
+ // Return
55
+ return userGroup
56
+ }
57
+
58
+ async getByUniqueKey(
59
+ prisma: PrismaClient,
60
+ ownerUserProfileId: string,
61
+ name: string) {
62
+
63
+ // Debug
64
+ const fnName = `${this.clName}.getByUniqueKey()`
65
+
66
+ // Validate
67
+ if (name == null) {
68
+ console.error(`${fnName}: id is null and name is null`)
69
+ throw 'Prisma error'
70
+ }
71
+
72
+ // Query
73
+ var userGroup: any = null
74
+
75
+ try {
76
+ userGroup = await prisma.userGroup.findFirst({
77
+ where: {
78
+ ownerUserProfileId: ownerUserProfileId,
79
+ name: name
80
+ }
81
+ })
82
+ } catch(error: any) {
83
+ if (!(error instanceof error.NotFound)) {
84
+ console.error(`${fnName}: error: ${error}`)
85
+ throw 'Prisma error'
86
+ }
87
+ }
88
+
89
+ // Return
90
+ return userGroup
91
+ }
92
+
93
+ async update(
94
+ prisma: PrismaClient,
95
+ id: string,
96
+ ownerUserProfileId: string | undefined,
97
+ name: string | undefined) {
98
+
99
+ // Debug
100
+ const fnName = `${this.clName}.update()`
101
+
102
+ // Update record
103
+ try {
104
+ return await prisma.userGroup.update({
105
+ data: {
106
+ ownerUserProfileId: ownerUserProfileId,
107
+ name: name
108
+ },
109
+ where: {
110
+ id: id
111
+ }
112
+ })
113
+ } catch(error: any) {
114
+ console.error(`${fnName}: error: ${error}`)
115
+ throw 'Prisma error'
116
+ }
117
+ }
118
+
119
+ async upsert(prisma: PrismaClient,
120
+ ownerUserProfileId: string | undefined,
121
+ id: string | undefined,
122
+ name: string | undefined) {
123
+
124
+ // Debug
125
+ const fnName = `${this.clName}.upsert()`
126
+
127
+ // If id isn't specified, try to get by the unique key
128
+ if (id == null &&
129
+ ownerUserProfileId != null &&
130
+ name != null) {
131
+
132
+ const userGroup = await
133
+ this.getByUniqueKey(
134
+ prisma,
135
+ ownerUserProfileId,
136
+ name)
137
+
138
+ if (userGroup != null) {
139
+ id = userGroup.id
140
+ }
141
+ }
142
+
143
+ // Upsert
144
+ if (id == null) {
145
+
146
+ // Validate for create (mainly for type validation of the create call)
147
+ if (ownerUserProfileId == null) {
148
+ console.error(`${fnName}: id is null and ownerUserProfileId is null`)
149
+ throw 'Prisma error'
150
+ }
151
+
152
+ if (name == null) {
153
+ console.error(`${fnName}: id is null and name is null`)
154
+ throw 'Prisma error'
155
+ }
156
+
157
+ // Create
158
+ return await
159
+ this.create(
160
+ prisma,
161
+ ownerUserProfileId,
162
+ name)
163
+ } else {
164
+
165
+ // Update
166
+ return await
167
+ this.update(
168
+ prisma,
169
+ id,
170
+ ownerUserProfileId,
171
+ name)
172
+ }
173
+ }
174
+ }
@@ -0,0 +1,172 @@
1
+ import { PrismaClient } from '@/prisma/client'
2
+
3
+ export class UserModel {
4
+
5
+ // Consts
6
+ clName = 'UserModel'
7
+
8
+ // Code
9
+ async create(prisma: PrismaClient,
10
+ email: string,
11
+ name: string | null | undefined) {
12
+
13
+ // Debug
14
+ const fnName = `${this.clName}.create()`
15
+
16
+ // Format email
17
+ const emailLower = email.toLocaleLowerCase().trim()
18
+
19
+ // Create record
20
+ try {
21
+ return await prisma.user.create({
22
+ data: {
23
+ email: emailLower,
24
+ name: name
25
+ }
26
+ })
27
+ } catch(error: any) {
28
+ console.error(`${fnName}: error: ${error}`)
29
+ throw 'Prisma error'
30
+ }
31
+ }
32
+
33
+ async filter(prisma: PrismaClient) {
34
+
35
+ // Debug
36
+ const fnName = `${this.clName}.filter()`
37
+
38
+ // Filter
39
+ try {
40
+ return await prisma.user.findMany({})
41
+ } catch(error: any) {
42
+ if (!(error instanceof error.NotFound)) {
43
+ console.error(`${fnName}: error: ${error}`)
44
+ throw 'Prisma error'
45
+ }
46
+ }
47
+ }
48
+
49
+ async getByEmail(prisma: PrismaClient,
50
+ email: string) {
51
+
52
+ // Debug
53
+ const fnName = `${this.clName}.getByEmail()`
54
+
55
+ // Get formatted email for DB storage
56
+ const emailLower = email.toLocaleLowerCase().trim()
57
+
58
+ // Get record
59
+ try {
60
+ return await prisma.user.findUnique({
61
+ where: {
62
+ email: emailLower
63
+ }
64
+ })
65
+ } catch(error: any) {
66
+ if (!(error instanceof error.NotFound)) {
67
+ console.error(`${fnName}: error: ${error}`)
68
+ throw 'Prisma error'
69
+ }
70
+ }
71
+ }
72
+
73
+ async getById(prisma: PrismaClient,
74
+ id: string) {
75
+
76
+ // Debug
77
+ const fnName = `${this.clName}.getById()`
78
+
79
+ // Get record
80
+ try {
81
+ return await prisma.user.findUnique({
82
+ where: {
83
+ id: id
84
+ }
85
+ })
86
+ } catch(error: any) {
87
+ if (!(error instanceof error.NotFound)) {
88
+ console.error(`${fnName}: error: ${error}`)
89
+ throw 'Prisma error'
90
+ }
91
+ }
92
+ }
93
+
94
+ async update(prisma: PrismaClient,
95
+ id: string,
96
+ email: string | undefined,
97
+ name: string | null | undefined) {
98
+
99
+ // Debug
100
+ const fnName = `${this.clName}.update()`
101
+
102
+ // Update record
103
+ try {
104
+ return await prisma.user.update({
105
+ data: {
106
+ email: email,
107
+ name: name
108
+ },
109
+ where: {
110
+ id: id
111
+ }
112
+ })
113
+ } catch(error: any) {
114
+ console.error(`${fnName}: error: ${error}`)
115
+ throw 'Prisma error'
116
+ }
117
+ }
118
+
119
+ async upsert(prisma: PrismaClient,
120
+ id: string | undefined,
121
+ email: string,
122
+ name: string | null | undefined) {
123
+
124
+ // Debug
125
+ const fnName = `${this.clName}.upsert()`
126
+
127
+ // If id isn't specified, but the unique keys are, try to get the record
128
+ if (id == null &&
129
+ email != null) {
130
+
131
+ const user = await
132
+ this.getByEmail(
133
+ prisma,
134
+ email)
135
+
136
+ if (user != null) {
137
+ id = user.id
138
+ }
139
+ }
140
+
141
+ // Upsert
142
+ if (id == null) {
143
+
144
+ // Validate for create (mainly for type validation of the create call)
145
+ if (email == null) {
146
+ console.error(`${fnName}: id is null and email is null`)
147
+ throw 'Prisma error'
148
+ }
149
+
150
+ if (name === undefined) {
151
+ console.error(`${fnName}: id is null and name is undefined`)
152
+ throw 'Prisma error'
153
+ }
154
+
155
+ // Create
156
+ return await
157
+ this.create(
158
+ prisma,
159
+ email,
160
+ name)
161
+ } else {
162
+
163
+ // Update
164
+ return await
165
+ this.update(
166
+ prisma,
167
+ id,
168
+ email,
169
+ name)
170
+ }
171
+ }
172
+ }