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,673 @@
1
+ import { Prisma } from '@/prisma/client'
2
+
3
+ export class InstanceModel {
4
+
5
+ // Consts
6
+ clName = 'InstanceModel'
7
+
8
+ // Code
9
+ async create(
10
+ prisma: Prisma.TransactionClient,
11
+ parentId: string | null,
12
+ userProfileId: string,
13
+ instanceType: string,
14
+ projectType: string | null,
15
+ isDemo: boolean,
16
+ isDefault: boolean,
17
+ status: string,
18
+ publicAccess: string | null,
19
+ key: string,
20
+ name: string) {
21
+
22
+ // Debug
23
+ const fnName = `${this.clName}.create()`
24
+
25
+ // Create record
26
+ try {
27
+ return await prisma.instance.create({
28
+ data: {
29
+ parent: parentId != null ? {
30
+ connect: {
31
+ id: parentId
32
+ }
33
+ } : undefined,
34
+ userProfile: {
35
+ connect: {
36
+ id: userProfileId
37
+ }
38
+ },
39
+ instanceType: instanceType,
40
+ projectType: projectType,
41
+ isDemo: isDemo,
42
+ isDefault: isDefault,
43
+ status: status,
44
+ publicAccess: publicAccess,
45
+ key: key,
46
+ name: name
47
+ }
48
+ })
49
+ } catch (error) {
50
+ console.error(`${fnName}: error: ${error}`)
51
+ throw 'Prisma error'
52
+ }
53
+ }
54
+
55
+ async deleteById(
56
+ prisma: Prisma.TransactionClient,
57
+ id: string) {
58
+
59
+ // Debug
60
+ const fnName = `${this.clName}.deleteById()`
61
+
62
+ // Delete
63
+ try {
64
+ return await prisma.instance.delete({
65
+ where: {
66
+ id: id
67
+ }
68
+ })
69
+ } catch (error: any) {
70
+ if (!(error instanceof error.NotFound)) {
71
+ console.error(`${fnName}: error: ${error}`)
72
+ throw 'Prisma error'
73
+ }
74
+ }
75
+ }
76
+
77
+ async filter(
78
+ prisma: Prisma.TransactionClient,
79
+ parentId: string | null | undefined = undefined,
80
+ userProfileId: string | undefined = undefined,
81
+ instanceType: string | undefined = undefined,
82
+ projectType: string | null | undefined = undefined,
83
+ isDemo: boolean | undefined = undefined,
84
+ isDefault: boolean | undefined = undefined,
85
+ status: string | undefined = undefined,
86
+ publicAccess: string | null | undefined = undefined,
87
+ includeUserProfile: boolean = false,
88
+ includeUser: boolean = false) {
89
+
90
+ // Debug
91
+ const fnName = `${this.clName}.filter()`
92
+
93
+ // console.log(`${fnName}: starting with parentId: ${parentId} ` +
94
+ // `status: ${status} ` +
95
+ // `includeUserProfile: ${includeUserProfile} ` +
96
+ // `includeUser: ${includeUser}`)
97
+
98
+ // Query
99
+ try {
100
+ return await prisma.instance.findMany({
101
+ include: {
102
+ userProfile: includeUserProfile ? {
103
+ include: {
104
+ user: includeUser
105
+ }
106
+ } : false
107
+ },
108
+ where: {
109
+ parentId: parentId,
110
+ userProfileId: userProfileId,
111
+ instanceType: instanceType,
112
+ projectType: projectType,
113
+ isDemo: isDemo,
114
+ isDefault: isDefault,
115
+ status: status,
116
+ publicAccess: publicAccess
117
+ }
118
+ })
119
+ } catch (error: any) {
120
+ console.error(`${fnName}: error: ${error}`)
121
+ throw 'Prisma error'
122
+ }
123
+ }
124
+
125
+ async getById(
126
+ prisma: Prisma.TransactionClient,
127
+ id: string,
128
+ includeParent: boolean = false,
129
+ includeUserProfile: boolean = false,
130
+ includeUser: boolean = false) {
131
+
132
+ // Debug
133
+ const fnName = `${this.clName}.getById()`
134
+
135
+ // Query
136
+ var instance: any = null
137
+
138
+ try {
139
+ instance = await prisma.instance.findUnique({
140
+ include: {
141
+ parent: includeParent,
142
+ userProfile: includeUserProfile ? {
143
+ include: {
144
+ user: includeUser
145
+ }
146
+ } : false
147
+ },
148
+ where: {
149
+ id: id
150
+ }
151
+ })
152
+ } catch (error: any) {
153
+ if (!(error instanceof error.NotFound)) {
154
+ console.error(`${fnName}: error: ${error}`)
155
+ throw 'Prisma error'
156
+ }
157
+ }
158
+
159
+ // Return
160
+ return instance
161
+ }
162
+
163
+ async getByNameAndIsAdminUserProfile(
164
+ prisma: Prisma.TransactionClient,
165
+ name: string) {
166
+
167
+ // Debug
168
+ const fnName = `${this.clName}.getByName()`
169
+
170
+ // Query
171
+ var instance: any
172
+
173
+ try {
174
+ instance = await prisma.instance.findFirst({
175
+ where: {
176
+ userProfile: {
177
+ isAdmin: true
178
+ },
179
+ name: name
180
+ }
181
+ })
182
+ } catch (error: any) {
183
+ console.error(`${fnName}: error: ${error}`)
184
+ throw 'Prisma error'
185
+ }
186
+
187
+ // Return
188
+ return instance
189
+ }
190
+
191
+ async getByParentIdAndUserProfileIdAndIsDefault(
192
+ prisma: Prisma.TransactionClient,
193
+ parentId: string | null,
194
+ userProfileId: string) {
195
+
196
+ // Debug
197
+ const fnName = `${this.clName}.getByParentIdAndUserProfileIdAndIsDefault()`
198
+
199
+ // Query
200
+ var instance: any
201
+
202
+ try {
203
+ instance = await prisma.instance.findFirst({
204
+ where: {
205
+ parentId: parentId,
206
+ userProfileId: userProfileId,
207
+ isDefault: true
208
+ }
209
+ })
210
+ } catch (error: any) {
211
+ console.error(`${fnName}: error: ${error}`)
212
+ throw 'Prisma error'
213
+ }
214
+
215
+ // Return
216
+ return instance
217
+ }
218
+
219
+ async getByParentIdAndKey(
220
+ prisma: Prisma.TransactionClient,
221
+ parentId: string | null,
222
+ key: string) {
223
+
224
+ // Debug
225
+ const fnName = `${this.clName}.getByParentIdAndKey()`
226
+
227
+ // console.log(`${fnName}: parentId: ${parentId} key: ${key} ` +
228
+ // `userProfileId: ${userProfileId}`)
229
+
230
+ // Validate
231
+ if (key == null) {
232
+ console.error(`${fnName}: key == null`)
233
+ throw 'Validation error'
234
+ }
235
+
236
+ // Query
237
+ var instance: any
238
+
239
+ try {
240
+ instance = await prisma.instance.findFirst({
241
+ where: {
242
+ parentId: parentId,
243
+ key: key
244
+ }
245
+ })
246
+ } catch (error: any) {
247
+ console.error(`${fnName}: error: ${error}`)
248
+ throw 'Prisma error'
249
+ }
250
+
251
+ // Return
252
+ return instance
253
+ }
254
+
255
+ async getByParentIdAndName(
256
+ prisma: Prisma.TransactionClient,
257
+ parentId: string | null,
258
+ name: string) {
259
+
260
+ // Debug
261
+ const fnName = `${this.clName}.getByParentIdAndName()`
262
+
263
+ // console.log(`${fnName}: parentId: ${parentId} name: ${name} ` +
264
+ // `userProfileId: ${userProfileId}`)
265
+
266
+ // Validate
267
+ if (name == null) {
268
+ console.error(`${fnName}: name == null`)
269
+ throw 'Validation error'
270
+ }
271
+
272
+ // Query
273
+ var instance: any
274
+
275
+ try {
276
+ instance = await prisma.instance.findFirst({
277
+ where: {
278
+ parentId: parentId,
279
+ name: name
280
+ }
281
+ })
282
+ } catch (error: any) {
283
+ console.error(`${fnName}: error: ${error}`)
284
+ throw 'Prisma error'
285
+ }
286
+
287
+ // Return
288
+ return instance
289
+ }
290
+
291
+ async getByParentIdAndKeyAndUserProfileId(
292
+ prisma: Prisma.TransactionClient,
293
+ parentId: string | null,
294
+ key: string,
295
+ userProfileId: string) {
296
+
297
+ // Debug
298
+ const fnName = `${this.clName}.getByParentIdAndKeyAndUserProfileId()`
299
+
300
+ // console.log(`${fnName}: parentId: ${parentId} key: ${key} ` +
301
+ // `userProfileId: ${userProfileId}`)
302
+
303
+ // Validate
304
+ if (key == null) {
305
+ console.error(`${fnName}: key == null`)
306
+ throw 'Validation error'
307
+ }
308
+
309
+ if (userProfileId == null) {
310
+ console.error(`${fnName}: userProfileId == null`)
311
+ throw 'Validation error'
312
+ }
313
+
314
+ // Query
315
+ var instance: any
316
+
317
+ try {
318
+ instance = await prisma.instance.findFirst({
319
+ where: {
320
+ parentId: parentId,
321
+ key: key,
322
+ userProfileId: userProfileId
323
+ }
324
+ })
325
+ } catch (error: any) {
326
+ console.error(`${fnName}: error: ${error}`)
327
+ throw 'Prisma error'
328
+ }
329
+
330
+ // Return
331
+ return instance
332
+ }
333
+
334
+ async getByParentIdAndNameAndUserProfileId(
335
+ prisma: Prisma.TransactionClient,
336
+ parentId: string | null,
337
+ name: string,
338
+ userProfileId: string) {
339
+
340
+ // Debug
341
+ const fnName = `${this.clName}.getByParentIdAndNameAndUserProfileId()`
342
+
343
+ // console.log(`${fnName}: parentId: ${parentId} name: ${name} ` +
344
+ // `userProfileId: ${userProfileId}`)
345
+
346
+ // Validate
347
+ if (name == null) {
348
+ console.error(`${fnName}: name == null`)
349
+ throw 'Validation error'
350
+ }
351
+
352
+ if (userProfileId == null) {
353
+ console.error(`${fnName}: userProfileId == null`)
354
+ throw 'Validation error'
355
+ }
356
+
357
+ // Query
358
+ var instance: any
359
+
360
+ try {
361
+ instance = await prisma.instance.findFirst({
362
+ where: {
363
+ parentId: parentId,
364
+ name: name,
365
+ userProfileId: userProfileId
366
+ }
367
+ })
368
+ } catch (error: any) {
369
+ console.error(`${fnName}: error: ${error}`)
370
+ throw 'Prisma error'
371
+ }
372
+
373
+ // Return
374
+ return instance
375
+ }
376
+
377
+ async getByUserProfileIdAndName(
378
+ prisma: Prisma.TransactionClient,
379
+ userProfileId: string,
380
+ name: string) {
381
+
382
+ // Debug
383
+ const fnName = `${this.clName}.getByUserProfileIdAndName()`
384
+
385
+ // Query
386
+ var instance: any
387
+
388
+ try {
389
+ instance = await prisma.instance.findFirst({
390
+ where: {
391
+ userProfileId: userProfileId,
392
+ name: name
393
+ }
394
+ })
395
+ } catch (error: any) {
396
+ console.error(`${fnName}: error: ${error}`)
397
+ throw 'Prisma error'
398
+ }
399
+
400
+ // Return
401
+ return instance
402
+ }
403
+
404
+ async getByUserProfileIdAndParentNameAndName(
405
+ prisma: Prisma.TransactionClient,
406
+ userProfileId: string,
407
+ parentName: string,
408
+ name: string) {
409
+
410
+ // Debug
411
+ const fnName = `${this.clName}.getByUserProfileIdAndParentNameAndName()`
412
+
413
+ // Validate
414
+ if (userProfileId == null) {
415
+ console.error(`${fnName}: userProfileId == null`)
416
+ throw 'Validation error'
417
+ }
418
+
419
+ if (parentName == null) {
420
+ console.error(`${fnName}: parentName == null`)
421
+ throw 'Validation error'
422
+ }
423
+
424
+ if (name == null) {
425
+ console.error(`${fnName}: name == null`)
426
+ throw 'Validation error'
427
+ }
428
+
429
+ // Query
430
+ var instance: any
431
+
432
+ try {
433
+ instance = await prisma.instance.findFirst({
434
+ where: {
435
+ parent: {
436
+ userProfileId: userProfileId,
437
+ parentId: null,
438
+ name: parentName
439
+ },
440
+ userProfileId: userProfileId,
441
+ name: name
442
+ }
443
+ })
444
+ } catch (error: any) {
445
+ console.error(`${fnName}: error: ${error}`)
446
+ throw 'Prisma error'
447
+ }
448
+
449
+ // Return
450
+ return instance
451
+ }
452
+
453
+ async update(
454
+ prisma: Prisma.TransactionClient,
455
+ id: string,
456
+ parentId: string | null | undefined,
457
+ userProfileId: string | undefined,
458
+ instanceType: string | undefined,
459
+ projectType: string | null | undefined,
460
+ isDemo: boolean | undefined,
461
+ isDefault: boolean | undefined,
462
+ status: string | undefined,
463
+ publicAccess: string | null | undefined,
464
+ key: string | undefined,
465
+ name: string | undefined) {
466
+
467
+ // Debug
468
+ const fnName = `${this.clName}.update()`
469
+
470
+ // Update record
471
+ try {
472
+ return await prisma.instance.update({
473
+ data: {
474
+ parentId: parentId,
475
+ userProfileId: userProfileId,
476
+ instanceType: instanceType,
477
+ projectType: projectType,
478
+ isDemo: isDemo,
479
+ isDefault: isDefault,
480
+ status: status,
481
+ publicAccess: publicAccess,
482
+ key: key,
483
+ name: name
484
+ },
485
+ where: {
486
+ id: id
487
+ }
488
+ })
489
+ } catch (error) {
490
+ console.error(`${fnName}: error: ${error}`)
491
+ throw 'Prisma error'
492
+ }
493
+ }
494
+
495
+ async updateByParentId(
496
+ prisma: Prisma.TransactionClient,
497
+ parentId: string | null | undefined,
498
+ userProfileId: string | undefined,
499
+ instanceType: string | undefined,
500
+ projectType: string | null | undefined,
501
+ isDemo: boolean | undefined,
502
+ isDefault: boolean | undefined,
503
+ status: string | undefined,
504
+ publicAccess: string | null | undefined,
505
+ key: string | undefined,
506
+ name: string | undefined) {
507
+
508
+ // Debug
509
+ const fnName = `${this.clName}.updateByParentId()`
510
+
511
+ // Update record
512
+ try {
513
+ return await prisma.instance.updateMany({
514
+ data: {
515
+ userProfileId: userProfileId,
516
+ instanceType: instanceType,
517
+ projectType: projectType,
518
+ isDemo: isDemo,
519
+ isDefault: isDefault,
520
+ status: status,
521
+ publicAccess: publicAccess,
522
+ key: key,
523
+ name: name
524
+ },
525
+ where: {
526
+ parentId: parentId
527
+ }
528
+ })
529
+ } catch (error) {
530
+ console.error(`${fnName}: error: ${error}`)
531
+ throw 'Prisma error'
532
+ }
533
+ }
534
+
535
+ async upsert(prisma: Prisma.TransactionClient,
536
+ id: string | undefined,
537
+ parentId: string | null | undefined,
538
+ userProfileId: string | undefined,
539
+ instanceType: string | undefined,
540
+ projectType: string | null | undefined,
541
+ isDemo: boolean | undefined,
542
+ isDefault: boolean | undefined,
543
+ status: string | undefined,
544
+ publicAccess: string | null | undefined,
545
+ key: string | undefined,
546
+ name: string | undefined) {
547
+
548
+ // Debug
549
+ const fnName = `${this.clName}.upsert()`
550
+
551
+ // If id isn't specified, try to get by a unique key
552
+ if (id == null &&
553
+ parentId !== undefined &&
554
+ key != null &&
555
+ userProfileId != null) {
556
+
557
+ const instance = await
558
+ this.getByParentIdAndKeyAndUserProfileId(
559
+ prisma,
560
+ parentId,
561
+ key,
562
+ userProfileId)
563
+
564
+ if (instance != null) {
565
+ id = instance.id
566
+ }
567
+ }
568
+
569
+ if (id == null &&
570
+ parentId !== undefined &&
571
+ name != null &&
572
+ userProfileId != null) {
573
+
574
+ const instance = await
575
+ this.getByParentIdAndNameAndUserProfileId(
576
+ prisma,
577
+ parentId,
578
+ name,
579
+ userProfileId)
580
+
581
+ if (instance != null) {
582
+ id = instance.id
583
+ }
584
+ }
585
+
586
+ // Upsert
587
+ if (id == null) {
588
+
589
+ // Validate for create (mainly for type validation of the create call)
590
+ if (parentId === undefined) {
591
+ console.error(`${fnName}: id is null and parentId is undefined`)
592
+ throw 'Prisma error'
593
+ }
594
+
595
+ if (userProfileId == null) {
596
+ console.error(`${fnName}: id is null and userProfileId is null`)
597
+ throw 'Prisma error'
598
+ }
599
+
600
+ if (instanceType == null) {
601
+ console.error(`${fnName}: id is null and instanceType is null`)
602
+ throw 'Prisma error'
603
+ }
604
+
605
+ if (projectType === undefined) {
606
+ console.error(`${fnName}: id is null and projectType is undefined`)
607
+ throw 'Prisma error'
608
+ }
609
+
610
+ if (isDemo == null) {
611
+ console.error(`${fnName}: id is null and isDemo is null`)
612
+ throw 'Prisma error'
613
+ }
614
+
615
+ if (isDefault == null) {
616
+ console.error(`${fnName}: id is null and isDefault is null`)
617
+ throw 'Prisma error'
618
+ }
619
+
620
+ if (status == null) {
621
+ console.error(`${fnName}: id is null and status is null`)
622
+ throw 'Prisma error'
623
+ }
624
+
625
+ if (publicAccess === undefined) {
626
+ console.error(`${fnName}: id is null and publicAccess is undefined`)
627
+ throw 'Prisma error'
628
+ }
629
+
630
+ if (key == null) {
631
+ console.error(`${fnName}: id is null and key is null`)
632
+ throw 'Prisma error'
633
+ }
634
+
635
+ if (name == null) {
636
+ console.error(`${fnName}: id is null and name is null`)
637
+ throw 'Prisma error'
638
+ }
639
+
640
+ // Create
641
+ return await
642
+ this.create(
643
+ prisma,
644
+ parentId,
645
+ userProfileId,
646
+ instanceType,
647
+ projectType,
648
+ isDemo,
649
+ isDefault,
650
+ status,
651
+ publicAccess,
652
+ key,
653
+ name)
654
+ } else {
655
+
656
+ // Update
657
+ return await
658
+ this.update(
659
+ prisma,
660
+ id,
661
+ parentId,
662
+ userProfileId,
663
+ instanceType,
664
+ projectType,
665
+ isDemo,
666
+ isDefault,
667
+ status,
668
+ publicAccess,
669
+ key,
670
+ name)
671
+ }
672
+ }
673
+ }