@messenger-box/platform-server 10.0.3-alpha.6 → 10.0.3-alpha.62
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/lib/containers/containers.js +3 -1
- package/lib/containers/containers.js.map +1 -1
- package/lib/containers/context-services-from-container.d.ts +2 -2
- package/lib/containers/context-services-from-container.js +2 -1
- package/lib/containers/context-services-from-container.js.map +1 -1
- package/lib/graphql/resolvers/channel-member.d.ts +3 -3
- package/lib/graphql/resolvers/channel-member.js +30 -5
- package/lib/graphql/resolvers/channel-member.js.map +1 -1
- package/lib/graphql/resolvers/channel.d.ts +3 -3
- package/lib/graphql/resolvers/channel.js +275 -53
- package/lib/graphql/resolvers/channel.js.map +1 -1
- package/lib/graphql/resolvers/extended-token-account.d.ts +3 -32
- package/lib/graphql/resolvers/extended-token-account.js +90 -23
- package/lib/graphql/resolvers/extended-token-account.js.map +1 -1
- package/lib/graphql/resolvers/index.d.ts +1 -31
- package/lib/graphql/resolvers/post-thread.d.ts +2 -3
- package/lib/graphql/resolvers/post-thread.js +294 -132
- package/lib/graphql/resolvers/post-thread.js.map +1 -1
- package/lib/graphql/resolvers/post.d.ts +2 -3
- package/lib/graphql/resolvers/post.js +697 -234
- package/lib/graphql/resolvers/post.js.map +1 -1
- package/lib/graphql/resolvers/reaction.d.ts +3 -3
- package/lib/graphql/resolvers/reaction.js +96 -14
- package/lib/graphql/resolvers/reaction.js.map +1 -1
- package/lib/graphql/schema/channel-member.graphql +110 -21
- package/lib/graphql/schema/channel-member.graphql.js +1 -1
- package/lib/graphql/schema/channel.graphql +331 -38
- package/lib/graphql/schema/channel.graphql.js +1 -1
- package/lib/graphql/schema/post-thread.graphql +166 -21
- package/lib/graphql/schema/post-thread.graphql.js +1 -1
- package/lib/graphql/schema/post.graphql +280 -40
- package/lib/graphql/schema/post.graphql.js +1 -1
- package/lib/graphql/schema/reaction.graphql +71 -13
- package/lib/graphql/schema/reaction.graphql.js +1 -1
- package/lib/graphql/schema/services.graphql +2 -0
- package/lib/graphql/schema/users.graphql +76 -13
- package/lib/graphql/schema/users.graphql.js +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/interfaces/index.d.ts +0 -1
- package/lib/interfaces/services.d.ts +1 -2
- package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.d.ts +17 -0
- package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.js +44 -0
- package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.js.map +1 -0
- package/lib/migrations/dbMigrations/index.d.ts +1 -0
- package/lib/migrations/index.d.ts +1 -0
- package/lib/migrations/mail-template-migration.js +1 -1
- package/lib/migrations/message-notification-template-migration.d.ts +1 -1
- package/lib/migrations/message-notification-template-migration.js +1 -1
- package/lib/plugins/channel-moleculer-service.d.ts +21 -1
- package/lib/plugins/channel-moleculer-service.js +417 -115
- package/lib/plugins/channel-moleculer-service.js.map +1 -1
- package/lib/plugins/extended-token-account-moleculer-service.d.ts +25 -1
- package/lib/plugins/extended-token-account-moleculer-service.js +348 -22
- package/lib/plugins/extended-token-account-moleculer-service.js.map +1 -1
- package/lib/plugins/messenger-notification-moleculer-service.d.ts +27 -3
- package/lib/plugins/messenger-notification-moleculer-service.js +404 -58
- package/lib/plugins/messenger-notification-moleculer-service.js.map +1 -1
- package/lib/plugins/post-moleculer-service.d.ts +85 -21
- package/lib/plugins/post-moleculer-service.js +986 -256
- package/lib/plugins/post-moleculer-service.js.map +1 -1
- package/lib/plugins/post-thread-moleculer-service.d.ts +33 -1
- package/lib/plugins/post-thread-moleculer-service.js +326 -8
- package/lib/plugins/post-thread-moleculer-service.js.map +1 -1
- package/lib/plugins/reaction-moleculer-service.js +1 -1
- package/lib/plugins/reaction-moleculer-service.js.map +1 -1
- package/lib/preferences/settings/post-settings.d.ts +2 -0
- package/lib/preferences/settings/post-settings.js +47 -9
- package/lib/preferences/settings/post-settings.js.map +1 -1
- package/lib/services/channel-service.d.ts +178 -33
- package/lib/services/channel-service.js +735 -276
- package/lib/services/channel-service.js.map +1 -1
- package/lib/services/extended-token-account-service.d.ts +130 -14
- package/lib/services/extended-token-account-service.js +462 -52
- package/lib/services/extended-token-account-service.js.map +1 -1
- package/lib/services/messenger-notification-service.d.ts +106 -13
- package/lib/services/messenger-notification-service.js +824 -442
- package/lib/services/messenger-notification-service.js.map +1 -1
- package/lib/services/post-service.d.ts +172 -16
- package/lib/services/post-service.js +580 -113
- package/lib/services/post-service.js.map +1 -1
- package/lib/services/post-thread-service.d.ts +114 -5
- package/lib/services/post-thread-service.js +400 -13
- package/lib/services/post-thread-service.js.map +1 -1
- package/lib/services/proxy-services/channel-microservice.d.ts +5 -3
- package/lib/services/proxy-services/channel-microservice.js +19 -10
- package/lib/services/proxy-services/channel-microservice.js.map +1 -1
- package/lib/services/proxy-services/messenger-notification-microservice.d.ts +128 -8
- package/lib/services/proxy-services/messenger-notification-microservice.js +324 -29
- package/lib/services/proxy-services/messenger-notification-microservice.js.map +1 -1
- package/lib/services/proxy-services/post-microservice.d.ts +186 -12
- package/lib/services/proxy-services/post-microservice.js +543 -54
- package/lib/services/proxy-services/post-microservice.js.map +1 -1
- package/lib/services/proxy-services/post-thread-microservice.d.ts +134 -3
- package/lib/services/proxy-services/post-thread-microservice.js +388 -6
- package/lib/services/proxy-services/post-thread-microservice.js.map +1 -1
- package/lib/services/proxy-services/reaction-microservice.d.ts +161 -3
- package/lib/services/proxy-services/reaction-microservice.js +474 -2
- package/lib/services/proxy-services/reaction-microservice.js.map +1 -1
- package/lib/services/reaction-service.d.ts +124 -4
- package/lib/services/reaction-service.js +415 -3
- package/lib/services/reaction-service.js.map +1 -1
- package/lib/store/models/account-token-store.d.ts +1 -1
- package/lib/store/models/account-token-store.js.map +1 -1
- package/lib/store/models/channel.d.ts +2 -3
- package/lib/store/models/channel.js +180 -71
- package/lib/store/models/channel.js.map +1 -1
- package/lib/store/models/post-thread.d.ts +3 -3
- package/lib/store/models/post-thread.js +96 -14
- package/lib/store/models/post-thread.js.map +1 -1
- package/lib/store/models/post.d.ts +2 -3
- package/lib/store/models/post.js +143 -23
- package/lib/store/models/post.js.map +1 -1
- package/lib/store/models/reaction.d.ts +2 -3
- package/lib/store/models/reaction.js +67 -8
- package/lib/store/models/reaction.js.map +1 -1
- package/lib/store/repositories/__tests__/__fixtures__/team-repository.d.ts +3 -3
- package/lib/store/repositories/channel-repository.d.ts +6 -6
- package/lib/store/repositories/channel-repository.js +5 -2
- package/lib/store/repositories/channel-repository.js.map +1 -1
- package/lib/store/repositories/post-repository.d.ts +6 -6
- package/lib/store/repositories/post-repository.js +5 -2
- package/lib/store/repositories/post-repository.js.map +1 -1
- package/lib/store/repositories/post-thread-repository.d.ts +6 -6
- package/lib/store/repositories/post-thread-repository.js +5 -2
- package/lib/store/repositories/post-thread-repository.js.map +1 -1
- package/lib/store/repositories/reaction-repository.d.ts +6 -6
- package/lib/store/repositories/reaction-repository.js +5 -2
- package/lib/store/repositories/reaction-repository.js.map +1 -1
- package/lib/templates/constants/SERVER_TYPES.ts.template +0 -3
- package/lib/templates/repositories/ChannelRepository.ts.template +3 -3
- package/lib/templates/repositories/PostRepository.ts.template +3 -3
- package/lib/templates/repositories/PostThreadRepository.ts.template +3 -3
- package/lib/templates/repositories/ReactionRepository.ts.template +3 -4
- package/lib/templates/services/ChannelService.ts.template +278 -39
- package/lib/templates/services/ExtendedTokenAccountService.ts.template +107 -3
- package/lib/templates/services/MessengerNotificationService.ts.template +94 -19
- package/lib/templates/services/PostService.ts.template +184 -20
- package/lib/templates/services/PostThreadService.ts.template +151 -6
- package/lib/templates/services/ReactionService.ts.template +129 -3
- package/package.json +4 -4
- package/lib/interfaces/context.d.ts +0 -14
- package/lib/store/models/common-options.js +0 -20
- package/lib/store/models/common-options.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {ContainerModule}from'inversify';import {TaggedType}from'@common-stack/core';import {ChannelService}from'../services/channel-service.js';import {PostService}from'../services/post-service.js';import {PostThreadService}from'../services/post-thread-service.js';import {ReactionService}from'../services/reaction-service.js';import {MessengerNotificationService}from'../services/messenger-notification-service.js';import {ExtendedTokenAccountService}from'../services/extended-token-account-service.js';import {SERVER_TYPES}from'common';import {ChannelRepository}from'../store/repositories/channel-repository.js';import {PostRepository}from'../store/repositories/post-repository.js';import {PostThreadRepository}from'../store/repositories/post-thread-repository.js';import {ReactionRepository}from'../store/repositories/reaction-repository.js';import {MessageNotificationTemplateMigration}from'../migrations/message-notification-template-migration.js';import'../migrations/mail-template-migration.js';import {ChannelProxyService}from'../services/proxy-services/channel-microservice.js';import {PostThreadMicroservice}from'../services/proxy-services/post-thread-microservice.js';import {PostProxyService}from'../services/proxy-services/post-microservice.js';import {ReactionMicroservice}from'../services/proxy-services/reaction-microservice.js';import {MessengerNotificationMicroservice}from'../services/proxy-services/messenger-notification-microservice.js';/**
|
|
1
|
+
import {ContainerModule}from'inversify';import {TaggedType}from'@common-stack/core';import {ChannelService}from'../services/channel-service.js';import {PostService}from'../services/post-service.js';import {PostThreadService}from'../services/post-thread-service.js';import {ReactionService}from'../services/reaction-service.js';import {MessengerNotificationService}from'../services/messenger-notification-service.js';import {ExtendedTokenAccountService}from'../services/extended-token-account-service.js';import {SERVER_TYPES}from'common/server';import {ChannelRepository}from'../store/repositories/channel-repository.js';import {PostRepository}from'../store/repositories/post-repository.js';import {PostThreadRepository}from'../store/repositories/post-thread-repository.js';import {ReactionRepository}from'../store/repositories/reaction-repository.js';import {MessageNotificationTemplateMigration}from'../migrations/message-notification-template-migration.js';import'../migrations/mail-template-migration.js';import {AddPostsConfigurationsMigration}from'../migrations/dbMigrations/AddPostsConfigurationsMigration.js';import {ChannelProxyService}from'../services/proxy-services/channel-microservice.js';import {PostThreadMicroservice}from'../services/proxy-services/post-thread-microservice.js';import {PostProxyService}from'../services/proxy-services/post-microservice.js';import {ReactionMicroservice}from'../services/proxy-services/reaction-microservice.js';import {MessengerNotificationMicroservice}from'../services/proxy-services/messenger-notification-microservice.js';/**
|
|
2
2
|
* Local services and exposed microservices to serve remote connections.
|
|
3
3
|
* Operates within in the Gateway.
|
|
4
4
|
*
|
|
@@ -6,6 +6,8 @@ import {ContainerModule}from'inversify';import {TaggedType}from'@common-stack/co
|
|
|
6
6
|
*/
|
|
7
7
|
const proxyServiceContainerModule = settings => new ContainerModule(bind => {
|
|
8
8
|
bind('MongodbMigration').to(MessageNotificationTemplateMigration).whenTargetNamed(MessageNotificationTemplateMigration.name);
|
|
9
|
+
// add Db migrations
|
|
10
|
+
bind('MongodbMigration').to(AddPostsConfigurationsMigration).whenTargetNamed(AddPostsConfigurationsMigration.name);
|
|
9
11
|
bind(SERVER_TYPES.ExtendedTokenAccountService).to(ExtendedTokenAccountService).inSingletonScope().whenTargetIsDefault();
|
|
10
12
|
bind(SERVER_TYPES.ChannelService).to(ChannelProxyService).inSingletonScope().whenTargetNamed(TaggedType.MICROSERVICE);
|
|
11
13
|
bind(SERVER_TYPES.PostService).to(PostProxyService).inSingletonScope().whenTargetNamed(TaggedType.MICROSERVICE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containers.js","sources":["../../src/containers/containers.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"containers.js","sources":["../../src/containers/containers.ts"],"sourcesContent":[null],"names":[],"mappings":"siDAgCA;;;;;AAKG;AACI,MAAM,2BAA2B,GAA6C,QAAS,IAAI,mBAC3E,CAAA,IAAE;MACb,CAAA,oBAAmB,EAAC,CAAA,oCAAA,CAAA,CAAA,eAAA,CAAA,oCAAA,CAAA,IAAA,CAAA;;AAEnB,EAAA,IAAA,CAAA,kBAAgB,CAAA,CAAA,EAAA,CAAA,+BAAoC,CAAC,CAAA,eAAM,CAAA,+BAAA,CAAA,IAAA,CAAA;MAC5C,CAAA,YAAA,CAAA,2BAAA,CAAA,CAAA,EAAA,CAAA,2BAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;MAChB,CAAA,2BAAoB,CAAA,CAAA,EAAA,CAAA,mBAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;oDACgB,CAAA,CAAA,gBAAA,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;AACnC,EAAA,IAAA,CAAA,YAAA,CAAA,iBAAgB,CAAA,CAAA,EAAA,CAAA,sBAAsC,CAAA,CAAA,gBAAA,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;AAC3D,EAAA,IAAA,CAAA,YAAK,CAAA,eAAa,CAAA,CAAA,EAAA,CAAA,oBAA4B,CAAA,CAAA,gBAAA,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;gDACV,CAAA,CAAA,EAAA,CAAA,iCAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;AAC/B,CAAA;AACA;AAEL;;AAEK;AACA;AAEL;AACQ,4BAAwB,GAAA,QAAA,IAAA,IAAA,eAAA,CAAA,IAAA,IAAA;AAC3B,EAAA,IAAA,CAAA,YAAA,CAAA,2BAAkB,CAAA,CAAA,EAAA,CAAA,2BAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAClB,EAAA,IAAA,CAAA,YAAA,CAAA,iBAA2B,CAAA,CAAA,EAAA,CAAA,iBAAc,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAC9C,EAAA,IAAA,CAAA,YAAyB,CAAA,cAAa,CAAA,CAAA,EAAA,CAAiB,cAAC,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;wCAClB,CAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AACjC,EAAA,IAAA,CAAA,YAAA,CAAA,kBAAkB,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAClB,EAAA,IAAA,CAAA,YAAA,CAAA,cAAgB,CAAU,CAAC,EAAA,CAAA,cAAc,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAE9C,EAAA,IAAA,CAAA,YAAuB,CAAA,WAAa,CAAA,CAAA,EAAA,CAAA,WAAgB,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;qCAChB,CAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAC/B,EAAA,IAAA,CAAA,YAAA,CAAA,eAAkB,CAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAClB,EAAA,IAAA,CAAA,YAAA,CAAA,4BAAuC,CAAC,CAAC,EAAA,CAAA,4BAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAE9C,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { interfaces } from 'inversify';
|
|
2
|
-
import {
|
|
3
|
-
export declare const contextServicesFromContainer: (container: interfaces.Container) =>
|
|
2
|
+
import { ServerContext } from 'common/server';
|
|
3
|
+
export declare const contextServicesFromContainer: (container: interfaces.Container) => Partial<ServerContext>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {TaggedType}from'@common-stack/core';import {SERVER_TYPES}from'common'
|
|
1
|
+
import {TaggedType}from'@common-stack/core';import {SERVER_TYPES}from'common/server';// import { ExtendedTokenAccountService } from '../services';
|
|
2
|
+
const contextServicesFromContainer = container => {
|
|
2
3
|
const services = {
|
|
3
4
|
extendedTokenAccountService: container.get(SERVER_TYPES.ExtendedTokenAccountService),
|
|
4
5
|
pubsub: container.get('PubSub'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-services-from-container.js","sources":["../../src/containers/context-services-from-container.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context-services-from-container.js","sources":["../../src/containers/context-services-from-container.ts"],"sourcesContent":[null],"names":[],"mappings":"qFAaA;AAEa,MAAA,4BAA4B,GAAG,SAAC,IAA2D;AACpG,EAAA,MAAA,WAAiB;+BACc,EAAA,aAAW,CAAC,YACvB,CAAA;AAEhB,IAAA,MAAA,EAAA,SAAiB,CAAA,GAAA,CAAC;AAClB,IAAA,cAAA,EAAA,SAAgB,CAAA,QAAU,CAAA,YAA0B,CAAA,cAAa,EAAA,UAAgB,CAAA,YAAW,CAAA;AAC5F,IAAA,WAAA,EAAA,SAAa,CAAA,QAAU,CAAA,YAAuB,CAAA,WAAa,EAAA,UAAa,CAAA,YAAW,CAAA;AACnF,IAAA,iBAAA,EAAA,SAAmB,CAAA,QAAU,CAAA,YACzB,CAAA,iBAAa,EAAA,UACb,CAAA,YAAW,CAAA;AAEf,IAAA,eAAA,EAAA,SAAiB,CAAA,QAAU,CAAA,YAA2B,CAAA,eAAa,EAAA,UAAiB,CAAA,YAAW,CAAA;AAC/F,IAAA,4BAAA,EAAA,SAA8B,CAAA,QAAU,CAAA,YACpC,CAAA,4BAAa,EAAA,UACb,CAAA,YAAW;;AAGnB,EAAA,OAAA;AACJ"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export declare const channelMemberResolvers: () => IResolvers
|
|
1
|
+
import { IResolverOptions } from '@common-stack/server-core';
|
|
2
|
+
import { IResolvers } from 'common/server';
|
|
3
|
+
export declare const channelMemberResolvers: (options: IResolverOptions) => IResolvers;
|
|
@@ -1,16 +1,41 @@
|
|
|
1
|
-
const channelMemberResolvers =
|
|
1
|
+
const channelMemberResolvers = options => ({
|
|
2
2
|
Channel: {
|
|
3
3
|
creator(src, args, {
|
|
4
|
-
accountService
|
|
4
|
+
accountService,
|
|
5
|
+
accountUserDataLoader
|
|
5
6
|
}) {
|
|
6
|
-
|
|
7
|
+
options.logger.trace('(Channel.creator) src.creator [%s]', src.creator);
|
|
8
|
+
// Check if creator exists and is not null/undefined before calling service
|
|
9
|
+
if (!src.creator || src.creator === null || src.creator === undefined) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
return accountUserDataLoader.load(src.creator.toString());
|
|
7
13
|
}
|
|
8
14
|
},
|
|
9
15
|
ChannelMember: {
|
|
16
|
+
id(src) {
|
|
17
|
+
// Handle both virtual 'id' and MongoDB '_id' fields
|
|
18
|
+
const memberId = src.id || src._id;
|
|
19
|
+
if (!memberId) {
|
|
20
|
+
// If neither exists, generate an id based on user and other properties
|
|
21
|
+
// This ensures we always have a unique identifier
|
|
22
|
+
if (src.user) {
|
|
23
|
+
return `${src.user.toString()}-${src.createdAt || Date.now()}`;
|
|
24
|
+
}
|
|
25
|
+
throw new Error('ChannelMember id is required but not provided');
|
|
26
|
+
}
|
|
27
|
+
return memberId.toString();
|
|
28
|
+
},
|
|
10
29
|
user(src, args, {
|
|
11
|
-
accountService
|
|
30
|
+
accountService,
|
|
31
|
+
accountUserDataLoader
|
|
12
32
|
}) {
|
|
13
|
-
|
|
33
|
+
options.logger.trace('(ChannelMember.user) src.user [%s]', src.user);
|
|
34
|
+
// Check if user exists and is not null/undefined before calling service
|
|
35
|
+
if (!src.user || src.user === null || src.user === undefined) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return accountUserDataLoader.load(src.user.toString());
|
|
14
39
|
}
|
|
15
40
|
},
|
|
16
41
|
Query: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-member.js","sources":["../../../src/graphql/resolvers/channel-member.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channel-member.js","sources":["../../../src/graphql/resolvers/channel-member.ts"],"sourcesContent":[null],"names":[],"mappings":"MAIa,sBAAsB,GAAG,OAA0B,KAAgB;AAC5E,EAAA,OAAA,EAAO;WACI,CAAA,GAAA,MAAM,EAAA;oBACD;;AAGR,KAAA,EAAA;AACI,MAAA,OAAA,CAAA,MAAA,CAAA,MAAW,oCAAC,EAAA,GAAA,CAAA,OAAA,CAAA;;cAGT,CAAA,OAAA,IAAA,GAAA,CAAA,OAAA,KAAsB,IAAK,IAAI,GAAA,CAAA,OAAQ,KAAQ,SAAwC,EAAA;QAClG,OAAC,IAAA;AACJ;AACD,MAAA,OAAA,qBAAe,CAAA,IAAA,CAAA,GAAA,CAAA,OAAA,CAAA,QAAA,EAAA,CAAA;AACX;;eAEU,EAAA;YACN;;oBAEsD,GAAA,GAAA,CAAA,EAAA,IAAA,GAAA,CAAA,GAAA;AAClD,MAAA,IAAA,CAAA,QAAA,EAAO;AACH;;AAEJ,QAAA,IAAA,GAAA,CAAA,IAAA,EAAM;iBACT,CAAA,EAAA,GAAA,CAAA,IAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA,GAAA,CAAA,SAAA,IAAA,IAAA,CAAA,GAAA,EAAA,CAAA,CAAA;AACD;QACJ,MAAC,IAAA,KAAA,CAAA,+CAAA,CAAA;;aAEU,QAAO,CAAA,QAAM,EAAA;;AAGpB,IAAA,IAAA,CAAA,GAAA,EAAA,IAAQ,EAAA;AACJ,MAAA,cAAA;;;aAIP,CAAA,MAAA,CAAA,KAAA,CAAA,oCAAA,EAAA,GAAA,CAAA,IAAA,CAAA;AACJ;AACD,MAAA,KAAO,GAAE,CAAA,IAAA,IAAA,GAAA,CAAA,IAAA,KAAA,IAAA,IAAA,GAAA,CAAA,IAAA,KAAA,SAAA,EAAA;AACT,QAAA,OAAY,IAAA;AACf;;;;;;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export declare const channelResolvers: () => IResolvers
|
|
1
|
+
import { IResolverOptions } from '@common-stack/server-core';
|
|
2
|
+
import { IResolvers } from 'common/server';
|
|
3
|
+
export declare const channelResolvers: (options: IResolverOptions) => IResolvers;
|
|
@@ -1,9 +1,24 @@
|
|
|
1
|
-
import {RoomType}from'common';const channelResolvers =
|
|
1
|
+
import {RoomType}from'common/server';const channelResolvers = options => ({
|
|
2
2
|
Channel: {
|
|
3
3
|
creator(src, args, {
|
|
4
4
|
accountService
|
|
5
5
|
}) {
|
|
6
|
+
options.logger.trace('(Channel.creator) src.creator [%s]', src.creator);
|
|
7
|
+
// Check if creator exists and is not null/undefined before calling service
|
|
8
|
+
if (!src.creator || src.creator === null || src.creator === undefined) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
6
11
|
return accountService.findAccountById(src.creator.toString());
|
|
12
|
+
},
|
|
13
|
+
lastMessage(src, args, {
|
|
14
|
+
postService
|
|
15
|
+
}) {
|
|
16
|
+
options.logger.trace('(Channel.lastMessage) src.id [%s]', src.id);
|
|
17
|
+
// Check if src.id exists before calling service
|
|
18
|
+
if (!src.id || src.id === null || src.id === undefined) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return postService.getLastMessage(src.id);
|
|
7
22
|
}
|
|
8
23
|
},
|
|
9
24
|
Query: {
|
|
@@ -13,27 +28,47 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
13
28
|
channelService,
|
|
14
29
|
userContext
|
|
15
30
|
}) {
|
|
31
|
+
options.logger.trace('(Query.channelByName) name [%s]', name);
|
|
32
|
+
if (!name) {
|
|
33
|
+
options.logger.warn('Missing channel name');
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
16
36
|
return channelService.getByName(name);
|
|
17
|
-
// return channelService.getByName(userContext.teamId, name) as Promise<IChannel>;
|
|
37
|
+
// return channelService.getByName(userContext.teamId, name) as unknown as Promise<IChannel>;
|
|
18
38
|
},
|
|
19
39
|
channels(src, _, {
|
|
20
40
|
channelService,
|
|
21
41
|
userContext
|
|
22
42
|
}) {
|
|
43
|
+
options.logger.trace('(Query.channels) userContext [%j]', {
|
|
44
|
+
accountId: userContext.accountId,
|
|
45
|
+
teamId: userContext.teamId,
|
|
46
|
+
orgId: userContext.orgId
|
|
47
|
+
});
|
|
23
48
|
const {
|
|
24
49
|
accountId,
|
|
25
50
|
teamId,
|
|
26
51
|
orgId
|
|
27
52
|
} = userContext;
|
|
53
|
+
if (!accountId || !teamId) {
|
|
54
|
+
options.logger.warn('Missing required user context');
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
28
57
|
return channelService.getChannels(teamId, accountId, false, new Date().getTime(), orgId);
|
|
29
58
|
},
|
|
30
|
-
channelsByUser(src, args, {
|
|
59
|
+
async channelsByUser(src, args, {
|
|
31
60
|
channelService,
|
|
32
61
|
userContext
|
|
33
62
|
}) {
|
|
63
|
+
options.logger.trace('(Query.channelsByUser) args [%j]', args);
|
|
34
64
|
const {
|
|
35
65
|
accountId
|
|
36
66
|
} = userContext;
|
|
67
|
+
console.log('accountId', accountId);
|
|
68
|
+
if (!accountId) {
|
|
69
|
+
options.logger.warn('Missing accountId in user context');
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
37
72
|
const {
|
|
38
73
|
criteria,
|
|
39
74
|
role,
|
|
@@ -41,25 +76,113 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
41
76
|
} = args || {
|
|
42
77
|
criteria: {}
|
|
43
78
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
79
|
+
console.log('criteria', criteria);
|
|
80
|
+
console.log('role', role);
|
|
81
|
+
try {
|
|
82
|
+
// Check if Service type is included in the query
|
|
83
|
+
const includesService = criteria?.type === RoomType.Service || Array.isArray(criteria?.type) && criteria.type.includes(RoomType.Service) || criteria?.type?.$in && criteria.type.$in.includes(RoomType.Service);
|
|
84
|
+
if (includesService) {
|
|
85
|
+
// If Service type is included, fetch SERVICE and non-SERVICE channels separately
|
|
86
|
+
const {
|
|
87
|
+
type,
|
|
88
|
+
...restCriteria
|
|
89
|
+
} = criteria;
|
|
90
|
+
// Build non-service types from original query
|
|
91
|
+
let nonServiceTypes;
|
|
92
|
+
if (Array.isArray(type)) {
|
|
93
|
+
nonServiceTypes = type.filter(t => t !== RoomType.Service);
|
|
94
|
+
} else if (type?.$in) {
|
|
95
|
+
nonServiceTypes = type.$in.filter(t => t !== RoomType.Service);
|
|
96
|
+
} else {
|
|
97
|
+
// Single type that's not Service (shouldn't happen in this branch but for safety)
|
|
98
|
+
nonServiceTypes = type !== RoomType.Service ? [type] : [];
|
|
99
|
+
}
|
|
100
|
+
// Fetch SERVICE channels separately (no orgName restriction)
|
|
101
|
+
const serviceChannels = await channelService.getAll({
|
|
102
|
+
...rest,
|
|
103
|
+
criteria: {
|
|
104
|
+
type: RoomType.Service
|
|
54
105
|
}
|
|
106
|
+
});
|
|
107
|
+
// Fetch non-SERVICE channels separately (with orgName and member restrictions)
|
|
108
|
+
let otherChannels = [];
|
|
109
|
+
if (nonServiceTypes.length > 0) {
|
|
110
|
+
otherChannels = await channelService.getAll({
|
|
111
|
+
...rest,
|
|
112
|
+
criteria: {
|
|
113
|
+
...restCriteria,
|
|
114
|
+
type: nonServiceTypes.length === 1 ? nonServiceTypes[0] : {
|
|
115
|
+
$in: nonServiceTypes
|
|
116
|
+
},
|
|
117
|
+
members: criteria?.members ?? {
|
|
118
|
+
$elemMatch: {
|
|
119
|
+
user: accountId,
|
|
120
|
+
...(role ? {
|
|
121
|
+
roles: role
|
|
122
|
+
} : {})
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
// Sort each group separately
|
|
129
|
+
const sortedServiceChannels = serviceChannels.sort((a, b) => (a.title || '').localeCompare(b.title || ''));
|
|
130
|
+
const sortedOtherChannels = otherChannels.sort((a, b) => {
|
|
131
|
+
const aTime = a.updatedAt ? new Date(a.updatedAt).getTime() : 0;
|
|
132
|
+
const bTime = b.updatedAt ? new Date(b.updatedAt).getTime() : 0;
|
|
133
|
+
return bTime - aTime;
|
|
134
|
+
});
|
|
135
|
+
options.logger.trace('SERVICE channels count: %d', sortedServiceChannels.length);
|
|
136
|
+
options.logger.trace('Other channels count: %d', sortedOtherChannels.length);
|
|
137
|
+
if (sortedServiceChannels.length > 0) {
|
|
138
|
+
options.logger.trace('First SERVICE channel: %s', sortedServiceChannels[0].title);
|
|
55
139
|
}
|
|
140
|
+
// GUARANTEE: SERVICE channels first, then others
|
|
141
|
+
const finalResult = [...sortedServiceChannels, ...sortedOtherChannels];
|
|
142
|
+
options.logger.trace('Final result order: %j', finalResult.map(ch => `${ch.type}: ${ch.title}`));
|
|
143
|
+
return finalResult;
|
|
144
|
+
} else {
|
|
145
|
+
// No Service type - apply member filter to all channels
|
|
146
|
+
const querycriteria = {
|
|
147
|
+
...criteria,
|
|
148
|
+
members: criteria?.members ?? {
|
|
149
|
+
$elemMatch: {
|
|
150
|
+
user: accountId,
|
|
151
|
+
...(role ? {
|
|
152
|
+
roles: role
|
|
153
|
+
} : {})
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
const results = await channelService.getAll({
|
|
158
|
+
...rest,
|
|
159
|
+
criteria: querycriteria
|
|
160
|
+
});
|
|
161
|
+
// Sort results to put SERVICE channels first
|
|
162
|
+
return results.sort((a, b) => {
|
|
163
|
+
// SERVICE channels always come first
|
|
164
|
+
if (a.type === RoomType.Service && b.type !== RoomType.Service) return -1;
|
|
165
|
+
if (a.type !== RoomType.Service && b.type === RoomType.Service) return 1;
|
|
166
|
+
// If both are SERVICE channels, sort by title/name
|
|
167
|
+
if (a.type === RoomType.Service && b.type === RoomType.Service) {
|
|
168
|
+
return (a.title || '').localeCompare(b.title || '');
|
|
169
|
+
}
|
|
170
|
+
// For non-SERVICE channels, sort by updatedAt (most recent first)
|
|
171
|
+
const aTime = a.updatedAt ? new Date(a.updatedAt).getTime() : 0;
|
|
172
|
+
const bTime = b.updatedAt ? new Date(b.updatedAt).getTime() : 0;
|
|
173
|
+
return bTime - aTime;
|
|
174
|
+
});
|
|
56
175
|
}
|
|
57
|
-
})
|
|
176
|
+
} catch (error) {
|
|
177
|
+
options.logger.error('Error in channelsByUser: %o', error);
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
58
180
|
},
|
|
59
181
|
supportServiceChannels(src, args, {
|
|
60
182
|
channelService,
|
|
61
183
|
userContext
|
|
62
184
|
}) {
|
|
185
|
+
options.logger.trace('(Query.supportServiceChannels) args [%j]', args);
|
|
63
186
|
const {
|
|
64
187
|
accountId
|
|
65
188
|
} = userContext;
|
|
@@ -70,12 +193,17 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
70
193
|
} = args || {
|
|
71
194
|
criteria: {}
|
|
72
195
|
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
196
|
+
try {
|
|
197
|
+
return channelService.getAll({
|
|
198
|
+
...rest,
|
|
199
|
+
criteria: {
|
|
200
|
+
...criteria
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
} catch (error) {
|
|
204
|
+
options.logger.error('Error in supportServiceChannels: %o', error);
|
|
205
|
+
return [];
|
|
206
|
+
}
|
|
79
207
|
},
|
|
80
208
|
directChannel(src, {
|
|
81
209
|
id
|
|
@@ -83,6 +211,15 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
83
211
|
channelService,
|
|
84
212
|
userContext
|
|
85
213
|
}) {
|
|
214
|
+
options.logger.trace('(Query.directChannel) id [%s]', id);
|
|
215
|
+
if (!id) {
|
|
216
|
+
options.logger.warn('Missing channel id');
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
if (!userContext.accountId) {
|
|
220
|
+
options.logger.warn('Missing accountId in user context');
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
86
223
|
return channelService.get({
|
|
87
224
|
criteria: {
|
|
88
225
|
id,
|
|
@@ -97,6 +234,11 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
97
234
|
channelService,
|
|
98
235
|
userContext
|
|
99
236
|
}) {
|
|
237
|
+
options.logger.trace('(Query.viewChannelDetail) id [%s]', id);
|
|
238
|
+
if (!id) {
|
|
239
|
+
options.logger.warn('Missing channel id');
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
100
242
|
return channelService.get(id);
|
|
101
243
|
}
|
|
102
244
|
},
|
|
@@ -110,27 +252,49 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
110
252
|
channelService,
|
|
111
253
|
userContext
|
|
112
254
|
}) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
const formatedName = name[0].toUpperCase() + name.slice(1).toLowerCase();
|
|
119
|
-
const title = formatedName?.replace(/-/g, ' ') ?? '';
|
|
120
|
-
// const channelDetail = await channelService.getByName(userContext.teamId, title);
|
|
121
|
-
const channelDetail = await channelService.getByName(title);
|
|
122
|
-
if (channelDetail) return;
|
|
123
|
-
const channel = channelService.saveChannel({
|
|
124
|
-
type: type || RoomType.Channel,
|
|
125
|
-
orgName: orgId,
|
|
126
|
-
creator: accountId,
|
|
127
|
-
title: title,
|
|
128
|
-
displayName: name?.toLowerCase(),
|
|
129
|
-
topic: name?.toLowerCase(),
|
|
130
|
-
team: team || teamId,
|
|
131
|
-
description
|
|
255
|
+
options.logger.trace('(Mutation.createChannel) args [%j]', {
|
|
256
|
+
name,
|
|
257
|
+
description,
|
|
258
|
+
type,
|
|
259
|
+
team
|
|
132
260
|
});
|
|
133
|
-
|
|
261
|
+
try {
|
|
262
|
+
if (!name) {
|
|
263
|
+
options.logger.warn('Missing channel name');
|
|
264
|
+
throw new Error('Channel name is required');
|
|
265
|
+
}
|
|
266
|
+
if (!userContext.accountId) {
|
|
267
|
+
options.logger.warn('Missing accountId in user context');
|
|
268
|
+
throw new Error('User not authenticated');
|
|
269
|
+
}
|
|
270
|
+
const {
|
|
271
|
+
accountId,
|
|
272
|
+
teamId,
|
|
273
|
+
orgId
|
|
274
|
+
} = userContext;
|
|
275
|
+
const formatedName = name[0].toUpperCase() + name.slice(1).toLowerCase();
|
|
276
|
+
const title = formatedName?.replace(/-/g, ' ') ?? '';
|
|
277
|
+
// const channelDetail = await channelService.getByName(userContext.teamId, title);
|
|
278
|
+
const channelDetail = await channelService.getByName(title);
|
|
279
|
+
if (channelDetail) {
|
|
280
|
+
options.logger.warn('Channel already exists with name: %s', title);
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
const channel = channelService.saveChannel({
|
|
284
|
+
type: type || RoomType.Channel,
|
|
285
|
+
orgName: orgId,
|
|
286
|
+
creator: accountId,
|
|
287
|
+
title: title,
|
|
288
|
+
displayName: name?.toLowerCase(),
|
|
289
|
+
topic: name?.toLowerCase(),
|
|
290
|
+
team: team || teamId,
|
|
291
|
+
description
|
|
292
|
+
});
|
|
293
|
+
return channel;
|
|
294
|
+
} catch (error) {
|
|
295
|
+
options.logger.error('Error creating channel: %o', error);
|
|
296
|
+
throw error;
|
|
297
|
+
}
|
|
134
298
|
},
|
|
135
299
|
addMemberToChannel(src, {
|
|
136
300
|
channelId,
|
|
@@ -139,6 +303,11 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
139
303
|
channelService,
|
|
140
304
|
userContext
|
|
141
305
|
}) {
|
|
306
|
+
options.logger.trace('(Mutation.addMemberToChannel) channelId [%s], memberId [%s]', channelId, memberId);
|
|
307
|
+
if (!channelId || !memberId) {
|
|
308
|
+
options.logger.warn('Missing channelId or memberId');
|
|
309
|
+
throw new Error('Channel ID and Member ID are required');
|
|
310
|
+
}
|
|
142
311
|
return channelService.addMemberToChannel(channelId, memberId);
|
|
143
312
|
},
|
|
144
313
|
saveMembersToChannel(src, {
|
|
@@ -148,6 +317,11 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
148
317
|
channelService,
|
|
149
318
|
userContext
|
|
150
319
|
}) {
|
|
320
|
+
options.logger.trace('(Mutation.saveMembersToChannel) channelId [%s], membersIds [%j]', channelId, membersIds);
|
|
321
|
+
if (!channelId || !membersIds) {
|
|
322
|
+
options.logger.warn('Missing channelId or membersIds');
|
|
323
|
+
throw new Error('Channel ID and Members IDs are required');
|
|
324
|
+
}
|
|
151
325
|
return channelService.saveMembersToChannel({
|
|
152
326
|
membersIds,
|
|
153
327
|
channelId
|
|
@@ -161,23 +335,42 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
161
335
|
channelService,
|
|
162
336
|
userContext
|
|
163
337
|
}) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
338
|
+
options.logger.trace('(Mutation.createDirectChannel) receiver [%s], displayName [%s]', receiver, displayName);
|
|
339
|
+
try {
|
|
340
|
+
if (!receiver || !displayName) {
|
|
341
|
+
options.logger.warn('Missing receiver or displayName');
|
|
342
|
+
throw new Error('Receiver and display name are required');
|
|
343
|
+
}
|
|
344
|
+
if (!userContext.accountId || !userContext.orgId) {
|
|
345
|
+
options.logger.warn('Missing user context');
|
|
346
|
+
throw new Error('User context required');
|
|
347
|
+
}
|
|
348
|
+
const {
|
|
349
|
+
accountId,
|
|
350
|
+
orgId
|
|
351
|
+
} = userContext;
|
|
352
|
+
return channelService.createDirectChannel({
|
|
353
|
+
sender: accountId,
|
|
354
|
+
receiver: receiver,
|
|
355
|
+
displayName,
|
|
356
|
+
orgName: orgId,
|
|
357
|
+
channelOptions
|
|
358
|
+
});
|
|
359
|
+
} catch (error) {
|
|
360
|
+
options.logger.error('Error creating direct channel: %o', error);
|
|
361
|
+
throw error;
|
|
362
|
+
}
|
|
175
363
|
},
|
|
176
364
|
hideChannel(src, {
|
|
177
365
|
id
|
|
178
366
|
}, {
|
|
179
367
|
channelService
|
|
180
368
|
}) {
|
|
369
|
+
options.logger.trace('(Mutation.hideChannel) id [%s]', id);
|
|
370
|
+
if (!id) {
|
|
371
|
+
options.logger.warn('Missing channel id');
|
|
372
|
+
throw new Error('Channel ID is required');
|
|
373
|
+
}
|
|
181
374
|
return channelService.hideChannel(id);
|
|
182
375
|
},
|
|
183
376
|
leaveChannel(src, {
|
|
@@ -185,6 +378,11 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
185
378
|
}, {
|
|
186
379
|
channelService
|
|
187
380
|
}) {
|
|
381
|
+
options.logger.trace('(Mutation.leaveChannel) id [%s]', id);
|
|
382
|
+
if (!id) {
|
|
383
|
+
options.logger.warn('Missing channel id');
|
|
384
|
+
throw new Error('Channel ID is required');
|
|
385
|
+
}
|
|
188
386
|
return channelService.leaveChannel(id);
|
|
189
387
|
},
|
|
190
388
|
deleteChannel(src, {
|
|
@@ -192,6 +390,11 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
192
390
|
}, {
|
|
193
391
|
channelService
|
|
194
392
|
}) {
|
|
393
|
+
options.logger.trace('(Mutation.deleteChannel) id [%s]', id);
|
|
394
|
+
if (!id) {
|
|
395
|
+
options.logger.warn('Missing channel id');
|
|
396
|
+
throw new Error('Channel ID is required');
|
|
397
|
+
}
|
|
195
398
|
return channelService.deleteChannel(id);
|
|
196
399
|
},
|
|
197
400
|
viewChannel(src, {
|
|
@@ -200,6 +403,15 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
200
403
|
userContext,
|
|
201
404
|
channelService
|
|
202
405
|
}) {
|
|
406
|
+
options.logger.trace('(Mutation.viewChannel) id [%s], accountId [%s]', id, userContext.accountId);
|
|
407
|
+
if (!id) {
|
|
408
|
+
options.logger.warn('Missing channel id');
|
|
409
|
+
throw new Error('Channel ID is required');
|
|
410
|
+
}
|
|
411
|
+
if (!userContext.accountId) {
|
|
412
|
+
options.logger.warn('Missing accountId in user context');
|
|
413
|
+
throw new Error('User context required');
|
|
414
|
+
}
|
|
203
415
|
return channelService.viewChannel(id, userContext.accountId);
|
|
204
416
|
},
|
|
205
417
|
async sendNotificationOfUnreadMessages(src, {
|
|
@@ -208,8 +420,18 @@ import {RoomType}from'common';const channelResolvers = () => ({
|
|
|
208
420
|
}, {
|
|
209
421
|
messengerNotificationService
|
|
210
422
|
}) {
|
|
211
|
-
|
|
212
|
-
|
|
423
|
+
options.logger.trace('(Mutation.sendNotificationOfUnreadMessages) unit [%s], value [%s]', unit, value);
|
|
424
|
+
try {
|
|
425
|
+
if (!unit || value === undefined || value === null) {
|
|
426
|
+
options.logger.warn('Missing unit or value');
|
|
427
|
+
throw new Error('Unit and value are required');
|
|
428
|
+
}
|
|
429
|
+
await messengerNotificationService.sendNotificationOfUnreadMessages(unit, value);
|
|
430
|
+
return true;
|
|
431
|
+
} catch (error) {
|
|
432
|
+
options.logger.error('Error sending notification: %o', error);
|
|
433
|
+
return false;
|
|
434
|
+
}
|
|
213
435
|
}
|
|
214
436
|
}
|
|
215
437
|
});export{channelResolvers};//# sourceMappingURL=channel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sources":["../../../src/graphql/resolvers/channel.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channel.js","sources":["../../../src/graphql/resolvers/channel.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
getDeviceToken(src: IUserAccount, args: any, { extendedTokenAccountService, userContext, accountService }: {
|
|
5
|
-
extendedTokenAccountService: any;
|
|
6
|
-
userContext: any;
|
|
7
|
-
accountService: any;
|
|
8
|
-
}): Promise<any>;
|
|
9
|
-
getAccountByAuth0Id(_: any, { auth0Id }: {
|
|
10
|
-
auth0Id: any;
|
|
11
|
-
}, { extendedTokenAccountService, userContext, accountService }: {
|
|
12
|
-
extendedTokenAccountService: any;
|
|
13
|
-
userContext: any;
|
|
14
|
-
accountService: any;
|
|
15
|
-
}): Promise<any>;
|
|
16
|
-
};
|
|
17
|
-
Mutation: {
|
|
18
|
-
setDeviceToken(_: any, { deviceToken }: {
|
|
19
|
-
deviceToken: any;
|
|
20
|
-
}, { extendedTokenAccountService, userContext, accountService }: {
|
|
21
|
-
extendedTokenAccountService: any;
|
|
22
|
-
userContext: any;
|
|
23
|
-
accountService: any;
|
|
24
|
-
}): Promise<any>;
|
|
25
|
-
removeDeviceToken(_: any, { deviceToken }: {
|
|
26
|
-
deviceToken: any;
|
|
27
|
-
}, { extendedTokenAccountService, userContext }: {
|
|
28
|
-
extendedTokenAccountService: any;
|
|
29
|
-
userContext: any;
|
|
30
|
-
}): any;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
1
|
+
import { IResolverOptions } from '@common-stack/server-core';
|
|
2
|
+
import { IResolvers } from 'common/server';
|
|
3
|
+
export declare const resolver: (options: IResolverOptions) => IResolvers;
|