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,235 @@
1
+ import { Prisma } from '@/prisma/client'
2
+
3
+ export class InstanceSettingModel {
4
+
5
+ // Consts
6
+ clName = 'InstanceSettingModel'
7
+
8
+ // Code
9
+ async create(
10
+ prisma: Prisma.TransactionClient,
11
+ instanceId: string,
12
+ name: string,
13
+ value: string) {
14
+
15
+ // Debug
16
+ const fnName = `${this.clName}.create()`
17
+
18
+ // Create record
19
+ try {
20
+ return await prisma.instanceSetting.create({
21
+ data: {
22
+ instanceId: instanceId,
23
+ name: name,
24
+ value: value
25
+ }
26
+ })
27
+ } catch(error) {
28
+ console.error(`${fnName}: error: ${error}`)
29
+ throw 'Prisma error'
30
+ }
31
+ }
32
+
33
+ async deleteByInstanceId(
34
+ prisma: Prisma.TransactionClient,
35
+ instanceId: string) {
36
+
37
+ // Debug
38
+ const fnName = `${this.clName}.deleteByInstanceId()`
39
+
40
+ // Delete records
41
+ try {
42
+ return await prisma.instanceSetting.deleteMany({
43
+ where: {
44
+ instanceId: instanceId
45
+ }
46
+ })
47
+ } catch(error) {
48
+ console.error(`${fnName}: error: ${error}`)
49
+ throw 'Prisma error'
50
+ }
51
+ }
52
+
53
+ async filter(
54
+ prisma: Prisma.TransactionClient,
55
+ instanceId: string | undefined,
56
+ name: string | undefined,
57
+ value: string | undefined) {
58
+
59
+ // Debug
60
+ const fnName = `${this.clName}.filter()`
61
+
62
+ // console.log(`${fnName}: starting..`)
63
+
64
+ // Query
65
+ try {
66
+ return await prisma.instanceSetting.findMany({
67
+ where: {
68
+ instanceId: instanceId,
69
+ name: name,
70
+ value: value
71
+ }
72
+ })
73
+ } catch(error: any) {
74
+ console.error(`${fnName}: error: ${error}`)
75
+ throw 'Prisma error'
76
+ }
77
+ }
78
+
79
+ async getById(
80
+ prisma: Prisma.TransactionClient,
81
+ id: string) {
82
+
83
+ // Debug
84
+ const fnName = `${this.clName}.getById()`
85
+
86
+ // Query
87
+ var instanceSetting: any = null
88
+
89
+ try {
90
+ instanceSetting = await prisma.instanceSetting.findUnique({
91
+ where: {
92
+ id: id
93
+ }
94
+ })
95
+ } catch(error: any) {
96
+ if (!(error instanceof error.NotFound)) {
97
+ console.error(`${fnName}: error: ${error}`)
98
+ throw 'Prisma error'
99
+ }
100
+ }
101
+
102
+ // Return
103
+ return instanceSetting
104
+ }
105
+
106
+ async getByInstanceIdAndName(
107
+ prisma: Prisma.TransactionClient,
108
+ instanceId: string,
109
+ name: string) {
110
+
111
+ // Debug
112
+ const fnName = `${this.clName}.getByInstanceIdAndName()`
113
+
114
+ // Validate
115
+ if (instanceId == null) {
116
+ console.error(`${fnName}: instanceId == null`)
117
+ throw 'Validation error'
118
+ }
119
+
120
+ if (name == null) {
121
+ console.error(`${fnName}: name == null`)
122
+ throw 'Validation error'
123
+ }
124
+
125
+ // Query
126
+ var instanceSetting: any
127
+
128
+ try {
129
+ instanceSetting = await prisma.instanceSetting.findFirst({
130
+ where: {
131
+ instanceId: instanceId,
132
+ name: name
133
+ }
134
+ })
135
+ } catch(error: any) {
136
+ console.error(`${fnName}: error: ${error}`)
137
+ throw 'Prisma error'
138
+ }
139
+
140
+ // Return
141
+ return instanceSetting
142
+ }
143
+
144
+ async update(
145
+ prisma: Prisma.TransactionClient,
146
+ id: string,
147
+ instanceId: string | undefined,
148
+ name: string | undefined,
149
+ value: string | undefined) {
150
+
151
+ // Debug
152
+ const fnName = `${this.clName}.update()`
153
+
154
+ // Update record
155
+ try {
156
+ return await prisma.instanceSetting.update({
157
+ data: {
158
+ instanceId: instanceId,
159
+ name: name,
160
+ value: value
161
+ },
162
+ where: {
163
+ id: id
164
+ }
165
+ })
166
+ } catch(error) {
167
+ console.error(`${fnName}: error: ${error}`)
168
+ throw 'Prisma error'
169
+ }
170
+ }
171
+
172
+ async upsert(prisma: Prisma.TransactionClient,
173
+ id: string | undefined,
174
+ instanceId: string | undefined,
175
+ name: string | undefined,
176
+ value: string | undefined) {
177
+
178
+ // Debug
179
+ const fnName = `${this.clName}.upsert()`
180
+
181
+ // If id isn't specified, try to get by the unique key
182
+ if (id == null &&
183
+ instanceId != null &&
184
+ name != null) {
185
+
186
+ const instanceSetting = await
187
+ this.getByInstanceIdAndName(
188
+ prisma,
189
+ instanceId,
190
+ name)
191
+
192
+ if (instanceSetting != null) {
193
+ id = instanceSetting.id
194
+ }
195
+ }
196
+
197
+ // Upsert
198
+ if (id == null) {
199
+
200
+ // Validate for create (mainly for type validation of the create call)
201
+ if (instanceId == null) {
202
+ console.error(`${fnName}: id is null and instanceId is null`)
203
+ throw 'Prisma error'
204
+ }
205
+
206
+ if (name == null) {
207
+ console.error(`${fnName}: id is null and name is null`)
208
+ throw 'Prisma error'
209
+ }
210
+
211
+ if (value == null) {
212
+ console.error(`${fnName}: id is null and value is null`)
213
+ throw 'Prisma error'
214
+ }
215
+
216
+ // Create
217
+ return await
218
+ this.create(
219
+ prisma,
220
+ instanceId,
221
+ name,
222
+ value)
223
+ } else {
224
+
225
+ // Update
226
+ return await
227
+ this.update(
228
+ prisma,
229
+ id,
230
+ instanceId,
231
+ name,
232
+ value)
233
+ }
234
+ }
235
+ }
@@ -0,0 +1,177 @@
1
+ import { PrismaClient } from '@/prisma/client'
2
+
3
+ export class MailingListModel {
4
+
5
+ // Consts
6
+ clName = 'MailingListModel'
7
+
8
+ // Code
9
+ async create(
10
+ prisma: PrismaClient,
11
+ name: string,
12
+ title: string) {
13
+
14
+ // Debug
15
+ const fnName = `${this.clName}.create()`
16
+
17
+ // Validate
18
+ if (name == null) {
19
+ console.error(`${fnName}: name == null`)
20
+ throw 'Validation error'
21
+ }
22
+
23
+ if (title == null) {
24
+ console.error(`${fnName}: title == null`)
25
+ throw 'Validation error'
26
+ }
27
+
28
+ // Create record
29
+ try {
30
+ return await prisma.mailingList.create({
31
+ data: {
32
+ name: name,
33
+ title: title
34
+ }
35
+ })
36
+ } catch(error: any) {
37
+ console.error(`${fnName}: error: ${error}`)
38
+ throw 'Prisma error'
39
+ }
40
+ }
41
+
42
+ async getAll(prisma: PrismaClient) {
43
+
44
+ // Debug
45
+ const fnName = `${this.clName}.getAll()`
46
+
47
+ // Query
48
+ try {
49
+ return await prisma.mailingList.findMany()
50
+ } catch(error: any) {
51
+ console.error(`${fnName}: error: ${error}`)
52
+ throw 'Prisma error'
53
+ }
54
+ }
55
+
56
+ async getById(
57
+ prisma: PrismaClient,
58
+ id: string) {
59
+
60
+ // Debug
61
+ const fnName = `${this.clName}.getById()`
62
+
63
+ // Query
64
+ var mailingList: any = null
65
+
66
+ try {
67
+ mailingList = await prisma.mailingList.findUnique({
68
+ where: {
69
+ id: id
70
+ }
71
+ })
72
+ } catch(error: any) {
73
+ if (!(error instanceof error.NotFound)) {
74
+ console.error(`${fnName}: error: ${error}`)
75
+ throw 'Prisma error'
76
+ }
77
+ }
78
+
79
+ // Return
80
+ return mailingList
81
+ }
82
+
83
+ async getByName(
84
+ prisma: PrismaClient,
85
+ name: string) {
86
+
87
+ // Debug
88
+ const fnName = `${this.clName}.getByKey()`
89
+
90
+ // Validate
91
+ if (name == null) {
92
+ console.error(`${fnName}: name == null`)
93
+ throw 'Validation error'
94
+ }
95
+
96
+ // Query
97
+ var mailingList: any = null
98
+
99
+ try {
100
+ mailingList = await prisma.mailingList.findUnique({
101
+ where: {
102
+ name: name
103
+ }
104
+ })
105
+ } catch(error: any) {
106
+ if (!(error instanceof error.NotFound)) {
107
+ console.error(`${fnName}: error: ${error}`)
108
+ throw 'Prisma error'
109
+ }
110
+ }
111
+
112
+ // Return
113
+ return mailingList
114
+ }
115
+
116
+ async update(
117
+ prisma: PrismaClient,
118
+ id: string,
119
+ name: string,
120
+ title: string) {
121
+
122
+ // Debug
123
+ const fnName = `${this.clName}.update()`
124
+
125
+ // Update record
126
+ try {
127
+ return await prisma.mailingList.update({
128
+ data: {
129
+ name: name,
130
+ title: title
131
+ },
132
+ where: {
133
+ id: id
134
+ }
135
+ })
136
+ } catch(error: any) {
137
+ console.error(`${fnName}: error: ${JSON.stringify(error)}`)
138
+ throw 'Prisma error'
139
+ }
140
+ }
141
+
142
+ async upsert(
143
+ prisma: PrismaClient,
144
+ id: string,
145
+ name: string,
146
+ title: string) {
147
+
148
+ // Debug
149
+ const fnName = `${this.clName}.upsert()`
150
+
151
+ // Try to get an existing record
152
+ if (name != null) {
153
+ const mailingList = await
154
+ this.getByName(
155
+ prisma,
156
+ name)
157
+
158
+ if (mailingList != null) {
159
+ id = mailingList.id
160
+ }
161
+ }
162
+
163
+ if (id == null) {
164
+
165
+ return await this.create(
166
+ prisma,
167
+ name,
168
+ title)
169
+ } else {
170
+ return await this.update(
171
+ prisma,
172
+ id,
173
+ name,
174
+ title)
175
+ }
176
+ }
177
+ }
@@ -0,0 +1,194 @@
1
+ import { PrismaClient } from '@/prisma/client'
2
+
3
+ export class MailingListSubscriberModel {
4
+
5
+ // Consts
6
+ clName = 'MailingListSubscriberModel'
7
+
8
+ // Code
9
+ async create(
10
+ prisma: PrismaClient,
11
+ mailingListId: string,
12
+ email: string,
13
+ firstName: string | undefined,
14
+ verificationCode: string | undefined,
15
+ verified: Date | undefined) {
16
+
17
+ // Debug
18
+ const fnName = `${this.clName}.create()`
19
+
20
+ // Validate
21
+ if (mailingListId == null) {
22
+ console.error(`${fnName}: mailingListId == null`)
23
+ throw 'Validation error'
24
+ }
25
+
26
+ if (email == null) {
27
+ console.error(`${fnName}: email == null`)
28
+ throw 'Validation error'
29
+ }
30
+
31
+ // Create record
32
+ try {
33
+ return await prisma.mailingListSubscriber.create({
34
+ data: {
35
+ mailingListId: mailingListId,
36
+ email: email,
37
+ firstName: firstName,
38
+ verificationCode: verificationCode,
39
+ verified: verified
40
+ }
41
+ })
42
+ } catch(error: any) {
43
+ console.error(`${fnName}: error: ${error}`)
44
+ throw 'Prisma error'
45
+ }
46
+ }
47
+
48
+ async getById(
49
+ prisma: PrismaClient,
50
+ id: string) {
51
+
52
+ // Debug
53
+ const fnName = `${this.clName}.getById()`
54
+
55
+ // Query
56
+ var mailingListSubscriber: any = null
57
+
58
+ try {
59
+ mailingListSubscriber = await prisma.mailingListSubscriber.findUnique({
60
+ where: {
61
+ id: id
62
+ }
63
+ })
64
+ } catch(error: any) {
65
+ if (!(error instanceof error.NotFound)) {
66
+ console.error(`${fnName}: error: ${error}`)
67
+ throw 'Prisma error'
68
+ }
69
+ }
70
+
71
+ // Return
72
+ return mailingListSubscriber
73
+ }
74
+
75
+ async getByMailingListIdAndEmail(
76
+ prisma: PrismaClient,
77
+ mailingListId: string,
78
+ email: string) {
79
+
80
+ // Debug
81
+ const fnName = `${this.clName}.getByMailingListIdAndEmail()`
82
+
83
+ // Validate
84
+ if (mailingListId == null) {
85
+ console.error(`${fnName}: mailingListId == null`)
86
+ throw 'Validation error'
87
+ }
88
+
89
+ if (email == null) {
90
+ console.error(`${fnName}: email == null`)
91
+ throw 'Validation error'
92
+ }
93
+
94
+ // Query
95
+ var mailingListSubscriber: any = null
96
+
97
+ try {
98
+ mailingListSubscriber = await prisma.mailingListSubscriber.findFirst({
99
+ where: {
100
+ mailingListId: mailingListId,
101
+ email: email
102
+ }
103
+ })
104
+ } catch(error: any) {
105
+ if (!(error instanceof error.NotFound)) {
106
+ console.error(`${fnName}: error: ${error}`)
107
+ throw 'Prisma error'
108
+ }
109
+ }
110
+
111
+ // Return
112
+ return mailingListSubscriber
113
+ }
114
+
115
+ async update(
116
+ prisma: PrismaClient,
117
+ id: string,
118
+ mailingListId: string,
119
+ email: string,
120
+ firstName: string | undefined,
121
+ verificationCode: string | undefined,
122
+ verified: Date | undefined) {
123
+
124
+ // Debug
125
+ const fnName = `${this.clName}.update()`
126
+
127
+ // Update record
128
+ try {
129
+ return await prisma.mailingListSubscriber.update({
130
+ data: {
131
+ mailingListId: mailingListId,
132
+ email: email,
133
+ firstName: firstName,
134
+ verificationCode: verificationCode,
135
+ verified: verified
136
+ },
137
+ where: {
138
+ id: id
139
+ }
140
+ })
141
+ } catch(error: any) {
142
+ console.error(`${fnName}: error: ${JSON.stringify(error)}`)
143
+ throw 'Prisma error'
144
+ }
145
+ }
146
+
147
+ async upsert(
148
+ prisma: PrismaClient,
149
+ id: string,
150
+ mailingListId: string,
151
+ email: string,
152
+ firstName: string | undefined,
153
+ verificationCode: string | undefined,
154
+ verified: Date | undefined) {
155
+
156
+ // Debug
157
+ const fnName = `${this.clName}.upsert()`
158
+
159
+ // Try to get an existing record
160
+ if (mailingListId != null &&
161
+ email != null) {
162
+
163
+ const mailingListSubscriber = await
164
+ this.getByMailingListIdAndEmail(
165
+ prisma,
166
+ mailingListId,
167
+ email)
168
+
169
+ if (mailingListSubscriber != null) {
170
+ id = mailingListSubscriber.id
171
+ }
172
+ }
173
+
174
+ if (id == null) {
175
+
176
+ return await this.create(
177
+ prisma,
178
+ mailingListId,
179
+ email,
180
+ firstName,
181
+ verificationCode,
182
+ verified)
183
+ } else {
184
+ return await this.update(
185
+ prisma,
186
+ id,
187
+ mailingListId,
188
+ email,
189
+ firstName,
190
+ verificationCode,
191
+ verified)
192
+ }
193
+ }
194
+ }