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.
- package/dist/apollo/resolvers/mutations/mailing-lists.d.ts +11 -0
- package/dist/apollo/resolvers/mutations/mailing-lists.js +30 -0
- package/dist/apollo/resolvers/mutations/user-preferences.d.ts +13 -0
- package/dist/apollo/resolvers/mutations/user-preferences.js +31 -0
- package/dist/apollo/resolvers/mutations/users.d.ts +28 -0
- package/dist/apollo/resolvers/mutations/users.js +44 -0
- package/dist/apollo/resolvers/queries/access.d.ts +11 -0
- package/dist/apollo/resolvers/queries/access.js +25 -0
- package/dist/apollo/resolvers/queries/profile.d.ts +11 -0
- package/dist/apollo/resolvers/queries/profile.js +25 -0
- package/dist/apollo/resolvers/queries/quotas.d.ts +21 -0
- package/dist/apollo/resolvers/queries/quotas.js +25 -0
- package/dist/apollo/resolvers/queries/tech.d.ts +5 -0
- package/dist/apollo/resolvers/queries/tech.js +35 -0
- package/dist/apollo/resolvers/queries/user-preferences.d.ts +5 -0
- package/dist/apollo/resolvers/queries/user-preferences.js +33 -0
- package/dist/apollo/resolvers/queries/users.d.ts +15 -0
- package/dist/apollo/resolvers/queries/users.js +28 -0
- package/dist/apollo/resolvers/resolvers.d.ts +20 -0
- package/dist/apollo/resolvers/resolvers.js +38 -0
- package/dist/apollo/typedefs/typedefs.d.ts +1 -0
- package/dist/apollo/typedefs/typedefs.js +142 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.js +68 -0
- package/dist/models/chat/chat-message-created-model.d.ts +17 -0
- package/dist/models/chat/chat-message-created-model.js +113 -0
- package/dist/models/chat/chat-message-model.d.ts +44 -0
- package/dist/models/chat/chat-message-model.js +523 -0
- package/dist/models/chat/chat-participant-model.d.ts +39 -0
- package/dist/models/chat/chat-participant-model.js +211 -0
- package/dist/models/chat/chat-session-model.d.ts +92 -0
- package/dist/models/chat/chat-session-model.js +301 -0
- package/dist/models/chat/chat-settings-model.d.ts +87 -0
- package/dist/models/chat/chat-settings-model.js +261 -0
- package/dist/models/feature-flags/feature-flag-model.d.ts +40 -0
- package/dist/models/feature-flags/feature-flag-model.js +164 -0
- package/dist/models/instances/instance-model.d.ts +93 -0
- package/dist/models/instances/instance-model.js +432 -0
- package/dist/models/instances/instance-setting-model.d.ts +39 -0
- package/dist/models/instances/instance-setting-model.js +193 -0
- package/dist/models/mailing-lists/mailing-list-model.d.ts +34 -0
- package/dist/models/mailing-lists/mailing-list-model.js +154 -0
- package/dist/models/mailing-lists/mailing-list-subscriber-model.d.ts +36 -0
- package/dist/models/mailing-lists/mailing-list-subscriber-model.js +152 -0
- package/dist/models/quotas/resource-quota-total-model.d.ts +46 -0
- package/dist/models/quotas/resource-quota-total-model.js +200 -0
- package/dist/models/quotas/resource-quota-usage-model.d.ts +51 -0
- package/dist/models/quotas/resource-quota-usage-model.js +181 -0
- package/dist/models/tech/rate-limited-api-event-model.d.ts +25 -0
- package/dist/models/tech/rate-limited-api-event-model.js +161 -0
- package/dist/models/tech/rate-limited-api-model.d.ts +21 -0
- package/dist/models/tech/rate-limited-api-model.js +141 -0
- package/dist/models/tech/tech-model.d.ts +44 -0
- package/dist/models/tech/tech-model.js +268 -0
- package/dist/models/tech/tech-provider-api-key-model.d.ts +43 -0
- package/dist/models/tech/tech-provider-api-key-model.js +224 -0
- package/dist/models/tech/tech-provider-model.d.ts +28 -0
- package/dist/models/tech/tech-provider-model.js +197 -0
- package/dist/models/users/external-user-integration-model.d.ts +36 -0
- package/dist/models/users/external-user-integration-model.js +196 -0
- package/dist/models/users/user-error-model.d.ts +54 -0
- package/dist/models/users/user-error-model.js +173 -0
- package/dist/models/users/user-error-summary-model.d.ts +45 -0
- package/dist/models/users/user-error-summary-model.js +172 -0
- package/dist/models/users/user-group-member-model.d.ts +41 -0
- package/dist/models/users/user-group-member-model.js +193 -0
- package/dist/models/users/user-group-model.d.ts +27 -0
- package/dist/models/users/user-group-model.js +146 -0
- package/dist/models/users/user-model.d.ts +46 -0
- package/dist/models/users/user-model.js +153 -0
- package/dist/models/users/user-preference-model.d.ts +60 -0
- package/dist/models/users/user-preference-model.js +228 -0
- package/dist/models/users/user-profile-model.d.ts +58 -0
- package/dist/models/users/user-profile-model.js +173 -0
- package/dist/prisma.config.d.ts +3 -0
- package/dist/prisma.config.js +13 -0
- package/dist/services/access/access-service.d.ts +12 -0
- package/dist/services/access/access-service.js +44 -0
- package/dist/services/access/encrypt-service.d.ts +13 -0
- package/dist/services/access/encrypt-service.js +84 -0
- package/dist/services/api-usage/api-usage-base-service.d.ts +15 -0
- package/dist/services/api-usage/api-usage-base-service.js +75 -0
- package/dist/services/console/service.d.ts +7 -0
- package/dist/services/console/service.js +70 -0
- package/dist/services/db/pg/pg-estimate-size-service.d.ts +16 -0
- package/dist/services/db/pg/pg-estimate-size-service.js +90 -0
- package/dist/services/files/types.d.ts +6 -0
- package/dist/services/files/types.js +2 -0
- package/dist/services/files/walk-dir-service.d.ts +8 -0
- package/dist/services/files/walk-dir-service.js +94 -0
- package/dist/services/locale/countries.d.ts +6 -0
- package/dist/services/locale/countries.js +484 -0
- package/dist/services/mailing-lists/mailing-list-subscriber-service.d.ts +14 -0
- package/dist/services/mailing-lists/mailing-list-subscriber-service.js +45 -0
- package/dist/services/process/sleep.d.ts +2 -0
- package/dist/services/process/sleep.js +10 -0
- package/dist/services/quotas/mutate-service.d.ts +5 -0
- package/dist/services/quotas/mutate-service.js +54 -0
- package/dist/services/quotas/query-service.d.ts +27 -0
- package/dist/services/quotas/query-service.js +137 -0
- package/dist/services/quotas/utils-service.d.ts +4 -0
- package/dist/services/quotas/utils-service.js +28 -0
- package/dist/services/tech/tech-provider-mutate-service.d.ts +7 -0
- package/dist/services/tech/tech-provider-mutate-service.js +142 -0
- package/dist/services/tech/tech-query-service.d.ts +9 -0
- package/dist/services/tech/tech-query-service.js +77 -0
- package/dist/services/user-preference/service.d.ts +10 -0
- package/dist/services/user-preference/service.js +70 -0
- package/dist/services/users/external-user-integration-service.d.ts +9 -0
- package/dist/services/users/external-user-integration-service.js +42 -0
- package/dist/services/users/profile-service.d.ts +40 -0
- package/dist/services/users/profile-service.js +408 -0
- package/dist/services/users/service.d.ts +64 -0
- package/dist/services/users/service.js +187 -0
- package/dist/services/users/user-error-service.d.ts +4 -0
- package/dist/services/users/user-error-service.js +42 -0
- package/dist/services/users/users-group-service.d.ts +16 -0
- package/dist/services/users/users-group-service.js +68 -0
- package/dist/services/utils/string-utils-service.d.ts +5 -0
- package/dist/services/utils/string-utils-service.js +41 -0
- package/dist/src/apollo/resolvers/mutations/mailing-lists.d.ts +11 -0
- package/dist/src/apollo/resolvers/mutations/mailing-lists.js +19 -0
- package/dist/src/apollo/resolvers/mutations/user-preferences.d.ts +13 -0
- package/dist/src/apollo/resolvers/mutations/user-preferences.js +20 -0
- package/dist/src/apollo/resolvers/mutations/users.d.ts +28 -0
- package/dist/src/apollo/resolvers/mutations/users.js +33 -0
- package/dist/src/apollo/resolvers/queries/access.d.ts +11 -0
- package/dist/src/apollo/resolvers/queries/access.js +14 -0
- package/dist/src/apollo/resolvers/queries/profile.d.ts +11 -0
- package/dist/src/apollo/resolvers/queries/profile.js +14 -0
- package/dist/src/apollo/resolvers/queries/quotas.d.ts +21 -0
- package/dist/src/apollo/resolvers/queries/quotas.js +14 -0
- package/dist/src/apollo/resolvers/queries/tech.d.ts +5 -0
- package/dist/src/apollo/resolvers/queries/tech.js +24 -0
- package/dist/src/apollo/resolvers/queries/user-preferences.d.ts +5 -0
- package/dist/src/apollo/resolvers/queries/user-preferences.js +22 -0
- package/dist/src/apollo/resolvers/queries/users.d.ts +15 -0
- package/dist/src/apollo/resolvers/queries/users.js +17 -0
- package/dist/src/apollo/typedefs/typedefs.d.ts +1 -0
- package/dist/src/apollo/typedefs/typedefs.js +139 -0
- package/dist/src/db.d.ts +3 -0
- package/dist/src/db.js +11 -0
- package/dist/src/index.d.ts +52 -0
- package/dist/src/index.js +52 -0
- package/dist/src/models/chat/chat-message-created-model.d.ts +17 -0
- package/dist/src/models/chat/chat-message-created-model.js +92 -0
- package/dist/src/models/chat/chat-message-model.d.ts +44 -0
- package/dist/src/models/chat/chat-message-model.js +484 -0
- package/dist/src/models/chat/chat-participant-model.d.ts +39 -0
- package/dist/src/models/chat/chat-participant-model.js +178 -0
- package/dist/src/models/chat/chat-session-model.d.ts +92 -0
- package/dist/src/models/chat/chat-session-model.js +266 -0
- package/dist/src/models/chat/chat-settings-model.d.ts +87 -0
- package/dist/src/models/chat/chat-settings-model.js +230 -0
- package/dist/src/models/feature-flags/feature-flag-model.d.ts +40 -0
- package/dist/src/models/feature-flags/feature-flag-model.js +137 -0
- package/dist/src/models/instances/instance-model.d.ts +100 -0
- package/dist/src/models/instances/instance-model.js +466 -0
- package/dist/src/models/instances/instance-setting-model.d.ts +39 -0
- package/dist/src/models/instances/instance-setting-model.js +164 -0
- package/dist/src/models/mailing-lists/mailing-list-model.d.ts +34 -0
- package/dist/src/models/mailing-lists/mailing-list-model.js +127 -0
- package/dist/src/models/mailing-lists/mailing-list-subscriber-model.d.ts +36 -0
- package/dist/src/models/mailing-lists/mailing-list-subscriber-model.js +127 -0
- package/dist/src/models/quotas/resource-quota-total-model.d.ts +46 -0
- package/dist/src/models/quotas/resource-quota-total-model.js +170 -0
- package/dist/src/models/quotas/resource-quota-usage-model.d.ts +51 -0
- package/dist/src/models/quotas/resource-quota-usage-model.js +151 -0
- package/dist/src/models/tech/rate-limited-api-event-model.d.ts +25 -0
- package/dist/src/models/tech/rate-limited-api-event-model.js +134 -0
- package/dist/src/models/tech/rate-limited-api-model.d.ts +21 -0
- package/dist/src/models/tech/rate-limited-api-model.js +116 -0
- package/dist/src/models/tech/tech-model.d.ts +44 -0
- package/dist/src/models/tech/tech-model.js +239 -0
- package/dist/src/models/tech/tech-provider-api-key-model.d.ts +43 -0
- package/dist/src/models/tech/tech-provider-api-key-model.js +195 -0
- package/dist/src/models/tech/tech-provider-model.d.ts +28 -0
- package/dist/src/models/tech/tech-provider-model.js +170 -0
- package/dist/src/models/users/external-user-integration-model.d.ts +36 -0
- package/dist/src/models/users/external-user-integration-model.js +167 -0
- package/dist/src/models/users/user-error-model.d.ts +54 -0
- package/dist/src/models/users/user-error-model.js +146 -0
- package/dist/src/models/users/user-error-summary-model.d.ts +45 -0
- package/dist/src/models/users/user-error-summary-model.js +145 -0
- package/dist/src/models/users/user-group-member-model.d.ts +41 -0
- package/dist/src/models/users/user-group-member-model.js +164 -0
- package/dist/src/models/users/user-group-model.d.ts +27 -0
- package/dist/src/models/users/user-group-model.js +121 -0
- package/dist/src/models/users/user-model.d.ts +46 -0
- package/dist/src/models/users/user-model.js +126 -0
- package/dist/src/models/users/user-preference-model.d.ts +60 -0
- package/dist/src/models/users/user-preference-model.js +197 -0
- package/dist/src/models/users/user-profile-model.d.ts +58 -0
- package/dist/src/models/users/user-profile-model.js +146 -0
- package/dist/src/services/access/access-service.d.ts +12 -0
- package/dist/src/services/access/access-service.js +27 -0
- package/dist/src/services/access/encrypt-service.d.ts +13 -0
- package/dist/src/services/access/encrypt-service.js +79 -0
- package/dist/src/services/api-usage/api-usage-base-service.d.ts +15 -0
- package/dist/src/services/api-usage/api-usage-base-service.js +58 -0
- package/dist/src/services/console/service.d.ts +7 -0
- package/dist/src/services/console/service.js +18 -0
- package/dist/src/services/db/pg/pg-estimate-size-service.d.ts +16 -0
- package/dist/src/services/db/pg/pg-estimate-size-service.js +83 -0
- package/dist/src/services/files/types.d.ts +6 -0
- package/dist/src/services/files/types.js +1 -0
- package/dist/src/services/files/walk-dir-service.d.ts +8 -0
- package/dist/src/services/files/walk-dir-service.js +77 -0
- package/dist/src/services/locale/countries.d.ts +6 -0
- package/dist/src/services/locale/countries.js +481 -0
- package/dist/src/services/mailing-lists/mailing-list-subscriber-service.d.ts +14 -0
- package/dist/src/services/mailing-lists/mailing-list-subscriber-service.js +28 -0
- package/dist/src/services/process/sleep.d.ts +2 -0
- package/dist/src/services/process/sleep.js +6 -0
- package/dist/src/services/quotas/mutate-service.d.ts +5 -0
- package/dist/src/services/quotas/mutate-service.js +37 -0
- package/dist/src/services/quotas/query-service.d.ts +27 -0
- package/dist/src/services/quotas/query-service.js +116 -0
- package/dist/src/services/quotas/utils-service.d.ts +4 -0
- package/dist/src/services/quotas/utils-service.js +22 -0
- package/dist/src/services/tech/tech-provider-mutate-service.d.ts +7 -0
- package/dist/src/services/tech/tech-provider-mutate-service.js +85 -0
- package/dist/src/services/tech/tech-query-service.d.ts +9 -0
- package/dist/src/services/tech/tech-query-service.js +58 -0
- package/dist/src/services/user-preference/service.d.ts +10 -0
- package/dist/src/services/user-preference/service.js +49 -0
- package/dist/src/services/users/external-user-integration-service.d.ts +9 -0
- package/dist/src/services/users/external-user-integration-service.js +25 -0
- package/dist/src/services/users/profile-service.d.ts +40 -0
- package/dist/src/services/users/profile-service.js +385 -0
- package/dist/src/services/users/service.d.ts +64 -0
- package/dist/src/services/users/service.js +152 -0
- package/dist/src/services/users/user-error-service.d.ts +4 -0
- package/dist/src/services/users/user-error-service.js +27 -0
- package/dist/src/services/users/users-group-service.d.ts +16 -0
- package/dist/src/services/users/users-group-service.js +51 -0
- package/dist/src/services/utils/field-naming-service.d.ts +20 -0
- package/dist/src/services/utils/field-naming-service.js +59 -0
- package/dist/src/services/utils/string-utils-service.d.ts +5 -0
- package/dist/src/services/utils/string-utils-service.js +37 -0
- package/dist/src/types/errors.d.ts +9 -0
- package/dist/src/types/errors.js +15 -0
- package/dist/src/types/user-types.d.ts +11 -0
- package/dist/src/types/user-types.js +14 -0
- package/dist/types/errors.d.ts +9 -0
- package/dist/types/errors.js +20 -0
- package/dist/types/user-types.d.ts +11 -0
- package/dist/types/user-types.js +19 -0
- package/package.json +21 -0
- package/prisma/schema.prisma +572 -0
- package/prisma.config.ts +14 -0
- package/src/apollo/README.md +4 -0
- package/src/apollo/resolvers/mutations/mailing-lists.ts +30 -0
- package/src/apollo/resolvers/mutations/user-preferences.ts +33 -0
- package/src/apollo/resolvers/mutations/users.ts +61 -0
- package/src/apollo/resolvers/queries/access.ts +23 -0
- package/src/apollo/resolvers/queries/profile.ts +24 -0
- package/src/apollo/resolvers/queries/quotas.ts +25 -0
- package/src/apollo/resolvers/queries/tech.ts +42 -0
- package/src/apollo/resolvers/queries/user-preferences.ts +34 -0
- package/src/apollo/resolvers/queries/users.ts +33 -0
- package/src/apollo/typedefs/typedefs.ts +139 -0
- package/src/db.ts +19 -0
- package/src/index.ts +52 -0
- package/src/models/chat/chat-message-created-model.ts +126 -0
- package/src/models/chat/chat-message-model.ts +678 -0
- package/src/models/chat/chat-participant-model.ts +248 -0
- package/src/models/chat/chat-session-model.ts +397 -0
- package/src/models/chat/chat-settings-model.ts +336 -0
- package/src/models/feature-flags/feature-flag-model.ts +198 -0
- package/src/models/instances/instance-model.ts +673 -0
- package/src/models/instances/instance-setting-model.ts +235 -0
- package/src/models/mailing-lists/mailing-list-model.ts +177 -0
- package/src/models/mailing-lists/mailing-list-subscriber-model.ts +194 -0
- package/src/models/quotas/resource-quota-total-model.ts +243 -0
- package/src/models/quotas/resource-quota-usage-model.ts +219 -0
- package/src/models/tech/rate-limited-api-event-model.ts +190 -0
- package/src/models/tech/rate-limited-api-model.ts +171 -0
- package/src/models/tech/tech-model.ts +360 -0
- package/src/models/tech/tech-provider-api-key-model.ts +289 -0
- package/src/models/tech/tech-provider-model.ts +247 -0
- package/src/models/users/external-user-integration-model.ts +236 -0
- package/src/models/users/user-error-model.ts +219 -0
- package/src/models/users/user-error-summary-model.ts +216 -0
- package/src/models/users/user-group-member-model.ts +233 -0
- package/src/models/users/user-group-model.ts +174 -0
- package/src/models/users/user-model.ts +172 -0
- package/src/models/users/user-preference-model.ts +285 -0
- package/src/models/users/user-profile-model.ts +207 -0
- package/src/services/access/access-service.ts +36 -0
- package/src/services/access/encrypt-service.ts +122 -0
- package/src/services/api-usage/api-usage-base-service.ts +95 -0
- package/src/services/console/service.ts +24 -0
- package/src/services/db/pg/pg-estimate-size-service.ts +119 -0
- package/src/services/files/types.ts +7 -0
- package/src/services/files/walk-dir-service.ts +135 -0
- package/src/services/locale/countries.ts +483 -0
- package/src/services/mailing-lists/mailing-list-subscriber-service.ts +54 -0
- package/src/services/process/sleep.ts +7 -0
- package/src/services/quotas/mutate-service.ts +66 -0
- package/src/services/quotas/query-service.ts +197 -0
- package/src/services/quotas/utils-service.ts +29 -0
- package/src/services/tech/tech-provider-mutate-service.ts +136 -0
- package/src/services/tech/tech-query-service.ts +93 -0
- package/src/services/user-preference/service.ts +110 -0
- package/src/services/users/external-user-integration-service.ts +51 -0
- package/src/services/users/profile-service.ts +513 -0
- package/src/services/users/service.ts +293 -0
- package/src/services/users/user-error-service.ts +74 -0
- package/src/services/users/users-group-service.ts +85 -0
- package/src/services/utils/field-naming-service.ts +78 -0
- package/src/services/utils/string-utils-service.ts +48 -0
- package/src/types/errors.ts +18 -0
- package/src/types/user-types.ts +19 -0
- package/tsconfig.json +25 -0
|
@@ -0,0 +1,42 @@
|
|
|
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.UserErrorService = void 0;
|
|
13
|
+
const user_error_model_1 = require("../../models/users/user-error-model");
|
|
14
|
+
const user_error_summary_model_1 = require("../../models/users/user-error-summary-model");
|
|
15
|
+
// Models
|
|
16
|
+
const userErrorModel = new user_error_model_1.UserErrorModel();
|
|
17
|
+
const userErrorSummaryModel = new user_error_summary_model_1.UserErrorSummaryModel();
|
|
18
|
+
// Class
|
|
19
|
+
class UserErrorService {
|
|
20
|
+
upsert(prisma, userProfileId, endUserProfileId, instanceId, summaryMessage, origin, message, techMessage) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
// If the summaryMessage isn't specified, set it to the message
|
|
23
|
+
if (summaryMessage == null) {
|
|
24
|
+
summaryMessage = message;
|
|
25
|
+
}
|
|
26
|
+
// Get the existing UserErrorSummary if it exists
|
|
27
|
+
var userErrorSummary = yield userErrorSummaryModel.getByUniqueKey(prisma, userProfileId, instanceId, origin, summaryMessage);
|
|
28
|
+
// Create/update UserErrorSummary
|
|
29
|
+
if (userErrorSummary == null) {
|
|
30
|
+
// Create
|
|
31
|
+
userErrorSummary = yield userErrorSummaryModel.create(prisma, userProfileId, instanceId, origin, summaryMessage, 1); // count
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// Inc count
|
|
35
|
+
userErrorSummary = yield userErrorSummaryModel.update(prisma, userErrorSummary.id, undefined, undefined, undefined, undefined, userErrorSummary.count + 1);
|
|
36
|
+
}
|
|
37
|
+
// Create UserError
|
|
38
|
+
const userError = yield userErrorModel.create(prisma, userErrorSummary.id, userProfileId, endUserProfileId, instanceId, origin, message, techMessage);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.UserErrorService = UserErrorService;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PrismaClient } from '@prisma/client';
|
|
2
|
+
import { UserGroupMemberModel } from '../../models/users/user-group-member-model';
|
|
3
|
+
import { UserGroupModel } from '../../models/users/user-group-model';
|
|
4
|
+
export declare class UsersGroupService {
|
|
5
|
+
clName: string;
|
|
6
|
+
externalUsersGroupName: string;
|
|
7
|
+
userGroupMemberModel: UserGroupMemberModel;
|
|
8
|
+
userGroupModel: UserGroupModel;
|
|
9
|
+
verifyGroupMemberByOwner(prisma: PrismaClient, memberUserProfileId: string, ownerUserProfileId: string, groupName: string): Promise<{
|
|
10
|
+
status: boolean;
|
|
11
|
+
message: string;
|
|
12
|
+
} | {
|
|
13
|
+
status: boolean;
|
|
14
|
+
message?: undefined;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
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.UsersGroupService = void 0;
|
|
13
|
+
const user_group_member_model_1 = require("../../models/users/user-group-member-model");
|
|
14
|
+
const user_group_model_1 = require("../../models/users/user-group-model");
|
|
15
|
+
class UsersGroupService {
|
|
16
|
+
constructor() {
|
|
17
|
+
// Consts
|
|
18
|
+
this.clName = 'UsersGroupService';
|
|
19
|
+
// Common group names
|
|
20
|
+
this.externalUsersGroupName = 'External users group';
|
|
21
|
+
// Models
|
|
22
|
+
this.userGroupMemberModel = new user_group_member_model_1.UserGroupMemberModel();
|
|
23
|
+
this.userGroupModel = new user_group_model_1.UserGroupModel();
|
|
24
|
+
}
|
|
25
|
+
// Code
|
|
26
|
+
verifyGroupMemberByOwner(prisma, memberUserProfileId, ownerUserProfileId, groupName) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
// Get the UserGroup record
|
|
29
|
+
const userGroup = yield this.userGroupModel.getByUniqueKey(prisma, ownerUserProfileId, groupName);
|
|
30
|
+
if (userGroup == null) {
|
|
31
|
+
return {
|
|
32
|
+
status: false,
|
|
33
|
+
message: `User group not found: ` + groupName
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// Verify the member is present for the group
|
|
37
|
+
const memberUserGroupMember = yield this.userGroupMemberModel.getByUniqueKey(prisma, userGroup.id, memberUserProfileId);
|
|
38
|
+
if (memberUserGroupMember == null) {
|
|
39
|
+
return {
|
|
40
|
+
status: false,
|
|
41
|
+
message: `Member: ${memberUserProfileId} not found for group: ` +
|
|
42
|
+
groupName
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// Verify the admin is present for the group (and is an admin of the group)
|
|
46
|
+
const ownerUserGroupMember = yield this.userGroupMemberModel.getByUniqueKey(prisma, userGroup.id, ownerUserProfileId);
|
|
47
|
+
if (ownerUserGroupMember == null) {
|
|
48
|
+
return {
|
|
49
|
+
status: false,
|
|
50
|
+
message: `Admin: ${ownerUserProfileId} not found for group: ` +
|
|
51
|
+
groupName
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (ownerUserGroupMember.isGroupAdmin === false) {
|
|
55
|
+
return {
|
|
56
|
+
status: false,
|
|
57
|
+
message: `Owner: ${ownerUserProfileId} is not an admin for group: ` +
|
|
58
|
+
groupName
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Return OK
|
|
62
|
+
return {
|
|
63
|
+
status: true
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.UsersGroupService = UsersGroupService;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringUtilsService = void 0;
|
|
4
|
+
class StringUtilsService {
|
|
5
|
+
toNaturalCase(input) {
|
|
6
|
+
if (!input)
|
|
7
|
+
return '';
|
|
8
|
+
// Step 1: Normalize input (handle snake_case, kebab-case, camelCase)
|
|
9
|
+
let words = input
|
|
10
|
+
// Insert space before capital letters (camelCase to space-separated)
|
|
11
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
12
|
+
// Replace underscores and hyphens with space
|
|
13
|
+
.replace(/[_\-]+/g, ' ')
|
|
14
|
+
// Split into words
|
|
15
|
+
.split(' ');
|
|
16
|
+
// Step 2: Capitalize each word, but keep acronyms (like TV, AI) in uppercase
|
|
17
|
+
return words
|
|
18
|
+
.map((word) => {
|
|
19
|
+
if (word.length <= 2 && word === word.toUpperCase()) {
|
|
20
|
+
// likely an acronym: TV, AI, ML
|
|
21
|
+
return word;
|
|
22
|
+
}
|
|
23
|
+
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
24
|
+
})
|
|
25
|
+
.join(' ');
|
|
26
|
+
}
|
|
27
|
+
getShortLocaleString(date) {
|
|
28
|
+
const tz = date.toLocaleDateString('en', {
|
|
29
|
+
day: '2-digit',
|
|
30
|
+
timeZoneName: 'short'
|
|
31
|
+
}).slice(4);
|
|
32
|
+
return `${date.toLocaleString()} ${tz}`;
|
|
33
|
+
}
|
|
34
|
+
getSnippet(text, maxChars) {
|
|
35
|
+
if (text.length < maxChars) {
|
|
36
|
+
return text;
|
|
37
|
+
}
|
|
38
|
+
return text.substring(0, maxChars) + '..';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.StringUtilsService = StringUtilsService;
|
|
@@ -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,19 @@
|
|
|
1
|
+
import { MailingListSubscriberService } from '../../../services/mailing-lists/mailing-list-subscriber-service';
|
|
2
|
+
// Services
|
|
3
|
+
const mailingListSubscriberService = new MailingListSubscriberService();
|
|
4
|
+
// Factory of resolvers
|
|
5
|
+
// Note: prisma must be passed into the GraphQL server's context
|
|
6
|
+
export function sereneCoreMailingListsMutationResolvers() {
|
|
7
|
+
return {
|
|
8
|
+
Mutation: {
|
|
9
|
+
upsertUserPreference: async (parent, args, context, info) => {
|
|
10
|
+
try {
|
|
11
|
+
return await mailingListSubscriberService.subscribe(context.prisma, args.mailingListName, args.email, args.firstName);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
console.error(`upsertUserPreference: ${error}`);
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -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,20 @@
|
|
|
1
|
+
import { UserPreferenceModel } from '../../../models/users/user-preference-model';
|
|
2
|
+
// Services
|
|
3
|
+
const userPreferenceModel = new UserPreferenceModel();
|
|
4
|
+
// Factory of resolvers
|
|
5
|
+
// Note: prisma must be passed into the GraphQL server's context
|
|
6
|
+
export function sereneCoreUserPreferencesMutationResolvers() {
|
|
7
|
+
return {
|
|
8
|
+
Mutation: {
|
|
9
|
+
upsertUserPreference: async (parent, args, context, info) => {
|
|
10
|
+
try {
|
|
11
|
+
return await userPreferenceModel.upsert(context.prisma, undefined, // id
|
|
12
|
+
args.userProfileId, args.category, args.key, args.value, args.values);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
console.error(`upsertUserPreference: ${error}`);
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -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,33 @@
|
|
|
1
|
+
import { UsersService } from '../../../services/users/service';
|
|
2
|
+
// Services
|
|
3
|
+
const usersService = new UsersService();
|
|
4
|
+
// Factory of resolvers
|
|
5
|
+
// Note: prisma must be passed into the GraphQL server's context
|
|
6
|
+
export function sereneCoreUsersMutationResolvers() {
|
|
7
|
+
return {
|
|
8
|
+
Mutation: {
|
|
9
|
+
createBlankUser: async (parent, args, context, info) => {
|
|
10
|
+
return usersService.createBlankUser(context.prisma);
|
|
11
|
+
},
|
|
12
|
+
createUserByEmail: async (parent, args, context, info) => {
|
|
13
|
+
return usersService.createUserByEmail(context.prisma, args.email);
|
|
14
|
+
},
|
|
15
|
+
getOrCreateSignedOutUser: async (parent, args, context, info) => {
|
|
16
|
+
try {
|
|
17
|
+
return usersService.getOrCreateSignedOutUser(context.prisma, args.signedOutId, args.defaultUserPreferences);
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
console.error(`getOrCreateSignedOutUser(): error: ${error}`);
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
getOrCreateUserByEmail: async (parent, args, context, info) => {
|
|
24
|
+
try {
|
|
25
|
+
return usersService.getOrCreateUserByEmail(context.prisma, args.email, args.defaultUserPreferences);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.error(`getOrCreateUserByEmail(): error: ${error}`);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AccessService } from '../../../services/access/access-service';
|
|
2
|
+
// Services
|
|
3
|
+
const accessService = new AccessService();
|
|
4
|
+
// Factory of resolvers
|
|
5
|
+
// Note: prisma must be passed into the GraphQL server's context
|
|
6
|
+
export function sereneCoreAccessQueryResolvers() {
|
|
7
|
+
return {
|
|
8
|
+
Query: {
|
|
9
|
+
isAdminUser: async (parent, args, context, info) => {
|
|
10
|
+
return accessService.isAdminUser(context.prisma, args.userProfileId);
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -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,14 @@
|
|
|
1
|
+
import { ProfileService } from '../../../services/users/profile-service';
|
|
2
|
+
// Services
|
|
3
|
+
const profileService = new ProfileService();
|
|
4
|
+
// Factory of resolvers
|
|
5
|
+
// Note: prisma must be passed into the GraphQL server's context
|
|
6
|
+
export function sereneCoreProfileQueryResolvers() {
|
|
7
|
+
return {
|
|
8
|
+
Query: {
|
|
9
|
+
validateProfileCompleted: async (parent, args, context, info) => {
|
|
10
|
+
return profileService.validateProfileCompleted(context.prisma, args.forAction, args.userProfileId);
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -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,14 @@
|
|
|
1
|
+
import { ResourceQuotasQueryService } from '../../../services/quotas/query-service';
|
|
2
|
+
// Services
|
|
3
|
+
const resourceQuotasService = new ResourceQuotasQueryService();
|
|
4
|
+
// Factory of resolvers
|
|
5
|
+
// Note: prisma must be passed into the GraphQL server's context
|
|
6
|
+
export function sereneCoreQuotasQueryResolvers() {
|
|
7
|
+
return {
|
|
8
|
+
Query: {
|
|
9
|
+
getResourceQuotaUsage: async (parent, args, context, info) => {
|
|
10
|
+
return resourceQuotasService.getQuotaAndUsageForUi(context.prisma, args.userProfileId, args.resource, args.day);
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TechQueryService } from '../../../services/tech/tech-query-service';
|
|
2
|
+
import { UsersService } from '../../../services/users/service';
|
|
3
|
+
// Services
|
|
4
|
+
const techQueryService = new TechQueryService();
|
|
5
|
+
const usersService = new UsersService();
|
|
6
|
+
// Factory of resolvers
|
|
7
|
+
// Note: prisma must be passed into the GraphQL server's context
|
|
8
|
+
export function sereneCoreTechQueryResolvers() {
|
|
9
|
+
return {
|
|
10
|
+
Query: {
|
|
11
|
+
getTechs: async (parent, args, context, info) => {
|
|
12
|
+
// Debug
|
|
13
|
+
const fnName = 'getTechs()';
|
|
14
|
+
console.log(`${fnName}: args: ` + JSON.stringify(args));
|
|
15
|
+
// Get userProfile
|
|
16
|
+
const userProfile = await usersService.getById(context.prisma, args.userProfileId);
|
|
17
|
+
// Get quota and usage
|
|
18
|
+
const results = await techQueryService.getTechs(context.prisma, userProfile, args.resource);
|
|
19
|
+
// Return
|
|
20
|
+
return results.techs;
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { UserPreferenceService } from '../../../services/user-preference/service';
|
|
2
|
+
// Services
|
|
3
|
+
const userPreferenceService = new UserPreferenceService();
|
|
4
|
+
// Factory of resolvers
|
|
5
|
+
// Note: prisma must be passed into the GraphQL server's context
|
|
6
|
+
export function sereneCoreUserPreferencesQueryResolvers() {
|
|
7
|
+
return {
|
|
8
|
+
Query: {
|
|
9
|
+
getUserPreferences: async (parent, args, context, info) => {
|
|
10
|
+
console.log('getUserPreferences(): ' +
|
|
11
|
+
`args.userProfileId: ${args.userProfileId} ` +
|
|
12
|
+
`args.keys: ${args.keys}`);
|
|
13
|
+
try {
|
|
14
|
+
return await userPreferenceService.getUserPreferences(context.prisma, args.userProfileId, args.category, args.keys);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.error(`getUserPreferences: ${error}`);
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -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,17 @@
|
|
|
1
|
+
import { UsersService } from '../../../services/users/service';
|
|
2
|
+
// Services
|
|
3
|
+
const usersService = new UsersService();
|
|
4
|
+
// Factory of resolvers
|
|
5
|
+
// Note: prisma must be passed into the GraphQL server's context
|
|
6
|
+
export function sereneCoreUsersQueryResolvers() {
|
|
7
|
+
return {
|
|
8
|
+
Query: {
|
|
9
|
+
userById: async (parent, args, context, info) => {
|
|
10
|
+
return usersService.getById(context.prisma, args.userProfileId);
|
|
11
|
+
},
|
|
12
|
+
verifySignedInUserProfileId: async (parent, args, context, info) => {
|
|
13
|
+
return usersService.verifySignedInUserProfileId(context.prisma, args.userProfileId);
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -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,139 @@
|
|
|
1
|
+
export const typeDefs = `#graphql
|
|
2
|
+
|
|
3
|
+
type ChatMessage {
|
|
4
|
+
id: String!
|
|
5
|
+
name: String!
|
|
6
|
+
message: String!
|
|
7
|
+
created: String!
|
|
8
|
+
updated: String
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
type ChatMessageResults {
|
|
12
|
+
status: Boolean!
|
|
13
|
+
message: String
|
|
14
|
+
chatMessages: [ChatMessage]
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
type ChatParticipant {
|
|
18
|
+
id: String!
|
|
19
|
+
userProfileId: String!
|
|
20
|
+
name: String!
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
type ChatParticipantResults {
|
|
24
|
+
status: Boolean!
|
|
25
|
+
message: String
|
|
26
|
+
chatParticipants: [ChatParticipant]
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
type ChatSession {
|
|
30
|
+
id: String!
|
|
31
|
+
status: String!
|
|
32
|
+
name: String
|
|
33
|
+
updated: String!
|
|
34
|
+
chatParticipants: [ChatParticipant]
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
type ChatSessionResults {
|
|
38
|
+
status: Boolean!
|
|
39
|
+
message: String
|
|
40
|
+
chatSession: ChatSession
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
type ResourceQuotaUsage {
|
|
44
|
+
userProfileId: String!
|
|
45
|
+
resource: String!
|
|
46
|
+
day: String!
|
|
47
|
+
quota: Float!
|
|
48
|
+
usage: Float!
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
type StatusAndMessage {
|
|
52
|
+
status: Boolean!
|
|
53
|
+
message: String
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
type Techs {
|
|
57
|
+
id: String!
|
|
58
|
+
resource: String!
|
|
59
|
+
variantName: String!
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
type UserPreference {
|
|
63
|
+
category: String!
|
|
64
|
+
key: String!
|
|
65
|
+
value: String
|
|
66
|
+
values: [String]
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
type UserProfile {
|
|
70
|
+
id: String!
|
|
71
|
+
userId: String
|
|
72
|
+
isAdmin: Boolean!
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
type VerifiedAndMessage {
|
|
76
|
+
verified: Boolean!
|
|
77
|
+
message: String
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
type Query {
|
|
81
|
+
|
|
82
|
+
# Profile
|
|
83
|
+
validateProfileCompleted(
|
|
84
|
+
forAction: String!,
|
|
85
|
+
userProfileId: String!): StatusAndMessage!
|
|
86
|
+
|
|
87
|
+
# Quotas
|
|
88
|
+
getResourceQuotaUsage(
|
|
89
|
+
userProfileId: String!,
|
|
90
|
+
resource: String!,
|
|
91
|
+
day: String,
|
|
92
|
+
viewUserProfileId: String): ResourceQuotaUsage!
|
|
93
|
+
|
|
94
|
+
# Tech
|
|
95
|
+
getTechs(
|
|
96
|
+
userProfileId: String!,
|
|
97
|
+
resource: String!): [Tech]
|
|
98
|
+
|
|
99
|
+
# Users
|
|
100
|
+
isAdminUser(userProfileId: String!): StatusAndMessage!
|
|
101
|
+
userById(userProfileId: String!): UserProfile
|
|
102
|
+
verifySignedInUserProfileId(userProfileId: String!): Boolean
|
|
103
|
+
|
|
104
|
+
# User preferences
|
|
105
|
+
getUserPreferences(
|
|
106
|
+
userProfileId: String!,
|
|
107
|
+
category: String!,
|
|
108
|
+
keys: [String]): [UserPreference]
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
type Mutation {
|
|
112
|
+
|
|
113
|
+
# Mailing lists
|
|
114
|
+
mailingListSignup(
|
|
115
|
+
mailingListName: String!,
|
|
116
|
+
email: String!,
|
|
117
|
+
firstName: String): VerifiedAndMessage!
|
|
118
|
+
|
|
119
|
+
# Users
|
|
120
|
+
createBlankUser: UserProfile!
|
|
121
|
+
createUserByEmail(email: String!): UserProfile!
|
|
122
|
+
deactivateUserProfileCurrentIFile(id: String!): Boolean
|
|
123
|
+
getOrCreateSignedOutUser(
|
|
124
|
+
signedOutId: String,
|
|
125
|
+
defaultUserPreferences: String): UserProfile!
|
|
126
|
+
getOrCreateUserByEmail(
|
|
127
|
+
email: String!,
|
|
128
|
+
defaultUserPreferences: String): UserProfile!
|
|
129
|
+
|
|
130
|
+
# User preferences
|
|
131
|
+
upsertUserPreference(
|
|
132
|
+
userProfileId: String!,
|
|
133
|
+
category: String!,
|
|
134
|
+
key: String!,
|
|
135
|
+
value: String,
|
|
136
|
+
values: [String]): Boolean
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
`;
|
package/dist/src/db.d.ts
ADDED
package/dist/src/db.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
import { PrismaPg } from '@prisma/adapter-pg';
|
|
3
|
+
import { PrismaClient } from '@/../prisma/generated/prisma/client';
|
|
4
|
+
const connectionString = process.env.DATABASE_URL;
|
|
5
|
+
const adapter = new PrismaPg({ connectionString });
|
|
6
|
+
const globalForPrisma = globalThis;
|
|
7
|
+
export const prisma = globalForPrisma.prisma ??
|
|
8
|
+
new PrismaClient({ adapter });
|
|
9
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
10
|
+
globalForPrisma.prisma = prisma;
|
|
11
|
+
}
|