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,11 @@
1
+ export declare function sereneCoreMailingListsMutationResolvers(): {
2
+ Mutation: {
3
+ upsertUserPreference: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ verified: boolean;
5
+ message: string;
6
+ } | {
7
+ verified: boolean;
8
+ message?: undefined;
9
+ } | undefined>;
10
+ };
11
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.sereneCoreMailingListsMutationResolvers = sereneCoreMailingListsMutationResolvers;
13
+ const mailing_list_subscriber_service_1 = require("../../../services/mailing-lists/mailing-list-subscriber-service");
14
+ // Services
15
+ const mailingListSubscriberService = new mailing_list_subscriber_service_1.MailingListSubscriberService();
16
+ // Factory of resolvers
17
+ function sereneCoreMailingListsMutationResolvers() {
18
+ return {
19
+ Mutation: {
20
+ upsertUserPreference: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
21
+ try {
22
+ return yield mailingListSubscriberService.subscribe(context.prisma, args.mailingListName, args.email, args.firstName);
23
+ }
24
+ catch (error) {
25
+ console.error(`upsertUserPreference: ${error}`);
26
+ }
27
+ }),
28
+ },
29
+ };
30
+ }
@@ -0,0 +1,13 @@
1
+ export declare function sereneCoreUserPreferencesMutationResolvers(): {
2
+ Mutation: {
3
+ upsertUserPreference: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ values: string[];
5
+ key: string;
6
+ id: string;
7
+ value: string | null;
8
+ userProfileId: string;
9
+ created: Date;
10
+ category: string;
11
+ } | undefined>;
12
+ };
13
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.sereneCoreUserPreferencesMutationResolvers = sereneCoreUserPreferencesMutationResolvers;
13
+ const user_preference_model_1 = require("../../../models/users/user-preference-model");
14
+ // Services
15
+ const userPreferenceModel = new user_preference_model_1.UserPreferenceModel();
16
+ // Factory of resolvers
17
+ function sereneCoreUserPreferencesMutationResolvers() {
18
+ return {
19
+ Mutation: {
20
+ upsertUserPreference: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
21
+ try {
22
+ return yield userPreferenceModel.upsert(context.prisma, undefined, // id
23
+ args.userProfileId, args.category, args.key, args.value, args.values);
24
+ }
25
+ catch (error) {
26
+ console.error(`upsertUserPreference: ${error}`);
27
+ }
28
+ }),
29
+ },
30
+ };
31
+ }
@@ -0,0 +1,28 @@
1
+ export declare function sereneCoreUsersMutationResolvers(): {
2
+ Mutation: {
3
+ createBlankUser: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ id: string;
5
+ userId: string | null;
6
+ created: Date;
7
+ updated: Date;
8
+ isAdmin: boolean;
9
+ ownerType: string | null;
10
+ roles: string[];
11
+ deletePending: Date | null;
12
+ }>;
13
+ createUserByEmail: (parent: any, args: any, context: any, info: any) => Promise<string>;
14
+ getOrCreateSignedOutUser: (parent: any, args: any, context: any, info: any) => Promise<{
15
+ id: string;
16
+ } | undefined>;
17
+ getOrCreateUserByEmail: (parent: any, args: any, context: any, info: any) => Promise<{
18
+ id: string;
19
+ userId: string | null;
20
+ created: Date;
21
+ updated: Date;
22
+ isAdmin: boolean;
23
+ ownerType: string | null;
24
+ roles: string[];
25
+ deletePending: Date | null;
26
+ } | undefined>;
27
+ };
28
+ };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.sereneCoreUsersMutationResolvers = sereneCoreUsersMutationResolvers;
13
+ const service_1 = require("../../../services/users/service");
14
+ // Services
15
+ const usersService = new service_1.UsersService();
16
+ // Factory of resolvers
17
+ function sereneCoreUsersMutationResolvers() {
18
+ return {
19
+ Mutation: {
20
+ createBlankUser: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
21
+ return usersService.createBlankUser(context.prisma);
22
+ }),
23
+ createUserByEmail: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
24
+ return usersService.createUserByEmail(context.prisma, args.email);
25
+ }),
26
+ getOrCreateSignedOutUser: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
27
+ try {
28
+ return usersService.getOrCreateSignedOutUser(context.prisma, args.signedOutId, args.defaultUserPreferences);
29
+ }
30
+ catch (error) {
31
+ console.error(`getOrCreateSignedOutUser(): error: ${error}`);
32
+ }
33
+ }),
34
+ getOrCreateUserByEmail: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
35
+ try {
36
+ return usersService.getOrCreateUserByEmail(context.prisma, args.email, args.defaultUserPreferences);
37
+ }
38
+ catch (error) {
39
+ console.error(`getOrCreateUserByEmail(): error: ${error}`);
40
+ }
41
+ }),
42
+ },
43
+ };
44
+ }
@@ -0,0 +1,11 @@
1
+ export declare function sereneCoreAccessQueryResolvers(): {
2
+ Query: {
3
+ isAdminUser: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ status: boolean;
5
+ message: string;
6
+ } | {
7
+ status: any;
8
+ message: null;
9
+ }>;
10
+ };
11
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.sereneCoreAccessQueryResolvers = sereneCoreAccessQueryResolvers;
13
+ const access_service_1 = require("../../../services/access/access-service");
14
+ // Services
15
+ const accessService = new access_service_1.AccessService();
16
+ // Factory of resolvers
17
+ function sereneCoreAccessQueryResolvers() {
18
+ return {
19
+ Query: {
20
+ isAdminUser: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
21
+ return accessService.isAdminUser(context.prisma, args.userProfileId);
22
+ }),
23
+ },
24
+ };
25
+ }
@@ -0,0 +1,11 @@
1
+ export declare function sereneCoreProfileQueryResolvers(): {
2
+ Query: {
3
+ validateProfileCompleted: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ status: boolean;
5
+ message?: undefined;
6
+ } | {
7
+ status: boolean;
8
+ message: string;
9
+ }>;
10
+ };
11
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.sereneCoreProfileQueryResolvers = sereneCoreProfileQueryResolvers;
13
+ const profile_service_1 = require("../../../services/users/profile-service");
14
+ // Services
15
+ const profileService = new profile_service_1.ProfileService();
16
+ // Factory of resolvers
17
+ function sereneCoreProfileQueryResolvers() {
18
+ return {
19
+ Query: {
20
+ validateProfileCompleted: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
21
+ return profileService.validateProfileCompleted(context.prisma, args.forAction, args.userProfileId);
22
+ }),
23
+ },
24
+ };
25
+ }
@@ -0,0 +1,21 @@
1
+ export declare function sereneCoreQuotasQueryResolvers(): {
2
+ Query: {
3
+ getResourceQuotaUsage: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ status: boolean;
5
+ message: string;
6
+ userProfileId?: undefined;
7
+ resource?: undefined;
8
+ day?: undefined;
9
+ quota?: undefined;
10
+ usage?: undefined;
11
+ } | {
12
+ userProfileId: string;
13
+ resource: string;
14
+ day: string;
15
+ quota: number;
16
+ usage: number;
17
+ status?: undefined;
18
+ message?: undefined;
19
+ }>;
20
+ };
21
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.sereneCoreQuotasQueryResolvers = sereneCoreQuotasQueryResolvers;
13
+ const query_service_1 = require("../../../services/quotas/query-service");
14
+ // Services
15
+ const resourceQuotasService = new query_service_1.ResourceQuotasQueryService();
16
+ // Factory of resolvers
17
+ function sereneCoreQuotasQueryResolvers() {
18
+ return {
19
+ Query: {
20
+ getResourceQuotaUsage: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
21
+ return resourceQuotasService.getQuotaAndUsageForUi(context.prisma, args.userProfileId, args.resource, args.day);
22
+ }),
23
+ },
24
+ };
25
+ }
@@ -0,0 +1,5 @@
1
+ export declare function sereneCoreTechQueryResolvers(): {
2
+ Query: {
3
+ getTechs: (parent: any, args: any, context: any, info: any) => Promise<any>;
4
+ };
5
+ };
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.sereneCoreTechQueryResolvers = sereneCoreTechQueryResolvers;
13
+ const tech_query_service_1 = require("../../../services/tech/tech-query-service");
14
+ const service_1 = require("../../../services/users/service");
15
+ // Services
16
+ const techQueryService = new tech_query_service_1.TechQueryService();
17
+ const usersService = new service_1.UsersService();
18
+ // Factory of resolvers
19
+ function sereneCoreTechQueryResolvers() {
20
+ return {
21
+ Query: {
22
+ getTechs: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
23
+ // Debug
24
+ const fnName = 'getTechs()';
25
+ console.log(`${fnName}: args: ` + JSON.stringify(args));
26
+ // Get userProfile
27
+ const userProfile = yield usersService.getById(context.prisma, args.userProfileId);
28
+ // Get quota and usage
29
+ const results = yield techQueryService.getTechs(context.prisma, userProfile, args.resource);
30
+ // Return
31
+ return results.techs;
32
+ }),
33
+ },
34
+ };
35
+ }
@@ -0,0 +1,5 @@
1
+ export declare function sereneCoreUserPreferencesQueryResolvers(): {
2
+ Query: {
3
+ getUserPreferences: (parent: any, args: any, context: any, info: any) => Promise<any[] | undefined>;
4
+ };
5
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.sereneCoreUserPreferencesQueryResolvers = sereneCoreUserPreferencesQueryResolvers;
13
+ const service_1 = require("../../../services/user-preference/service");
14
+ // Services
15
+ const userPreferenceService = new service_1.UserPreferenceService();
16
+ // Factory of resolvers
17
+ function sereneCoreUserPreferencesQueryResolvers() {
18
+ return {
19
+ Query: {
20
+ getUserPreferences: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
21
+ console.log('getUserPreferences(): ' +
22
+ `args.userProfileId: ${args.userProfileId} ` +
23
+ `args.keys: ${args.keys}`);
24
+ try {
25
+ return yield userPreferenceService.getUserPreferences(context.prisma, args.userProfileId, args.category, args.keys);
26
+ }
27
+ catch (error) {
28
+ console.error(`getUserPreferences: ${error}`);
29
+ }
30
+ }),
31
+ },
32
+ };
33
+ }
@@ -0,0 +1,15 @@
1
+ export declare function sereneCoreUsersQueryResolvers(): {
2
+ Query: {
3
+ userById: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ id: string;
5
+ userId: string | null;
6
+ created: Date;
7
+ updated: Date;
8
+ isAdmin: boolean;
9
+ ownerType: string | null;
10
+ roles: string[];
11
+ deletePending: Date | null;
12
+ } | null | undefined>;
13
+ verifySignedInUserProfileId: (parent: any, args: any, context: any, info: any) => Promise<boolean>;
14
+ };
15
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.sereneCoreUsersQueryResolvers = sereneCoreUsersQueryResolvers;
13
+ const service_1 = require("../../../services/users/service");
14
+ // Services
15
+ const usersService = new service_1.UsersService();
16
+ // Factory of resolvers
17
+ function sereneCoreUsersQueryResolvers() {
18
+ return {
19
+ Query: {
20
+ userById: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
21
+ return usersService.getById(context.prisma, args.userProfileId);
22
+ }),
23
+ verifySignedInUserProfileId: (parent, args, context, info) => __awaiter(this, void 0, void 0, function* () {
24
+ return usersService.verifySignedInUserProfileId(context.prisma, args.userProfileId);
25
+ }),
26
+ },
27
+ };
28
+ }
@@ -0,0 +1,20 @@
1
+ import 'db';
2
+ declare const resolvers: {
3
+ Query: {
4
+ validateProfileCompleted: any;
5
+ getResourceQuotaUsage: any;
6
+ getTechs: any;
7
+ userById: any;
8
+ verifySignedInUserProfileId: any;
9
+ getUserPreferences: any;
10
+ };
11
+ Mutation: {
12
+ isAdminUser: any;
13
+ createBlankUser: any;
14
+ createUserByEmail: any;
15
+ getOrCreateSignedOutUser: any;
16
+ getOrCreateUserByEmail: any;
17
+ upsertUserPreference: any;
18
+ };
19
+ };
20
+ export default resolvers;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("db");
4
+ const user_preferences_1 = require("./mutations/user-preferences");
5
+ const users_1 = require("./mutations/users");
6
+ const access_1 = require("./queries/access");
7
+ const profile_1 = require("./queries/profile");
8
+ const user_preferences_2 = require("./queries/user-preferences");
9
+ const users_2 = require("./queries/users");
10
+ const quotas_1 = require("./queries/quotas");
11
+ const tech_1 = require("./queries/tech");
12
+ // Code
13
+ const Query = {
14
+ // Profile
15
+ validateProfileCompleted: profile_1.validateProfileCompleted,
16
+ // Quotas
17
+ getResourceQuotaUsage: quotas_1.getResourceQuotaUsage,
18
+ // Tech
19
+ getTechs: tech_1.getTechs,
20
+ // Users
21
+ userById: users_2.userById,
22
+ verifySignedInUserProfileId: users_2.verifySignedInUserProfileId,
23
+ // User preferences
24
+ getUserPreferences: user_preferences_2.getUserPreferences
25
+ };
26
+ const Mutation = {
27
+ // Access
28
+ isAdminUser: access_1.isAdminUser,
29
+ // Users
30
+ createBlankUser: users_1.createBlankUser,
31
+ createUserByEmail: users_1.createUserByEmail,
32
+ getOrCreateSignedOutUser: users_1.getOrCreateSignedOutUser,
33
+ getOrCreateUserByEmail: users_1.getOrCreateUserByEmail,
34
+ // User preferences
35
+ upsertUserPreference: user_preferences_1.upsertUserPreference
36
+ };
37
+ const resolvers = { Query, Mutation };
38
+ exports.default = resolvers;
@@ -0,0 +1 @@
1
+ export declare const typeDefs = "#graphql\n\n type ChatMessage {\n id: String!\n name: String!\n message: String!\n created: String!\n updated: String\n }\n\n type ChatMessageResults {\n status: Boolean!\n message: String\n chatMessages: [ChatMessage]\n }\n\n type ChatParticipant {\n id: String!\n userProfileId: String!\n name: String!\n }\n\n type ChatParticipantResults {\n status: Boolean!\n message: String\n chatParticipants: [ChatParticipant]\n }\n\n type ChatSession {\n id: String!\n status: String!\n name: String\n updated: String!\n chatParticipants: [ChatParticipant]\n }\n\n type ChatSessionResults {\n status: Boolean!\n message: String\n chatSession: ChatSession\n }\n\n type ResourceQuotaUsage {\n userProfileId: String!\n resource: String!\n day: String!\n quota: Float!\n usage: Float!\n }\n\n type StatusAndMessage {\n status: Boolean!\n message: String\n }\n\n type Techs {\n id: String!\n resource: String!\n variantName: String!\n }\n\n type UserPreference {\n category: String!\n key: String!\n value: String\n values: [String]\n }\n\n type UserProfile {\n id: String!\n userId: String\n isAdmin: Boolean!\n }\n\n type VerifiedAndMessage {\n verified: Boolean!\n message: String\n }\n\n type Query {\n\n # Profile\n validateProfileCompleted(\n forAction: String!,\n userProfileId: String!): StatusAndMessage!\n\n # Quotas\n getResourceQuotaUsage(\n userProfileId: String!,\n resource: String!,\n day: String,\n viewUserProfileId: String): ResourceQuotaUsage!\n\n # Tech\n getTechs(\n userProfileId: String!,\n resource: String!): [Tech]\n\n # Users\n isAdminUser(userProfileId: String!): StatusAndMessage!\n userById(userProfileId: String!): UserProfile\n verifySignedInUserProfileId(userProfileId: String!): Boolean\n\n # User preferences\n getUserPreferences(\n userProfileId: String!,\n category: String!,\n keys: [String]): [UserPreference]\n }\n\n type Mutation {\n\n # Mailing lists\n mailingListSignup(\n mailingListName: String!,\n email: String!,\n firstName: String): VerifiedAndMessage!\n\n # Users\n createBlankUser: UserProfile!\n createUserByEmail(email: String!): UserProfile!\n deactivateUserProfileCurrentIFile(id: String!): Boolean\n getOrCreateSignedOutUser(\n signedOutId: String,\n defaultUserPreferences: String): UserProfile!\n getOrCreateUserByEmail(\n email: String!,\n defaultUserPreferences: String): UserProfile!\n\n # User preferences\n upsertUserPreference(\n userProfileId: String!,\n category: String!,\n key: String!,\n value: String,\n values: [String]): Boolean\n }\n\n";
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.typeDefs = void 0;
4
+ exports.typeDefs = `#graphql
5
+
6
+ type ChatMessage {
7
+ id: String!
8
+ name: String!
9
+ message: String!
10
+ created: String!
11
+ updated: String
12
+ }
13
+
14
+ type ChatMessageResults {
15
+ status: Boolean!
16
+ message: String
17
+ chatMessages: [ChatMessage]
18
+ }
19
+
20
+ type ChatParticipant {
21
+ id: String!
22
+ userProfileId: String!
23
+ name: String!
24
+ }
25
+
26
+ type ChatParticipantResults {
27
+ status: Boolean!
28
+ message: String
29
+ chatParticipants: [ChatParticipant]
30
+ }
31
+
32
+ type ChatSession {
33
+ id: String!
34
+ status: String!
35
+ name: String
36
+ updated: String!
37
+ chatParticipants: [ChatParticipant]
38
+ }
39
+
40
+ type ChatSessionResults {
41
+ status: Boolean!
42
+ message: String
43
+ chatSession: ChatSession
44
+ }
45
+
46
+ type ResourceQuotaUsage {
47
+ userProfileId: String!
48
+ resource: String!
49
+ day: String!
50
+ quota: Float!
51
+ usage: Float!
52
+ }
53
+
54
+ type StatusAndMessage {
55
+ status: Boolean!
56
+ message: String
57
+ }
58
+
59
+ type Techs {
60
+ id: String!
61
+ resource: String!
62
+ variantName: String!
63
+ }
64
+
65
+ type UserPreference {
66
+ category: String!
67
+ key: String!
68
+ value: String
69
+ values: [String]
70
+ }
71
+
72
+ type UserProfile {
73
+ id: String!
74
+ userId: String
75
+ isAdmin: Boolean!
76
+ }
77
+
78
+ type VerifiedAndMessage {
79
+ verified: Boolean!
80
+ message: String
81
+ }
82
+
83
+ type Query {
84
+
85
+ # Profile
86
+ validateProfileCompleted(
87
+ forAction: String!,
88
+ userProfileId: String!): StatusAndMessage!
89
+
90
+ # Quotas
91
+ getResourceQuotaUsage(
92
+ userProfileId: String!,
93
+ resource: String!,
94
+ day: String,
95
+ viewUserProfileId: String): ResourceQuotaUsage!
96
+
97
+ # Tech
98
+ getTechs(
99
+ userProfileId: String!,
100
+ resource: String!): [Tech]
101
+
102
+ # Users
103
+ isAdminUser(userProfileId: String!): StatusAndMessage!
104
+ userById(userProfileId: String!): UserProfile
105
+ verifySignedInUserProfileId(userProfileId: String!): Boolean
106
+
107
+ # User preferences
108
+ getUserPreferences(
109
+ userProfileId: String!,
110
+ category: String!,
111
+ keys: [String]): [UserPreference]
112
+ }
113
+
114
+ type Mutation {
115
+
116
+ # Mailing lists
117
+ mailingListSignup(
118
+ mailingListName: String!,
119
+ email: String!,
120
+ firstName: String): VerifiedAndMessage!
121
+
122
+ # Users
123
+ createBlankUser: UserProfile!
124
+ createUserByEmail(email: String!): UserProfile!
125
+ deactivateUserProfileCurrentIFile(id: String!): Boolean
126
+ getOrCreateSignedOutUser(
127
+ signedOutId: String,
128
+ defaultUserPreferences: String): UserProfile!
129
+ getOrCreateUserByEmail(
130
+ email: String!,
131
+ defaultUserPreferences: String): UserProfile!
132
+
133
+ # User preferences
134
+ upsertUserPreference(
135
+ userProfileId: String!,
136
+ category: String!,
137
+ key: String!,
138
+ value: String,
139
+ values: [String]): Boolean
140
+ }
141
+
142
+ `;