@messenger-box/platform-server 0.0.1-alpha.61 → 0.0.1-alpha.63

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/index.js CHANGED
@@ -402,7 +402,7 @@ const channelResolvers = () => ({
402
402
  },
403
403
  },
404
404
  Mutation: {
405
- createChannel(src, { name }, { channelService, userContext }) {
405
+ createChannel(src, { name, description }, { channelService, userContext }) {
406
406
  const { accountId, teamId } = userContext;
407
407
  return channelService.saveChannel({
408
408
  type: core_1.IRoomType.CHANNEL,
@@ -410,6 +410,7 @@ const channelResolvers = () => ({
410
410
  title: name,
411
411
  topic: name,
412
412
  team: teamId,
413
+ description: description,
413
414
  });
414
415
  },
415
416
  createDirectChannel(src, { receiver }, { channelService, userContext }) {
@@ -658,7 +659,7 @@ __webpack_require__.r(__webpack_exports__);
658
659
 
659
660
  "use strict";
660
661
  __webpack_require__.r(__webpack_exports__);
661
- /* harmony default export */ __webpack_exports__["default"] = ("type Channel implements IBaseRepo {\n id: String!\n title: String\n topic: String\n purpose: String\n team: AccountTeam\n lastPostAt: DateTime\n totalMsgCount: Int\n totalMsgCountRoot: Int\n creator: UserAccount\n members: [ChannelMember]\n\n createdAt: DateTime\n updatedAt: DateTime\n deletedAt: DateTime\n}\n\ntype ChannelUnread {\n teamId: String\n channelId: String\n msgCount: Int\n mentionCount: Int\n mentionCountRoot: Int\n msgCountRoot: Int\n notifyProps: AnyObject\n}\n\n\ninput ChannelFilterInput {\n nameFilter: String\n privacy: ChannelPrivacy\n joinedChannels: Boolean\n storyBy: ChannelSort\n}\n\ninput ChannelNameAndDirect {\n name: String!\n direct: Boolean!\n}\n\nenum ChannelSort {\n NAME\n NUMBER_OF_MESSAGES\n}\n\nenum ChannelPrivacy {\n PRIVATE\n PUBLIC\n ALL\n}\n\nenum RoomType {\n CHANNEL\n DIRECT\n GROUP\n PRIVATE\n VISITOR\n}\n\nextend type Query {\n channelByName(name: String!): Channel @addAccountContext @isAuthenticated\n channels(filter: ChannelFilterInput = {\n privacy: ALL,\n joinedChannels: false,\n sortyBy: NAME\n }): [Channel] @addAccountContext @isAuthenticated\n channelsByUser: [Channel] @addAccountContext @isAuthenticated\n directChannel(id: ID!): Channel @addAccountContext @isAuthenticated\n}\n\nextend type Mutation {\n createChannel(\n name: String!,\n receiver: ID!\n ): Channel @addAccountContext @isAuthenticated\n\n createDirectChannel(\n receiver: ID!\n ): Channel @addAccountContext @isAuthenticated\n\n hideChannel(id: ID!): Boolean @isAuthenticated\n\n leaveChannel(id: ID!): Boolean @isAuthenticated\n}\n");
662
+ /* harmony default export */ __webpack_exports__["default"] = ("type Channel implements IBaseRepo {\n id: String!\n title: String\n topic: String\n purpose: String\n description: String\n team: AccountTeam\n lastPostAt: DateTime\n totalMsgCount: Int\n totalMsgCountRoot: Int\n creator: UserAccount\n members: [ChannelMember]\n\n createdAt: DateTime\n updatedAt: DateTime\n deletedAt: DateTime\n}\n\ntype ChannelUnread {\n teamId: String\n channelId: String\n msgCount: Int\n mentionCount: Int\n mentionCountRoot: Int\n msgCountRoot: Int\n notifyProps: AnyObject\n}\n\n\ninput ChannelFilterInput {\n nameFilter: String\n privacy: ChannelPrivacy\n joinedChannels: Boolean\n storyBy: ChannelSort\n}\n\ninput ChannelNameAndDirect {\n name: String!\n direct: Boolean!\n}\n\nenum ChannelSort {\n NAME\n NUMBER_OF_MESSAGES\n}\n\nenum ChannelPrivacy {\n PRIVATE\n PUBLIC\n ALL\n}\n\nenum RoomType {\n CHANNEL\n DIRECT\n GROUP\n PRIVATE\n VISITOR\n}\n\nextend type Query {\n channelByName(name: String!): Channel @addAccountContext @isAuthenticated\n channels(filter: ChannelFilterInput = {\n privacy: ALL,\n joinedChannels: false,\n sortyBy: NAME\n }): [Channel] @addAccountContext @isAuthenticated\n channelsByUser: [Channel] @addAccountContext @isAuthenticated\n directChannel(id: ID!): Channel @addAccountContext @isAuthenticated\n}\n\nextend type Mutation {\n createChannel(\n name: String!,\n description:String!\n ): Channel @addAccountContext @isAuthenticated\n\n createDirectChannel(\n receiver: ID!\n ): Channel @addAccountContext @isAuthenticated\n\n hideChannel(id: ID!): Boolean @isAuthenticated\n\n leaveChannel(id: ID!): Boolean @isAuthenticated\n}\n");
662
663
 
663
664
  /***/ }),
664
665
 
@@ -1301,6 +1302,7 @@ const channelModelSchema = new mongoose_1.Schema({
1301
1302
  totalMsgCountRoot: { type: mongoose_1.Schema.Types.Number },
1302
1303
  team: { type: mongoose_1.Schema.Types.ObjectId, ref: 'team' },
1303
1304
  title: { type: mongoose_1.Schema.Types.String },
1305
+ description: { type: mongoose_1.Schema.Types.String },
1304
1306
  purpose: { type: mongoose_1.Schema.Types.String },
1305
1307
  creator: { type: mongoose_1.Schema.Types.ObjectId, ref: 'accounts' },
1306
1308
  }, common_options_1.commonModeSchemaOptions);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/constants/default-notify-props.ts","webpack:///./src/constants/index.ts","webpack:///./src/constants/query.constants.ts","webpack:///./src/constants/types.ts","webpack:///./src/containers/containers.ts","webpack:///./src/containers/context-services-from-container.ts","webpack:///./src/containers/index.ts","webpack:///./src/graphql/index.ts","webpack:///./src/graphql/resolvers/channel-member.ts","webpack:///./src/graphql/resolvers/channel.ts","webpack:///./src/graphql/resolvers/index.ts","webpack:///./src/graphql/resolvers/post-thread.ts","webpack:///./src/graphql/resolvers/post.ts","webpack:///./src/graphql/resolvers/primitive-resolvers.ts","webpack:///./src/graphql/resolvers/reaction.ts","webpack:///./src/graphql/schema/base.graphql","webpack:///./src/graphql/schema/channel-member.graphql","webpack:///./src/graphql/schema/channel.graphql","webpack:///./src/graphql/schema/index.ts","webpack:///./src/graphql/schema/post-thread.graphql","webpack:///./src/graphql/schema/post.graphql","webpack:///./src/graphql/schema/preferences.graphql","webpack:///./src/graphql/schema/reaction.graphql","webpack:///./src/graphql/schema/users.graphql","webpack:///./src/index.ts","webpack:///./src/module.ts","webpack:///./src/services/base-service.ts","webpack:///./src/services/channel-service.ts","webpack:///./src/services/index.ts","webpack:///./src/services/post-service.ts","webpack:///./src/services/post-thread-service.ts","webpack:///./src/services/reaction-service.ts","webpack:///./src/store/index.ts","webpack:///./src/store/models/channel.ts","webpack:///./src/store/models/common-options.ts","webpack:///./src/store/models/index.ts","webpack:///./src/store/models/post-thread.ts","webpack:///./src/store/models/post.ts","webpack:///./src/store/models/reaction.ts","webpack:///./src/store/repositories/base-repository.ts","webpack:///./src/store/repositories/channel-repository.ts","webpack:///./src/store/repositories/index.ts","webpack:///./src/store/repositories/post-repository.ts","webpack:///./src/store/repositories/post-thread-repository.ts","webpack:///./src/store/repositories/reaction-repository.ts","webpack:///external \"@adminide-stack/account-api-server\"","webpack:///external \"@adminide-stack/core\"","webpack:///external \"@common-stack/server-core\"","webpack:///external \"@messenger-box/core\"","webpack:///external \"graphql-iso-date\"","webpack:///external \"inversify\"","webpack:///external \"lodash\"","webpack:///external \"mongoose\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","export const DEFAULT_NOTIFY_PROPS = {\n desktopNotifyProp: true,\n markUnreadNotifyProp: true,\n pushNotifyProp: true,\n emailNotifyProp: true,\n ignoreChannelMentionsNotifyProp: true,\n};\n","export * from './types';\nexport * from './query.constants';\nexport * from './default-notify-props';\n","export enum PAGINATION_OPTIONS {\n limit = 10,\n skip = 0,\n}\n\nexport const DEFAULT_SORTING = {\n id: 'asc',\n};\n","export const TYPES = {\n BaseRepository: Symbol('BaseRepository'),\n BaseService: Symbol('BaseService'),\n\n ChannelRepository: Symbol('ChannelRepository'),\n PostRepository: Symbol('PostRepository'),\n PostThreadRepository: Symbol('PostThreadRepository'),\n ReactionRepository: Symbol('ReactionRepository'),\n\n ChannelService: Symbol('ChannelService'),\n PostService: Symbol('PostService'),\n PostThreadService: Symbol('PostThreadService'),\n ReactionService: Symbol('ReactionService'),\n};\n","import { ContainerModule, interfaces } from 'inversify';\nimport { ChannelService, PostService, PostThreadService, ReactionService } from '../services';\nimport { TYPES } from '../constants';\nimport {\n IPostService,\n IPostRepository,\n IPostThreadService,\n IPostThreadRepository,\n IChannelRepository,\n IChannelService,\n IReactionService,\n IReactionRepository,\n} from '../interfaces';\nimport { ChannelRepository, PostRepository, PostThreadRepository, ReactionRepository } from '../store';\n\n/**\n * Local services and exposed micro services to serve remote connections.\n * Operates within in the Gateway.\n *\n * @param settings Settings\n */\nexport const localContainerModule: (settings) => interfaces.ContainerModule = (settings) =>\n new ContainerModule((bind: interfaces.Bind) => {\n bind<IChannelRepository>(TYPES.ChannelRepository)\n .to(ChannelRepository)\n .inSingletonScope()\n .whenTargetNamed('proxy');\n bind<IPostRepository>(TYPES.PostRepository).to(PostRepository).inSingletonScope().whenTargetNamed('proxy');\n bind<IPostThreadRepository>(TYPES.PostThreadRepository)\n .to(PostThreadRepository)\n .inSingletonScope()\n .whenTargetNamed('proxy');\n bind<IReactionRepository>(TYPES.ReactionRepository)\n .to(ReactionRepository)\n .inSingletonScope()\n .whenTargetNamed('proxy');\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n bind<IChannelService>(TYPES.ChannelService).to(ChannelService).inSingletonScope().whenTargetNamed('proxy');\n bind<IPostService>(TYPES.PostService).to(PostService).inSingletonScope().whenTargetNamed('proxy');\n bind<IPostThreadService>(TYPES.PostThreadService)\n .to(PostThreadService)\n .inSingletonScope()\n .whenTargetNamed('proxy');\n\n bind<IReactionService>(TYPES.ReactionService).to(ReactionService).inSingletonScope().whenTargetNamed('proxy');\n });\n\n/**\n * Operates external to the Gateway. Usually a broker listen to calls and invoke this service\n * local to the micro container.\n *\n * @param settings Settings\n */\nexport const externalContainerModule: (settings) => interfaces.ContainerModule = (settings) =>\n new ContainerModule((bind: interfaces.Bind) => {\n bind<IChannelRepository>(TYPES.ChannelRepository)\n .to(ChannelRepository)\n .inSingletonScope()\n .whenTargetIsDefault();\n bind<IPostRepository>(TYPES.PostRepository).to(PostRepository).inSingletonScope().whenTargetIsDefault();\n\n bind<IPostThreadRepository>(TYPES.PostThreadRepository)\n .to(PostThreadRepository)\n .inSingletonScope()\n .whenTargetIsDefault();\n\n bind<IReactionRepository>(TYPES.ReactionRepository)\n .to(ReactionRepository)\n .inSingletonScope()\n .whenTargetIsDefault();\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n bind<IChannelService>(TYPES.ChannelService).to(ChannelService).inSingletonScope().whenTargetIsDefault();\n\n bind<IPostService>(TYPES.PostService).to(PostService).inSingletonScope().whenTargetIsDefault();\n\n bind<IPostThreadService>(TYPES.PostThreadService)\n .to(PostThreadService)\n .inSingletonScope()\n .whenTargetIsDefault();\n\n bind<IReactionService>(TYPES.ReactionService).to(ReactionService).inSingletonScope().whenTargetIsDefault();\n });\n","import { interfaces } from 'inversify';\nimport { IChannelService, IPostService, IPostThreadService, IReactionService, IServices } from '../interfaces';\nimport { TYPES } from '../constants';\n\nexport const contextServicesFromContainer = (container: interfaces.Container): IServices => ({\n channelService: container.get<IChannelService>(TYPES.ChannelService),\n postService: container.get<IPostService>(TYPES.PostService),\n postThreadService: container.get<IPostThreadService>(TYPES.PostThreadService),\n reactionService: container.get<IReactionService>(TYPES.ReactionService),\n});\n","export * from './containers';\nexport * from './context-services-from-container';\n","export * from './schema';\nexport * from './resolvers';\n","import { IResolvers } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const channelMemberResolvers = (): IResolvers<IContext> => ({\n Query: {},\n Mutation: {},\n});\n","import { IChannel, IResolvers, IRoomType } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const channelResolvers = (): IResolvers<IContext> => ({\n Query: {\n channelByName(src, { name }, { channelService, userContext }) {\n return channelService.getByName(userContext.teamId, name) as Promise<IChannel>;\n },\n channels(src, _, { channelService, userContext }) {\n const { accountId, teamId } = userContext;\n return channelService.getChannels(teamId, accountId, false, new Date().getTime()) as Promise<IChannel[]>;\n },\n channelsByUser(src, _, { channelService, userContext }) {\n const { accountId } = userContext;\n return channelService.getAll({\n criteria: {\n creator: accountId,\n },\n }) as Promise<IChannel[]>;\n },\n directChannel(src, { id }, { channelService, userContext }) {\n return channelService.get({\n criteria: {\n id,\n user: userContext.accountId,\n type: IRoomType.DIRECT,\n },\n }) as Promise<IChannel>;\n },\n },\n Mutation: {\n createChannel(src, { name }, { channelService, userContext }) {\n const { accountId, teamId } = userContext;\n return channelService.saveChannel({\n type: IRoomType.CHANNEL,\n creator: accountId,\n title: name,\n topic: name,\n team: teamId,\n }) as Promise<IChannel>;\n },\n createDirectChannel(src, { receiver }, { channelService, userContext }) {\n const { accountId } = userContext;\n return channelService.createDirectChannel({\n sender: accountId,\n receiver,\n }) as Promise<IChannel>;\n },\n hideChannel(src, { id }, { channelService }) {\n return channelService.hideChannel(id);\n },\n leaveChannel(src, { id }, { channelService }) {\n return channelService.leaveChannel(id);\n },\n },\n});\n","import { primitiveResolvers } from './primitive-resolvers';\nimport { channelResolvers } from './channel';\nimport { channelMemberResolvers } from './channel-member';\nimport { postResolvers } from './post';\nimport { postThreadResolvers } from './post-thread';\nimport { reactionResolvers } from './reaction';\n\nexport const messengerResolvers = [\n primitiveResolvers,\n channelResolvers,\n channelMemberResolvers,\n postResolvers,\n postThreadResolvers,\n reactionResolvers,\n];\n","import { IResolvers } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const postThreadResolvers = (): IResolvers<IContext> => ({\n Query: {},\n Mutation: {},\n});\n","import { IResolvers, ISortEnum } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const postResolvers = (): IResolvers<IContext> => ({\n Post: {\n editedBy(src, args, { accountService }) {\n return accountService.findAccountById(src.editedBy.toString());\n },\n author(src, args, { accountService }) {\n const author = src.author?.toString();\n if (author) {\n return accountService.findAccountById(author);\n }\n return accountService.findAccountById(src.editedBy.toString());\n },\n channel(src, args, { channelService }) {\n return channelService.get(src.channel.toString());\n },\n },\n Query: {\n messages(src, { channelId, limit, skip }, { postService, userContext }) {\n return postService.getAllWithCount({\n criteria: {\n channel: channelId,\n },\n limit,\n skip,\n sort: {\n key: 'createdAt',\n value: ISortEnum.ASC,\n },\n });\n },\n },\n Mutation: {\n deleteMessage(src, { messageId }, { postService }) {\n const { channelId, messageId: id } = messageId;\n return postService.delete({\n channel: channelId,\n id,\n });\n },\n editMessage(src, { messageId, messageInput }, { postService, userContext }) {\n return postService.update(messageId.messageId, {\n message: messageInput.content,\n editedBy: userContext.accountId,\n channel: messageId.channelId,\n } as any);\n },\n sendMessage(src, { channelId, messageInput }, { postService, userContext }) {\n return postService.create({\n channel: channelId,\n message: messageInput.content,\n editedBy: userContext.accountId,\n author: userContext.accountId,\n } as any);\n },\n // pinMessage(src , { messageId , messageInput} , {postService , userContext}) {\n // return postService.update(messageId.messageId, {\n // isPinned : messageInput.isPinned,\n // pinnedBy : userContext.accountId,\n // channel : messageId.channelId\n // } as any)\n // }\n },\n});\n","import { GraphQLDate, GraphQLTime, GraphQLDateTime } from 'graphql-iso-date';\n\nexport const primitiveResolvers = () => ({\n Date: GraphQLDate,\n Time: GraphQLTime,\n DateTime: GraphQLDateTime,\n});\n","import { IResolvers } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const reactionResolvers = (): IResolvers<IContext> => ({\n Query: {\n getPostReactions(src, { message }, { reactionService, userContext }) {\n return reactionService.getAll({\n criteria: {\n post: message,\n user: userContext.accountId,\n },\n });\n },\n },\n Mutation: {\n addReactionToMessage(src, { reaction }, { reactionService, userContext }) {\n return reactionService.create({\n ...reaction,\n user: userContext.accountId,\n });\n },\n updateReactionToMessage(src, { reaction, id }, { reactionService }) {\n return reactionService.update(id, { reaction });\n },\n removeReactionFromMessage(src, { id }, { reactionService }) {\n return reactionService.delete(id);\n },\n },\n});\n","export default \"interface IBaseRepo {\\n createdAt: DateTime\\n updatedAt: DateTime\\n deletedAt: DateTime\\n}\\n\\ninput Sort{\\n key: String!,\\n value: SortEnum!,\\n}\\n\\nenum SortEnum{\\n ASC,\\n DESC\\n}\";","export default \"type ChannelMember {\\n id: ID!\\n user: String!\\n roles: String\\n msgCount: Int\\n mentionCount: Int\\n mentionCountRoot: Int\\n msgCountRoot: Int\\n notifyProps: AnyObject\\n explicitRoles: String\\n schemeAdmin: Boolean\\n lastViewedAt: Int\\n updatedAt: DateTime,\\n CreatedAt: DateTime,\\n}\\n\\ninput ChannelMemberInput {\\n userId: String!\\n roles: String\\n notifyProps: AnyObject\\n schemeGuest: Boolean\\n schemeUser: Boolean\\n schemeAdmin: Boolean\\n explicitRoles: String\\n}\\n\";","export default \"type Channel implements IBaseRepo {\\n id: String!\\n title: String\\n topic: String\\n purpose: String\\n team: AccountTeam\\n lastPostAt: DateTime\\n totalMsgCount: Int\\n totalMsgCountRoot: Int\\n creator: UserAccount\\n members: [ChannelMember]\\n\\n createdAt: DateTime\\n updatedAt: DateTime\\n deletedAt: DateTime\\n}\\n\\ntype ChannelUnread {\\n teamId: String\\n channelId: String\\n msgCount: Int\\n mentionCount: Int\\n mentionCountRoot: Int\\n msgCountRoot: Int\\n notifyProps: AnyObject\\n}\\n\\n\\ninput ChannelFilterInput {\\n nameFilter: String\\n privacy: ChannelPrivacy\\n joinedChannels: Boolean\\n storyBy: ChannelSort\\n}\\n\\ninput ChannelNameAndDirect {\\n name: String!\\n direct: Boolean!\\n}\\n\\nenum ChannelSort {\\n NAME\\n NUMBER_OF_MESSAGES\\n}\\n\\nenum ChannelPrivacy {\\n PRIVATE\\n PUBLIC\\n ALL\\n}\\n\\nenum RoomType {\\n CHANNEL\\n DIRECT\\n GROUP\\n PRIVATE\\n VISITOR\\n}\\n\\nextend type Query {\\n channelByName(name: String!): Channel @addAccountContext @isAuthenticated\\n channels(filter: ChannelFilterInput = {\\n privacy: ALL,\\n joinedChannels: false,\\n sortyBy: NAME\\n }): [Channel] @addAccountContext @isAuthenticated\\n channelsByUser: [Channel] @addAccountContext @isAuthenticated\\n directChannel(id: ID!): Channel @addAccountContext @isAuthenticated\\n}\\n\\nextend type Mutation {\\n createChannel(\\n name: String!,\\n receiver: ID!\\n ): Channel @addAccountContext @isAuthenticated\\n\\n createDirectChannel(\\n receiver: ID!\\n ): Channel @addAccountContext @isAuthenticated\\n\\n hideChannel(id: ID!): Boolean @isAuthenticated\\n\\n leaveChannel(id: ID!): Boolean @isAuthenticated\\n}\\n\";","import baseSchema from './base.graphql';\nimport channelSchema from './channel.graphql';\nimport channelMember from './channel-member.graphql';\nimport postSchema from './post.graphql';\nimport postThread from './post-thread.graphql';\nimport preferencesSchema from './preferences.graphql';\nimport usersSchema from './users.graphql';\nimport reactionSchema from './reaction.graphql';\n\nconst schema = [\n baseSchema,\n channelSchema,\n channelMember,\n postSchema,\n postThread,\n preferencesSchema,\n usersSchema,\n reactionSchema,\n].join('\\n');\n\nexport { schema };\n","export default \"type PostThread{\\n post: Post,\\n channel: Channel,\\n replyCount: Int,\\n lastReplyAt: DateTime,\\n participants:[UserAccount]\\n}\\n\";","export default \"type Post implements IBaseRepo {\\n id: String\\n author: UserAccount\\n channel: Channel\\n\\n rootId: String\\n parentId: String\\n originalId: String\\n\\n \\\"\\\"\\\" Post sent by server e.g. User joined channel \\\"\\\"\\\"\\n fromServer: Boolean\\n\\n message: String\\n type: String\\n props: AnyObject\\n hashTags: String\\n\\n filenames: [String]\\n fields: [String]\\n reactions: [Reaction]\\n\\n editedBy: UserAccount\\n createdAt: DateTime\\n updatedAt: DateTime\\n deletedAt: DateTime\\n}\\n\\ninput MessageInput {\\n content: String!\\n userRef: [String] #userId\\n channelRef: [String] #channelId\\n}\\n\\ninput MessageIdentifier {\\n channelId: String!\\n messageId: String!\\n}\\n\\ntype PostsWithCursor {\\n cursor: String\\n channel: Channel\\n posts: [Post]\\n}\\n\\ntype Messages{\\n totalCount: Int,\\n data:[Post]\\n}\\n\\n\\nextend type Query {\\n messages(\\n channelId: ID,\\n# channelName: String,\\n# directTo: ID,\\n limit: Int,\\n skip: Int,\\n# searchRegex: String,\\n# excludeServer: Boolean\\n ): Messages! @isAuthenticated @addAccountContext\\n}\\n\\nextend type Mutation {\\n deleteMessage(messageId: MessageIdentifier!): Boolean @isAuthenticated\\n\\n editMessage(messageId: MessageIdentifier!, messageInput: MessageInput!): Post @isAuthenticated @addAccountContext\\n\\n sendMessage(channelId: String!, messageInput: MessageInput!): Post @isAuthenticated @addAccountContext\\n}\\n\\nextend type Subscription {\\n chatMessageAdded(channelId: String, directTo: String): Post @isAuthenticated @addAccountContext\\n}\\n\";","export default \"\\n\\ntype ChannelSettings {\\n disableNotification: Boolean\\n audio: String\\n desktop: String\\n duration: Int\\n mobile: String\\n mail: String\\n hideUnreadRoomStatus : Boolean\\n unreadTrayIconAlret: String\\n}\\n\\nextend type Preference_Account {\\n language: String\\n notificationDuration: Float\\n unreadTrayIconAlert: Boolean\\n useEmojis: Boolean\\n convertAsciiToEmoji: Boolean\\n autoLoadImages: Boolean\\n saveMobileBandwith: Boolean\\n collapseEmbeddedMeida: Boolean\\n unreadRoomsMode: Boolean\\n hideUserName: Boolean\\n hideRoles: Boolean\\n hideRightSideBarWithClick: Boolean\\n hideAvatars: Boolean\\n mergePrivateGroupsWithChannels: Boolean\\n enterKeyBehaviour: String\\n viewMode: String\\n offlineEmailNotifications: String\\n highlights: String\\n newRoomNotificationSound: String\\n newMessageNotificationSound: String\\n email: String\\n avatar: String\\n name: String\\n}\\n\\nextend type Preferences {\\n channel: ChannelSettings\\n}\\n\";","export default \"type Reaction{\\n id:ID!\\n reaction:String!,\\n user: UserAccount!,\\n post: Post!\\n}\\n\\ninput ReactionInput{\\n reaction:String!,\\n post: String!\\n}\\n\\nextend type Query{\\n getPostReactions(message:ID!):[Reaction] @isAuthenticated\\n}\\nextend type Mutation{\\n addReactionToMessage(reaction:ReactionInput):Reaction @isAuthenticated @addAccountContext\\n updateReactionToMessage(id:ID!, reaction:String!):Reaction @isAuthenticated @addAccountContext\\n removeReactionFromMessage(id:ID!):Boolean @isAuthenticated @addAccountContext\\n}\\n\";","export default \"\\nenum MessengerUserStatus {\\n ONLINE\\n AWAY\\n BUSY\\n INVISIBLE\\n}\\n\\ntype MessengerUser implements IUser {\\n id: ID!\\n username: String\\n email: String\\n status: MessengerUserStatus\\n avatar: String\\n name: String\\n lastLogin: String\\n channels: [Channel]\\n directMessages: [Channel]\\n}\";","/* eslint-disable import/no-extraneous-dependencies */\nimport { Feature } from '@common-stack/server-core';\nimport MessengerModule from './module';\n\nexport * from './constants';\nexport default new Feature(MessengerModule);\n","import { Feature } from '@common-stack/server-core';\nimport { schema, messengerResolvers } from './graphql';\nimport { localContainerModule, externalContainerModule, contextServicesFromContainer } from './containers';\n\nexport default new Feature({\n schema,\n createResolversFunc: messengerResolvers,\n createServiceFunc: contextServicesFromContainer,\n createContainerFunc: [externalContainerModule],\n createHemeraContainerFunc: [localContainerModule],\n addBrokerMainServiceClass: [],\n});\n","import { Document, FilterQuery } from 'mongoose';\nimport { injectable } from 'inversify';\nimport { GetAllArgs, IBaseRepository, IBaseService } from '../interfaces';\n\n@injectable()\nexport class BaseService<T, C = T, U = T> implements IBaseService<T, C, U> {\n constructor(protected repository: IBaseRepository<T>) {\n this.repository = repository;\n }\n\n async getAllWithCount(options: GetAllArgs<Document<T>>): Promise<{ data: T[]; totalCount: number }> {\n const totalCount = await this.count(options.criteria);\n const data = await this.getAll(options);\n return {\n totalCount,\n data,\n };\n }\n\n count(conditions?: FilterQuery<Document<T>>): Promise<number> {\n return this.repository.count(conditions);\n }\n\n get(conditions: string | FilterQuery<Document<T>>): Promise<T> {\n if (typeof conditions === 'string') {\n return this.repository.get({ id: conditions });\n }\n return this.repository.get(conditions);\n }\n\n getName(name: string): Promise<T> {\n return this.repository.get({ name });\n }\n\n getAll(options: GetAllArgs<Document<T>>): Promise<T[]> {\n return this.repository.getAll(options);\n }\n\n create(data: C): Promise<T> {\n return this.repository.create<C>(data);\n }\n\n bulkCreate(data: C[]): Promise<T[]> {\n return this.repository.bulkCreate<C>(data);\n }\n\n async update(id: string, data: U, overwrite = true): Promise<T> {\n return this.repository.update<U>({ id }, data, { overwrite });\n }\n\n insert(data: (C | U) & { id?: string }, overwrite = true): Promise<T> {\n const { id, ...rest } = data;\n if (id) {\n const existing = this.repository.get({ id });\n if (existing) {\n return this.update(id, rest as U, overwrite);\n }\n }\n return this.create(rest as C);\n }\n\n delete(id: string | FilterQuery<Document<T>>): Promise<boolean> {\n if (typeof id === 'string') {\n return this.repository.delete({ id });\n }\n return this.repository.delete(id);\n }\n}\n","import { inject } from 'inversify';\nimport { IChannel, IChannelUnread, IPost, IRoomType, ISortEnum } from '@messenger-box/core';\nimport { IAccountService, ITeamService, TYPES as ADMINIDE_TYPES } from '@adminide-stack/account-api-server';\nimport { IConfigurationService } from '@adminide-stack/platform-server';\nimport { ServerTypes } from '@adminide-stack/core';\nimport { BaseService } from './base-service';\nimport { DEFAULT_NOTIFY_PROPS, TYPES } from '../constants';\nimport {\n IChannelRepository,\n ICreateDirectChannelParams,\n INotificationProps,\n IPostService,\n ISaveChannelParams,\n ISaveDirectChannelParams,\n} from '../interfaces';\n\nexport class ChannelService extends BaseService<IChannel, Omit<IChannel, 'id'>> {\n constructor(\n @inject(TYPES.ChannelRepository)\n readonly repository: IChannelRepository,\n @inject(ADMINIDE_TYPES.IAccountService)\n private readonly accountService: IAccountService,\n @inject(ADMINIDE_TYPES.ITeamService)\n private readonly teamsService: ITeamService,\n @inject(TYPES.PostService)\n private readonly postService: IPostService,\n @inject(ServerTypes.IConfigurationService)\n private readonly configService: IConfigurationService,\n ) {\n super(repository);\n }\n\n private static getDmNameFromIds(senderId: string, receiverId: string) {\n return `${senderId}__${receiverId}`;\n }\n\n private static get defaultNotifyProps(): INotificationProps {\n // #Todo: To be moved to settings\n return DEFAULT_NOTIFY_PROPS;\n }\n\n private getMaxChannelsPerTeam(teamId: string): Promise<number> {\n // #Todo: Get Max Channel per team from Team settings\n return Promise.resolve(10);\n }\n\n private async getCurrentChannelCountPerTeam(team: string) {\n return this.repository.count({\n team,\n type: IRoomType.CHANNEL,\n });\n }\n\n async createDirectChannel(data: ICreateDirectChannelParams): Promise<IChannel | Error> {\n const { sender, receiver } = data;\n const channelPayload: ISaveDirectChannelParams = {\n title: ChannelService.getDmNameFromIds(sender, receiver),\n type: IRoomType.DIRECT,\n creator: sender,\n members: [\n {\n user: sender,\n schemeAdmin: false,\n notifyProps: ChannelService.defaultNotifyProps,\n },\n {\n user: receiver,\n schemeAdmin: false,\n notifyProps: ChannelService.defaultNotifyProps,\n },\n ],\n };\n return this.saveDirectChannel(channelPayload);\n }\n\n async saveDirectChannel(channel: ISaveDirectChannelParams): Promise<IChannel | Error> {\n const { type, deletedAt } = channel;\n if (deletedAt) {\n return new Error('Deleted Channel can not be saved');\n }\n if (type !== IRoomType.DIRECT) {\n return new Error('Only direct channels are allowed');\n }\n return this.repository.create(channel);\n }\n\n async saveChannel(data: ISaveChannelParams): Promise<IChannel | Error> {\n const { type, team } = data;\n if (type !== IRoomType.CHANNEL) {\n return new Error('Invalid Channel Type');\n }\n const maxChannels = await this.getMaxChannelsPerTeam(team);\n const currentChannels = await this.getCurrentChannelCountPerTeam(team);\n const canAddNewChannel = currentChannels < maxChannels;\n if (!canAddNewChannel) {\n return Error(`Only max of ${maxChannels} allowed`);\n }\n return this.repository.create(data);\n }\n\n async getChannelUnread(channelId: string, userId: string): Promise<IChannelUnread | Error> {\n const channel: IChannel = await this.repository.get({\n id: channelId,\n members: { user: userId },\n });\n const { members, team, id } = channel;\n const member = members.find((i) => i.user === userId);\n const msgCount = channel.totalMsgCount - member.msgCount;\n const msgCountRoot = channel.totalMsgCountRoot - member.msgCountRoot;\n const { notifyProps, mentionCountRoot, mentionCount } = member;\n\n return {\n channelId: id,\n teamId: team.toString(),\n msgCount,\n msgCountRoot,\n mentionCount,\n notifyProps,\n mentionCountRoot,\n };\n }\n\n async getPinnedPosts(channelId: string): Promise<IPost[] | Error> {\n const posts = await this.postService.getAll({\n criteria: {\n channelId,\n isPinned: true,\n },\n sort: {\n key: 'CreatAt',\n value: ISortEnum.ASC,\n },\n });\n const replyCounts = await Promise.all(\n posts.map((post) => this.postService.count({ rootId: post.rootId || post.id })),\n );\n return posts.reduce((acc, curr, index) => [...acc, { ...curr, replyCount: replyCounts[index] }], []);\n }\n\n restore(channelId: string, time: Date): Promise<IChannel> {\n return this.repository.update(\n { id: channelId },\n {\n deletedAt: time,\n },\n );\n }\n\n getByName(team: string, title: string): Promise<IChannel | Error> {\n return this.get({\n team,\n title,\n });\n }\n\n getByNameIncludeDeleted(team: string, title: string): Promise<IChannel | Error> {\n return this.get({\n team,\n title,\n deletedAt: true,\n });\n }\n\n getByNames(team: string, titles: string[]): Promise<IChannel[] | Error> {\n return this.getAll({\n criteria: {\n team,\n title: { $in: titles },\n },\n });\n }\n\n getChannelCounts(team: string, user: string): Promise<any> {\n return this.count({\n team,\n members: { user },\n });\n }\n\n getChannels(\n team: string,\n user: string,\n includeDeleted: boolean,\n lastDeleteAt: number,\n ): Promise<IChannel[] | Error> {\n return this.getAll({\n criteria: {\n team,\n members: { user },\n },\n });\n }\n}\n","export * from './channel-service';\nexport * from './post-service';\nexport * from './post-thread-service';\nexport * from './reaction-service';\n","import { inject } from 'inversify';\nimport { IPost } from '@messenger-box/core';\nimport { BaseService } from './base-service';\nimport { TYPES } from '../constants';\nimport { PostRepository } from '../store';\n\nexport class PostService extends BaseService<IPost> {\n constructor(\n @inject(TYPES.PostRepository)\n repository: PostRepository,\n ) {\n super(repository);\n }\n}\n","import { IPostThread } from '@messenger-box/core';\nimport { injectable, inject } from 'inversify';\nimport { BaseService } from './base-service';\nimport { TYPES } from '../constants';\nimport { IPostThreadRepository, IPostThreadService } from '../interfaces';\n\n@injectable()\nexport class PostThreadService extends BaseService<IPostThread> implements IPostThreadService {\n constructor(\n @inject(TYPES.PostThreadRepository)\n readonly repository: IPostThreadRepository,\n ) {\n super(repository);\n }\n}\n","import { IReaction, IReactionInput } from '@messenger-box/core';\nimport { inject, injectable } from 'inversify';\nimport { BaseService } from './base-service';\nimport { TYPES } from '../constants';\nimport { IReactionRepository, IReactionService, IReactionServiceInput } from '../interfaces';\n\n@injectable()\nexport class ReactionService\n extends BaseService<IReaction, IReactionServiceInput, Partial<IReactionInput>>\n implements IReactionService\n{\n constructor(\n @inject(TYPES.ReactionRepository)\n readonly reactionRepository: IReactionRepository,\n ) {\n super(reactionRepository);\n }\n}\n","export * from './repositories';\n","import { Connection, Document, Model, Schema } from 'mongoose';\nimport { IChannel, IRoomType } from '@messenger-box/core';\nimport { addIdVirtualFields, commonModeSchemaOptions } from './common-options';\n\nexport type IChannelModel = Document<IChannel>;\n\nconst channelModelSchema = new Schema(\n {\n type: {\n type: Schema.Types.String,\n enum: [IRoomType.CHANNEL, IRoomType.DIRECT, IRoomType.GROUP, IRoomType.PRIVATE, IRoomType.VISITOR],\n required: true,\n },\n members: [\n new Schema(\n {\n user: { type: Schema.Types.ObjectId, ref: 'accounts' },\n roles: { type: Schema.Types.String },\n msgCount: { type: Schema.Types.Number },\n mentionCount: { type: Schema.Types.Number },\n mentionCountRoot: { type: Schema.Types.Number },\n msgCountRoot: { type: Schema.Types.Number },\n notifyProps: { type: Schema.Types.Mixed },\n explicitRoles: { type: Schema.Types.String },\n schemeAdmin: { type: Schema.Types.String },\n lastViewedAt: { type: Schema.Types.Date },\n deletedAt: { type: Schema.Types.Date },\n },\n commonModeSchemaOptions,\n ),\n ],\n deletedAt: { type: Schema.Types.Date },\n lastPostAt: { type: Schema.Types.Date },\n totalMsgCount: { type: Schema.Types.Number },\n totalMsgCountRoot: { type: Schema.Types.Number },\n team: { type: Schema.Types.ObjectId, ref: 'team' },\n title: { type: Schema.Types.String },\n purpose: { type: Schema.Types.String },\n creator: { type: Schema.Types.ObjectId, ref: 'accounts' },\n },\n commonModeSchemaOptions,\n);\n\naddIdVirtualFields(channelModelSchema);\n\nexport type ChannelModelType = Model<IChannelModel>;\nexport const ChannelModelFunc: (db: Connection) => ChannelModelType = (db) =>\n db.model<IChannelModel>('channel', channelModelSchema);\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { Schema } from 'mongoose';\n\nexport const commonModeSchemaOptions = {\n timestamps: true,\n toJSON: {\n virtuals: true,\n },\n toObject: {\n virtuals: true,\n getters: true,\n transform(doc, ret) {\n delete ret.__v;\n delete ret._id;\n },\n },\n};\n\nexport const addIdVirtualFields = (schema: Schema) => {\n schema.set('toJSON', {\n virtuals: true,\n });\n return schema;\n};\n","export * from './channel';\nexport * from './post';\nexport * from './post-thread';\nexport * from './reaction';\n","import { Document, Schema, Model, Connection } from 'mongoose';\nimport { IPostThread } from '@messenger-box/core';\nimport { addIdVirtualFields, commonModeSchemaOptions } from './common-options';\n\nexport type IThreadsModel = Document<IPostThread>;\n\nconst postThreadModelSchema = new Schema(\n {\n post: { type: Schema.Types.ObjectId, ref: 'posts' },\n channel: { type: Schema.Types.ObjectId, ref: 'channels' },\n replyCount: { type: Schema.Types.Number },\n lastReplyAt: { type: Schema.Types.Date },\n participants: [{ type: Schema.Types.ObjectId, ref: 'accounts' }],\n },\n commonModeSchemaOptions,\n);\n\naddIdVirtualFields(postThreadModelSchema);\n\nexport type PostThreadModelType = Model<IThreadsModel>;\nexport const PostThreadModelFunc: (db: Connection) => PostThreadModelType = (db) =>\n db.model<IThreadsModel>('post-threads', postThreadModelSchema);\n","import { Document, Schema, Model, Connection } from 'mongoose';\nimport { IPost } from '@messenger-box/core';\nimport { addIdVirtualFields, commonModeSchemaOptions } from './common-options';\n\nexport type IPostModel = Document<IPost>;\n\nconst postModelSchema = new Schema(\n {\n createdAt: { type: Schema.Types.Date },\n editedAt: { type: Schema.Types.Date },\n deletedAt: { type: Schema.Types.Date },\n editedBy: { type: Schema.Types.ObjectId, ref: 'accounts' },\n // isPinned goes to settings\n channel: { type: Schema.Types.ObjectId, ref: 'channels' },\n rootId: { type: Schema.Types.String },\n parentId: { type: Schema.Types.String },\n originalId: { type: Schema.Types.String },\n message: { type: Schema.Types.String },\n type: { type: Schema.Types.String },\n props: { type: Schema.Types.Mixed },\n hashtags: { type: Schema.Types.Mixed },\n filenames: { type: Schema.Types.Mixed },\n fields: { type: Schema.Types.String },\n hasReactions: { type: Schema.Types.Boolean },\n },\n commonModeSchemaOptions,\n);\n\naddIdVirtualFields(postModelSchema);\n\nexport type PostModelType = Model<IPostModel>;\nexport const PostModelFunc: (db: Connection) => PostModelType = (db) => db.model<IPostModel>('posts', postModelSchema);\n","import { Document, Schema, Model, Connection } from 'mongoose';\nimport { IReaction } from '@messenger-box/core';\nimport { addIdVirtualFields } from './common-options';\n\nexport type IReactionModel = Document<IReaction>;\n\nconst reactionModelSchema = new Schema({\n createdAt: { type: Schema.Types.Date },\n reaction: { type: Schema.Types.String },\n user: { type: Schema.Types.ObjectId, ref: 'accounts' },\n post: { type: Schema.Types.ObjectId, ref: 'posts' },\n});\n\naddIdVirtualFields(reactionModelSchema);\n\nexport type ReactionModelType = Model<IReactionModel>;\nexport const ReactionModelFunc: (db: Connection) => ReactionModelType = (db) =>\n db.model<IReactionModel>('reactions', reactionModelSchema);\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { mergeWith, isObject } from 'lodash';\nimport { logger as Logger } from '@cdm-logger/server';\n// eslint-disable-next-line import/no-unresolved\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { Connection, Document, FilterQuery, Model } from 'mongoose';\nimport { injectable, unmanaged } from 'inversify';\nimport { GetAllArgs, IBaseRepository } from '../../interfaces';\nimport { DEFAULT_SORTING, PAGINATION_OPTIONS } from '../../constants';\n\n@injectable()\nexport class BaseRepository<T, D = Document<T>> implements IBaseRepository<T, D> {\n private options: IMongoOptions;\n\n private logger: typeof Logger;\n\n private model: Model<D>;\n\n constructor(\n @unmanaged()\n modelFunc: (db: Connection) => Model<D>,\n @unmanaged()\n db: Connection,\n @unmanaged()\n logger: typeof Logger,\n @unmanaged()\n options?: IMongoOptions,\n ) {\n this.model = modelFunc(db);\n this.options = options;\n this.logger = logger.child({ className: BaseRepository.name });\n }\n\n public async getAll(options: GetAllArgs<D>): Promise<T[]> {\n try {\n const { criteria, selectedFields, sort, limit, skip } = options;\n // map id to mongoose _id\n const { id, ...rest } = criteria || { id: undefined };\n const response = await this.model\n .find({ ...rest, ...(id ? { _id: id } : {}) }, selectedFields)\n .limit(limit || PAGINATION_OPTIONS.limit)\n .skip(skip || PAGINATION_OPTIONS.skip)\n .sort(isObject(sort) ? { [sort?.key]: sort.value } : DEFAULT_SORTING)\n .exec();\n return response.map((i) => i?.toObject()) as T[];\n } catch (e) {\n this.logger.error(`Unable to retrieve Model with criteria ${JSON.stringify(options)}`);\n throw e;\n }\n }\n\n public async count(conditions?: FilterQuery<D>): Promise<number> {\n return this.model.count(conditions).exec();\n }\n\n public async get(conditions?: FilterQuery<D>, selectedFields?: string): Promise<T> {\n try {\n const response = await this.model.findOne(this.mapConditions(conditions), selectedFields).exec();\n return response?.toObject() as T;\n } catch (e) {\n this.logger.error(`Unable to retrieve Model with criteria ${JSON.stringify(conditions)}`);\n throw e;\n }\n }\n\n public async find(conditions: Partial<FilterQuery<D>>, selectedFields?: string): Promise<T> {\n try {\n const response = await this.model.findOne(this.mapConditions(conditions), selectedFields).exec();\n return response?.toObject() as T;\n } catch (e) {\n this.logger.error(`Unable to retrieve Model with criteria ${JSON.stringify(conditions)}`);\n throw e;\n }\n }\n\n public async create<I>(data: I): Promise<T> {\n try {\n const response = await this.model.create(data);\n return response.toObject() as T;\n } catch (e) {\n this.logger.error(`Unable to create Model with data ${JSON.stringify(data)} due to ${e?.message}`);\n throw e;\n }\n }\n\n public async bulkCreate<I>(data: I[]): Promise<T[]> {\n try {\n const response = await this.model.insertMany(data, {\n lean: true,\n ordered: true,\n });\n return response as unknown as T[];\n } catch (e) {\n this.logger.error(`Unable to bulk create due to error`, e.message);\n }\n }\n\n public async upsert<I>(conditions: FilterQuery<D>, update: I, options?: Record<string, unknown>): Promise<T> {\n return this.update<I>(conditions, update, {\n upsert: true,\n ...options,\n });\n }\n\n public async update<I>(criteria: FilterQuery<D>, update: I, options: Record<string, unknown>): Promise<T> {\n try {\n const { overWrite, ...remaining } = options;\n let old = {};\n if (!overWrite) {\n old = await this.get(criteria);\n if (!old) {\n throw Error(\n `(update) No existing record found for update with criteria ${JSON.stringify(criteria)}`,\n );\n }\n }\n return this.model.findOneAndUpdate(\n this.mapConditions(criteria),\n mergeWith(old, update, (obj, src) => {\n if (Array.isArray(src) && Array.isArray(obj)) {\n return src;\n }\n }),\n { new: true, useFindAndModify: false, ...remaining },\n ) as unknown as Promise<T>;\n } catch (e) {\n this.logger.error(`Unable to Update with criteria ${criteria} and data ${update}`);\n throw e;\n }\n }\n\n public async delete(criteria: FilterQuery<D>): Promise<boolean> {\n try {\n const deleted = await this.model.findOneAndDelete(this.mapConditions(criteria));\n return !!deleted;\n } catch (e) {\n this.logger.error(`Unable to delete the model with criteria ${criteria}`);\n throw e;\n }\n }\n\n public async bulkDelete(criteria: FilterQuery<D>): Promise<number> {\n try {\n const deleted = await this.model.deleteMany(this.mapConditions(criteria));\n return deleted?.deletedCount || 0;\n } catch (e) {\n this.logger.error(`Unable to delete the model with criteria ${criteria}`);\n throw e;\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n private mapConditions(conditions: FilterQuery<D>): FilterQuery<D> {\n const { id: _id, ...remaining } = conditions;\n return {\n ...(_id ? { _id } : {}),\n ...remaining,\n };\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { inject, injectable, optional } from 'inversify';\nimport { Connection } from 'mongoose';\nimport { logger as Logger } from '@cdm-logger/server/lib/logger';\n// @ts-ignore\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { IChannel } from '@messenger-box/core';\nimport { ChannelModelFunc } from '../models';\nimport { BaseRepository } from './base-repository';\n\n@injectable()\nexport class ChannelRepository extends BaseRepository<IChannel> {\n constructor(\n @inject('MongoDBConnection')\n db: Connection,\n @inject('Logger')\n logger: typeof Logger,\n @inject('IMongoOptions')\n @optional()\n options?: IMongoOptions,\n ) {\n super(ChannelModelFunc, db, logger, options);\n }\n}\n","export * from './channel-repository';\nexport * from './post-repository';\nexport * from './post-thread-repository';\nexport * from './reaction-repository';\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { inject, injectable, optional } from 'inversify';\nimport { Connection } from 'mongoose';\nimport { logger as Logger } from '@cdm-logger/server/lib/logger';\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { IPost } from '@messenger-box/core';\nimport { PostModelFunc } from '../models';\nimport { BaseRepository } from './base-repository';\n\n@injectable()\nexport class PostRepository extends BaseRepository<IPost> {\n constructor(\n @inject('MongoDBConnection')\n db: Connection,\n @inject('Logger')\n logger: typeof Logger,\n @inject('IMongoOptions')\n @optional()\n options?: IMongoOptions,\n ) {\n super(PostModelFunc, db, logger, options);\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { inject, injectable, optional } from 'inversify';\nimport { Connection } from 'mongoose';\nimport { logger as Logger } from '@cdm-logger/server/lib/logger';\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { IPostThread } from '@messenger-box/core';\nimport { PostThreadModelFunc } from '../models';\nimport { BaseRepository } from './base-repository';\n\n@injectable()\nexport class PostThreadRepository extends BaseRepository<IPostThread> {\n constructor(\n @inject('MongoDBConnection')\n db: Connection,\n @inject('Logger')\n logger: typeof Logger,\n @inject('IMongoOptions')\n @optional()\n options?: IMongoOptions,\n ) {\n super(PostThreadModelFunc, db, logger, options);\n }\n}\n","import { IReaction } from '@messenger-box/core';\nimport { inject, optional } from 'inversify';\nimport { Connection } from 'mongoose';\nimport { logger as Logger } from '@cdm-logger/server';\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { ReactionModelFunc } from '../models';\nimport { BaseRepository } from './base-repository';\nimport { IReactionRepository } from '../../interfaces';\n\nexport class ReactionRepository extends BaseRepository<IReaction> implements IReactionRepository {\n constructor(\n @inject('MongoDBConnection')\n db: Connection,\n @inject('Logger')\n logger: typeof Logger,\n @inject('IMongoOptions')\n @optional()\n options?: IMongoOptions,\n ) {\n super(ReactionModelFunc, db, logger, options);\n }\n}\n","module.exports = require(\"@adminide-stack/account-api-server\");","module.exports = require(\"@adminide-stack/core\");","module.exports = require(\"@common-stack/server-core\");","module.exports = require(\"@messenger-box/core\");","module.exports = require(\"graphql-iso-date\");","module.exports = require(\"inversify\");","module.exports = require(\"lodash\");","module.exports = require(\"mongoose\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/constants/default-notify-props.ts","webpack:///./src/constants/index.ts","webpack:///./src/constants/query.constants.ts","webpack:///./src/constants/types.ts","webpack:///./src/containers/containers.ts","webpack:///./src/containers/context-services-from-container.ts","webpack:///./src/containers/index.ts","webpack:///./src/graphql/index.ts","webpack:///./src/graphql/resolvers/channel-member.ts","webpack:///./src/graphql/resolvers/channel.ts","webpack:///./src/graphql/resolvers/index.ts","webpack:///./src/graphql/resolvers/post-thread.ts","webpack:///./src/graphql/resolvers/post.ts","webpack:///./src/graphql/resolvers/primitive-resolvers.ts","webpack:///./src/graphql/resolvers/reaction.ts","webpack:///./src/graphql/schema/base.graphql","webpack:///./src/graphql/schema/channel-member.graphql","webpack:///./src/graphql/schema/channel.graphql","webpack:///./src/graphql/schema/index.ts","webpack:///./src/graphql/schema/post-thread.graphql","webpack:///./src/graphql/schema/post.graphql","webpack:///./src/graphql/schema/preferences.graphql","webpack:///./src/graphql/schema/reaction.graphql","webpack:///./src/graphql/schema/users.graphql","webpack:///./src/index.ts","webpack:///./src/module.ts","webpack:///./src/services/base-service.ts","webpack:///./src/services/channel-service.ts","webpack:///./src/services/index.ts","webpack:///./src/services/post-service.ts","webpack:///./src/services/post-thread-service.ts","webpack:///./src/services/reaction-service.ts","webpack:///./src/store/index.ts","webpack:///./src/store/models/channel.ts","webpack:///./src/store/models/common-options.ts","webpack:///./src/store/models/index.ts","webpack:///./src/store/models/post-thread.ts","webpack:///./src/store/models/post.ts","webpack:///./src/store/models/reaction.ts","webpack:///./src/store/repositories/base-repository.ts","webpack:///./src/store/repositories/channel-repository.ts","webpack:///./src/store/repositories/index.ts","webpack:///./src/store/repositories/post-repository.ts","webpack:///./src/store/repositories/post-thread-repository.ts","webpack:///./src/store/repositories/reaction-repository.ts","webpack:///external \"@adminide-stack/account-api-server\"","webpack:///external \"@adminide-stack/core\"","webpack:///external \"@common-stack/server-core\"","webpack:///external \"@messenger-box/core\"","webpack:///external \"graphql-iso-date\"","webpack:///external \"inversify\"","webpack:///external \"lodash\"","webpack:///external \"mongoose\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","export const DEFAULT_NOTIFY_PROPS = {\n desktopNotifyProp: true,\n markUnreadNotifyProp: true,\n pushNotifyProp: true,\n emailNotifyProp: true,\n ignoreChannelMentionsNotifyProp: true,\n};\n","export * from './types';\nexport * from './query.constants';\nexport * from './default-notify-props';\n","export enum PAGINATION_OPTIONS {\n limit = 10,\n skip = 0,\n}\n\nexport const DEFAULT_SORTING = {\n id: 'asc',\n};\n","export const TYPES = {\n BaseRepository: Symbol('BaseRepository'),\n BaseService: Symbol('BaseService'),\n\n ChannelRepository: Symbol('ChannelRepository'),\n PostRepository: Symbol('PostRepository'),\n PostThreadRepository: Symbol('PostThreadRepository'),\n ReactionRepository: Symbol('ReactionRepository'),\n\n ChannelService: Symbol('ChannelService'),\n PostService: Symbol('PostService'),\n PostThreadService: Symbol('PostThreadService'),\n ReactionService: Symbol('ReactionService'),\n};\n","import { ContainerModule, interfaces } from 'inversify';\nimport { ChannelService, PostService, PostThreadService, ReactionService } from '../services';\nimport { TYPES } from '../constants';\nimport {\n IPostService,\n IPostRepository,\n IPostThreadService,\n IPostThreadRepository,\n IChannelRepository,\n IChannelService,\n IReactionService,\n IReactionRepository,\n} from '../interfaces';\nimport { ChannelRepository, PostRepository, PostThreadRepository, ReactionRepository } from '../store';\n\n/**\n * Local services and exposed micro services to serve remote connections.\n * Operates within in the Gateway.\n *\n * @param settings Settings\n */\nexport const localContainerModule: (settings) => interfaces.ContainerModule = (settings) =>\n new ContainerModule((bind: interfaces.Bind) => {\n bind<IChannelRepository>(TYPES.ChannelRepository)\n .to(ChannelRepository)\n .inSingletonScope()\n .whenTargetNamed('proxy');\n bind<IPostRepository>(TYPES.PostRepository).to(PostRepository).inSingletonScope().whenTargetNamed('proxy');\n bind<IPostThreadRepository>(TYPES.PostThreadRepository)\n .to(PostThreadRepository)\n .inSingletonScope()\n .whenTargetNamed('proxy');\n bind<IReactionRepository>(TYPES.ReactionRepository)\n .to(ReactionRepository)\n .inSingletonScope()\n .whenTargetNamed('proxy');\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n bind<IChannelService>(TYPES.ChannelService).to(ChannelService).inSingletonScope().whenTargetNamed('proxy');\n bind<IPostService>(TYPES.PostService).to(PostService).inSingletonScope().whenTargetNamed('proxy');\n bind<IPostThreadService>(TYPES.PostThreadService)\n .to(PostThreadService)\n .inSingletonScope()\n .whenTargetNamed('proxy');\n\n bind<IReactionService>(TYPES.ReactionService).to(ReactionService).inSingletonScope().whenTargetNamed('proxy');\n });\n\n/**\n * Operates external to the Gateway. Usually a broker listen to calls and invoke this service\n * local to the micro container.\n *\n * @param settings Settings\n */\nexport const externalContainerModule: (settings) => interfaces.ContainerModule = (settings) =>\n new ContainerModule((bind: interfaces.Bind) => {\n bind<IChannelRepository>(TYPES.ChannelRepository)\n .to(ChannelRepository)\n .inSingletonScope()\n .whenTargetIsDefault();\n bind<IPostRepository>(TYPES.PostRepository).to(PostRepository).inSingletonScope().whenTargetIsDefault();\n\n bind<IPostThreadRepository>(TYPES.PostThreadRepository)\n .to(PostThreadRepository)\n .inSingletonScope()\n .whenTargetIsDefault();\n\n bind<IReactionRepository>(TYPES.ReactionRepository)\n .to(ReactionRepository)\n .inSingletonScope()\n .whenTargetIsDefault();\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n bind<IChannelService>(TYPES.ChannelService).to(ChannelService).inSingletonScope().whenTargetIsDefault();\n\n bind<IPostService>(TYPES.PostService).to(PostService).inSingletonScope().whenTargetIsDefault();\n\n bind<IPostThreadService>(TYPES.PostThreadService)\n .to(PostThreadService)\n .inSingletonScope()\n .whenTargetIsDefault();\n\n bind<IReactionService>(TYPES.ReactionService).to(ReactionService).inSingletonScope().whenTargetIsDefault();\n });\n","import { interfaces } from 'inversify';\nimport { IChannelService, IPostService, IPostThreadService, IReactionService, IServices } from '../interfaces';\nimport { TYPES } from '../constants';\n\nexport const contextServicesFromContainer = (container: interfaces.Container): IServices => ({\n channelService: container.get<IChannelService>(TYPES.ChannelService),\n postService: container.get<IPostService>(TYPES.PostService),\n postThreadService: container.get<IPostThreadService>(TYPES.PostThreadService),\n reactionService: container.get<IReactionService>(TYPES.ReactionService),\n});\n","export * from './containers';\nexport * from './context-services-from-container';\n","export * from './schema';\nexport * from './resolvers';\n","import { IResolvers } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const channelMemberResolvers = (): IResolvers<IContext> => ({\n Query: {},\n Mutation: {},\n});\n","import { IChannel, IResolvers, IRoomType } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const channelResolvers = (): IResolvers<IContext> => ({\n Query: {\n channelByName(src, { name }, { channelService, userContext }) {\n return channelService.getByName(userContext.teamId, name) as Promise<IChannel>;\n },\n channels(src, _, { channelService, userContext }) {\n const { accountId, teamId } = userContext;\n return channelService.getChannels(teamId, accountId, false, new Date().getTime()) as Promise<IChannel[]>;\n },\n channelsByUser(src, _, { channelService, userContext }) {\n const { accountId } = userContext;\n return channelService.getAll({\n criteria: {\n creator: accountId,\n },\n }) as Promise<IChannel[]>;\n },\n directChannel(src, { id }, { channelService, userContext }) {\n return channelService.get({\n criteria: {\n id,\n user: userContext.accountId,\n type: IRoomType.DIRECT,\n },\n }) as Promise<IChannel>;\n },\n },\n Mutation: {\n createChannel(src, { name, description }, { channelService, userContext }) {\n const { accountId, teamId } = userContext;\n return channelService.saveChannel({\n type: IRoomType.CHANNEL,\n creator: accountId,\n title: name,\n topic: name,\n team: teamId,\n description: description,\n }) as Promise<IChannel>;\n },\n createDirectChannel(src, { receiver }, { channelService, userContext }) {\n const { accountId } = userContext;\n return channelService.createDirectChannel({\n sender: accountId,\n receiver,\n }) as Promise<IChannel>;\n },\n hideChannel(src, { id }, { channelService }) {\n return channelService.hideChannel(id);\n },\n leaveChannel(src, { id }, { channelService }) {\n return channelService.leaveChannel(id);\n },\n },\n});\n","import { primitiveResolvers } from './primitive-resolvers';\nimport { channelResolvers } from './channel';\nimport { channelMemberResolvers } from './channel-member';\nimport { postResolvers } from './post';\nimport { postThreadResolvers } from './post-thread';\nimport { reactionResolvers } from './reaction';\n\nexport const messengerResolvers = [\n primitiveResolvers,\n channelResolvers,\n channelMemberResolvers,\n postResolvers,\n postThreadResolvers,\n reactionResolvers,\n];\n","import { IResolvers } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const postThreadResolvers = (): IResolvers<IContext> => ({\n Query: {},\n Mutation: {},\n});\n","import { IResolvers, ISortEnum } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const postResolvers = (): IResolvers<IContext> => ({\n Post: {\n editedBy(src, args, { accountService }) {\n return accountService.findAccountById(src.editedBy.toString());\n },\n author(src, args, { accountService }) {\n const author = src.author?.toString();\n if (author) {\n return accountService.findAccountById(author);\n }\n return accountService.findAccountById(src.editedBy.toString());\n },\n channel(src, args, { channelService }) {\n return channelService.get(src.channel.toString());\n },\n },\n Query: {\n messages(src, { channelId, limit, skip }, { postService, userContext }) {\n return postService.getAllWithCount({\n criteria: {\n channel: channelId,\n },\n limit,\n skip,\n sort: {\n key: 'createdAt',\n value: ISortEnum.ASC,\n },\n });\n },\n },\n Mutation: {\n deleteMessage(src, { messageId }, { postService }) {\n const { channelId, messageId: id } = messageId;\n return postService.delete({\n channel: channelId,\n id,\n });\n },\n editMessage(src, { messageId, messageInput }, { postService, userContext }) {\n return postService.update(messageId.messageId, {\n message: messageInput.content,\n editedBy: userContext.accountId,\n channel: messageId.channelId,\n } as any);\n },\n sendMessage(src, { channelId, messageInput }, { postService, userContext }) {\n return postService.create({\n channel: channelId,\n message: messageInput.content,\n editedBy: userContext.accountId,\n author: userContext.accountId,\n } as any);\n },\n // pinMessage(src , { messageId , messageInput} , {postService , userContext}) {\n // return postService.update(messageId.messageId, {\n // isPinned : messageInput.isPinned,\n // pinnedBy : userContext.accountId,\n // channel : messageId.channelId\n // } as any)\n // }\n },\n});\n","import { GraphQLDate, GraphQLTime, GraphQLDateTime } from 'graphql-iso-date';\n\nexport const primitiveResolvers = () => ({\n Date: GraphQLDate,\n Time: GraphQLTime,\n DateTime: GraphQLDateTime,\n});\n","import { IResolvers } from '@messenger-box/core';\nimport { IContext } from '../../interfaces';\n\nexport const reactionResolvers = (): IResolvers<IContext> => ({\n Query: {\n getPostReactions(src, { message }, { reactionService, userContext }) {\n return reactionService.getAll({\n criteria: {\n post: message,\n user: userContext.accountId,\n },\n });\n },\n },\n Mutation: {\n addReactionToMessage(src, { reaction }, { reactionService, userContext }) {\n return reactionService.create({\n ...reaction,\n user: userContext.accountId,\n });\n },\n updateReactionToMessage(src, { reaction, id }, { reactionService }) {\n return reactionService.update(id, { reaction });\n },\n removeReactionFromMessage(src, { id }, { reactionService }) {\n return reactionService.delete(id);\n },\n },\n});\n","export default \"interface IBaseRepo {\\n createdAt: DateTime\\n updatedAt: DateTime\\n deletedAt: DateTime\\n}\\n\\ninput Sort{\\n key: String!,\\n value: SortEnum!,\\n}\\n\\nenum SortEnum{\\n ASC,\\n DESC\\n}\";","export default \"type ChannelMember {\\n id: ID!\\n user: String!\\n roles: String\\n msgCount: Int\\n mentionCount: Int\\n mentionCountRoot: Int\\n msgCountRoot: Int\\n notifyProps: AnyObject\\n explicitRoles: String\\n schemeAdmin: Boolean\\n lastViewedAt: Int\\n updatedAt: DateTime,\\n CreatedAt: DateTime,\\n}\\n\\ninput ChannelMemberInput {\\n userId: String!\\n roles: String\\n notifyProps: AnyObject\\n schemeGuest: Boolean\\n schemeUser: Boolean\\n schemeAdmin: Boolean\\n explicitRoles: String\\n}\\n\";","export default \"type Channel implements IBaseRepo {\\n id: String!\\n title: String\\n topic: String\\n purpose: String\\n description: String\\n team: AccountTeam\\n lastPostAt: DateTime\\n totalMsgCount: Int\\n totalMsgCountRoot: Int\\n creator: UserAccount\\n members: [ChannelMember]\\n\\n createdAt: DateTime\\n updatedAt: DateTime\\n deletedAt: DateTime\\n}\\n\\ntype ChannelUnread {\\n teamId: String\\n channelId: String\\n msgCount: Int\\n mentionCount: Int\\n mentionCountRoot: Int\\n msgCountRoot: Int\\n notifyProps: AnyObject\\n}\\n\\n\\ninput ChannelFilterInput {\\n nameFilter: String\\n privacy: ChannelPrivacy\\n joinedChannels: Boolean\\n storyBy: ChannelSort\\n}\\n\\ninput ChannelNameAndDirect {\\n name: String!\\n direct: Boolean!\\n}\\n\\nenum ChannelSort {\\n NAME\\n NUMBER_OF_MESSAGES\\n}\\n\\nenum ChannelPrivacy {\\n PRIVATE\\n PUBLIC\\n ALL\\n}\\n\\nenum RoomType {\\n CHANNEL\\n DIRECT\\n GROUP\\n PRIVATE\\n VISITOR\\n}\\n\\nextend type Query {\\n channelByName(name: String!): Channel @addAccountContext @isAuthenticated\\n channels(filter: ChannelFilterInput = {\\n privacy: ALL,\\n joinedChannels: false,\\n sortyBy: NAME\\n }): [Channel] @addAccountContext @isAuthenticated\\n channelsByUser: [Channel] @addAccountContext @isAuthenticated\\n directChannel(id: ID!): Channel @addAccountContext @isAuthenticated\\n}\\n\\nextend type Mutation {\\n createChannel(\\n name: String!,\\n description:String!\\n ): Channel @addAccountContext @isAuthenticated\\n\\n createDirectChannel(\\n receiver: ID!\\n ): Channel @addAccountContext @isAuthenticated\\n\\n hideChannel(id: ID!): Boolean @isAuthenticated\\n\\n leaveChannel(id: ID!): Boolean @isAuthenticated\\n}\\n\";","import baseSchema from './base.graphql';\nimport channelSchema from './channel.graphql';\nimport channelMember from './channel-member.graphql';\nimport postSchema from './post.graphql';\nimport postThread from './post-thread.graphql';\nimport preferencesSchema from './preferences.graphql';\nimport usersSchema from './users.graphql';\nimport reactionSchema from './reaction.graphql';\n\nconst schema = [\n baseSchema,\n channelSchema,\n channelMember,\n postSchema,\n postThread,\n preferencesSchema,\n usersSchema,\n reactionSchema,\n].join('\\n');\n\nexport { schema };\n","export default \"type PostThread{\\n post: Post,\\n channel: Channel,\\n replyCount: Int,\\n lastReplyAt: DateTime,\\n participants:[UserAccount]\\n}\\n\";","export default \"type Post implements IBaseRepo {\\n id: String\\n author: UserAccount\\n channel: Channel\\n\\n rootId: String\\n parentId: String\\n originalId: String\\n\\n \\\"\\\"\\\" Post sent by server e.g. User joined channel \\\"\\\"\\\"\\n fromServer: Boolean\\n\\n message: String\\n type: String\\n props: AnyObject\\n hashTags: String\\n\\n filenames: [String]\\n fields: [String]\\n reactions: [Reaction]\\n\\n editedBy: UserAccount\\n createdAt: DateTime\\n updatedAt: DateTime\\n deletedAt: DateTime\\n}\\n\\ninput MessageInput {\\n content: String!\\n userRef: [String] #userId\\n channelRef: [String] #channelId\\n}\\n\\ninput MessageIdentifier {\\n channelId: String!\\n messageId: String!\\n}\\n\\ntype PostsWithCursor {\\n cursor: String\\n channel: Channel\\n posts: [Post]\\n}\\n\\ntype Messages{\\n totalCount: Int,\\n data:[Post]\\n}\\n\\n\\nextend type Query {\\n messages(\\n channelId: ID,\\n# channelName: String,\\n# directTo: ID,\\n limit: Int,\\n skip: Int,\\n# searchRegex: String,\\n# excludeServer: Boolean\\n ): Messages! @isAuthenticated @addAccountContext\\n}\\n\\nextend type Mutation {\\n deleteMessage(messageId: MessageIdentifier!): Boolean @isAuthenticated\\n\\n editMessage(messageId: MessageIdentifier!, messageInput: MessageInput!): Post @isAuthenticated @addAccountContext\\n\\n sendMessage(channelId: String!, messageInput: MessageInput!): Post @isAuthenticated @addAccountContext\\n}\\n\\nextend type Subscription {\\n chatMessageAdded(channelId: String, directTo: String): Post @isAuthenticated @addAccountContext\\n}\\n\";","export default \"\\n\\ntype ChannelSettings {\\n disableNotification: Boolean\\n audio: String\\n desktop: String\\n duration: Int\\n mobile: String\\n mail: String\\n hideUnreadRoomStatus : Boolean\\n unreadTrayIconAlret: String\\n}\\n\\nextend type Preference_Account {\\n language: String\\n notificationDuration: Float\\n unreadTrayIconAlert: Boolean\\n useEmojis: Boolean\\n convertAsciiToEmoji: Boolean\\n autoLoadImages: Boolean\\n saveMobileBandwith: Boolean\\n collapseEmbeddedMeida: Boolean\\n unreadRoomsMode: Boolean\\n hideUserName: Boolean\\n hideRoles: Boolean\\n hideRightSideBarWithClick: Boolean\\n hideAvatars: Boolean\\n mergePrivateGroupsWithChannels: Boolean\\n enterKeyBehaviour: String\\n viewMode: String\\n offlineEmailNotifications: String\\n highlights: String\\n newRoomNotificationSound: String\\n newMessageNotificationSound: String\\n email: String\\n avatar: String\\n name: String\\n}\\n\\nextend type Preferences {\\n channel: ChannelSettings\\n}\\n\";","export default \"type Reaction{\\n id:ID!\\n reaction:String!,\\n user: UserAccount!,\\n post: Post!\\n}\\n\\ninput ReactionInput{\\n reaction:String!,\\n post: String!\\n}\\n\\nextend type Query{\\n getPostReactions(message:ID!):[Reaction] @isAuthenticated\\n}\\nextend type Mutation{\\n addReactionToMessage(reaction:ReactionInput):Reaction @isAuthenticated @addAccountContext\\n updateReactionToMessage(id:ID!, reaction:String!):Reaction @isAuthenticated @addAccountContext\\n removeReactionFromMessage(id:ID!):Boolean @isAuthenticated @addAccountContext\\n}\\n\";","export default \"\\nenum MessengerUserStatus {\\n ONLINE\\n AWAY\\n BUSY\\n INVISIBLE\\n}\\n\\ntype MessengerUser implements IUser {\\n id: ID!\\n username: String\\n email: String\\n status: MessengerUserStatus\\n avatar: String\\n name: String\\n lastLogin: String\\n channels: [Channel]\\n directMessages: [Channel]\\n}\";","/* eslint-disable import/no-extraneous-dependencies */\nimport { Feature } from '@common-stack/server-core';\nimport MessengerModule from './module';\n\nexport * from './constants';\nexport default new Feature(MessengerModule);\n","import { Feature } from '@common-stack/server-core';\nimport { schema, messengerResolvers } from './graphql';\nimport { localContainerModule, externalContainerModule, contextServicesFromContainer } from './containers';\n\nexport default new Feature({\n schema,\n createResolversFunc: messengerResolvers,\n createServiceFunc: contextServicesFromContainer,\n createContainerFunc: [externalContainerModule],\n createHemeraContainerFunc: [localContainerModule],\n addBrokerMainServiceClass: [],\n});\n","import { Document, FilterQuery } from 'mongoose';\nimport { injectable } from 'inversify';\nimport { GetAllArgs, IBaseRepository, IBaseService } from '../interfaces';\n\n@injectable()\nexport class BaseService<T, C = T, U = T> implements IBaseService<T, C, U> {\n constructor(protected repository: IBaseRepository<T>) {\n this.repository = repository;\n }\n\n async getAllWithCount(options: GetAllArgs<Document<T>>): Promise<{ data: T[]; totalCount: number }> {\n const totalCount = await this.count(options.criteria);\n const data = await this.getAll(options);\n return {\n totalCount,\n data,\n };\n }\n\n count(conditions?: FilterQuery<Document<T>>): Promise<number> {\n return this.repository.count(conditions);\n }\n\n get(conditions: string | FilterQuery<Document<T>>): Promise<T> {\n if (typeof conditions === 'string') {\n return this.repository.get({ id: conditions });\n }\n return this.repository.get(conditions);\n }\n\n getName(name: string): Promise<T> {\n return this.repository.get({ name });\n }\n\n getAll(options: GetAllArgs<Document<T>>): Promise<T[]> {\n return this.repository.getAll(options);\n }\n\n create(data: C): Promise<T> {\n return this.repository.create<C>(data);\n }\n\n bulkCreate(data: C[]): Promise<T[]> {\n return this.repository.bulkCreate<C>(data);\n }\n\n async update(id: string, data: U, overwrite = true): Promise<T> {\n return this.repository.update<U>({ id }, data, { overwrite });\n }\n\n insert(data: (C | U) & { id?: string }, overwrite = true): Promise<T> {\n const { id, ...rest } = data;\n if (id) {\n const existing = this.repository.get({ id });\n if (existing) {\n return this.update(id, rest as U, overwrite);\n }\n }\n return this.create(rest as C);\n }\n\n delete(id: string | FilterQuery<Document<T>>): Promise<boolean> {\n if (typeof id === 'string') {\n return this.repository.delete({ id });\n }\n return this.repository.delete(id);\n }\n}\n","import { inject } from 'inversify';\nimport { IChannel, IChannelUnread, IPost, IRoomType, ISortEnum } from '@messenger-box/core';\nimport { IAccountService, ITeamService, TYPES as ADMINIDE_TYPES } from '@adminide-stack/account-api-server';\nimport { IConfigurationService } from '@adminide-stack/platform-server';\nimport { ServerTypes } from '@adminide-stack/core';\nimport { BaseService } from './base-service';\nimport { DEFAULT_NOTIFY_PROPS, TYPES } from '../constants';\nimport {\n IChannelRepository,\n ICreateDirectChannelParams,\n INotificationProps,\n IPostService,\n ISaveChannelParams,\n ISaveDirectChannelParams,\n} from '../interfaces';\n\nexport class ChannelService extends BaseService<IChannel, Omit<IChannel, 'id'>> {\n constructor(\n @inject(TYPES.ChannelRepository)\n readonly repository: IChannelRepository,\n @inject(ADMINIDE_TYPES.IAccountService)\n private readonly accountService: IAccountService,\n @inject(ADMINIDE_TYPES.ITeamService)\n private readonly teamsService: ITeamService,\n @inject(TYPES.PostService)\n private readonly postService: IPostService,\n @inject(ServerTypes.IConfigurationService)\n private readonly configService: IConfigurationService,\n ) {\n super(repository);\n }\n\n private static getDmNameFromIds(senderId: string, receiverId: string) {\n return `${senderId}__${receiverId}`;\n }\n\n private static get defaultNotifyProps(): INotificationProps {\n // #Todo: To be moved to settings\n return DEFAULT_NOTIFY_PROPS;\n }\n\n private getMaxChannelsPerTeam(teamId: string): Promise<number> {\n // #Todo: Get Max Channel per team from Team settings\n return Promise.resolve(10);\n }\n\n private async getCurrentChannelCountPerTeam(team: string) {\n return this.repository.count({\n team,\n type: IRoomType.CHANNEL,\n });\n }\n\n async createDirectChannel(data: ICreateDirectChannelParams): Promise<IChannel | Error> {\n const { sender, receiver } = data;\n const channelPayload: ISaveDirectChannelParams = {\n title: ChannelService.getDmNameFromIds(sender, receiver),\n type: IRoomType.DIRECT,\n creator: sender,\n members: [\n {\n user: sender,\n schemeAdmin: false,\n notifyProps: ChannelService.defaultNotifyProps,\n },\n {\n user: receiver,\n schemeAdmin: false,\n notifyProps: ChannelService.defaultNotifyProps,\n },\n ],\n };\n return this.saveDirectChannel(channelPayload);\n }\n\n async saveDirectChannel(channel: ISaveDirectChannelParams): Promise<IChannel | Error> {\n const { type, deletedAt } = channel;\n if (deletedAt) {\n return new Error('Deleted Channel can not be saved');\n }\n if (type !== IRoomType.DIRECT) {\n return new Error('Only direct channels are allowed');\n }\n return this.repository.create(channel);\n }\n\n async saveChannel(data: ISaveChannelParams): Promise<IChannel | Error> {\n const { type, team } = data;\n if (type !== IRoomType.CHANNEL) {\n return new Error('Invalid Channel Type');\n }\n const maxChannels = await this.getMaxChannelsPerTeam(team);\n const currentChannels = await this.getCurrentChannelCountPerTeam(team);\n const canAddNewChannel = currentChannels < maxChannels;\n if (!canAddNewChannel) {\n return Error(`Only max of ${maxChannels} allowed`);\n }\n return this.repository.create(data);\n }\n\n async getChannelUnread(channelId: string, userId: string): Promise<IChannelUnread | Error> {\n const channel: IChannel = await this.repository.get({\n id: channelId,\n members: { user: userId },\n });\n const { members, team, id } = channel;\n const member = members.find((i) => i.user === userId);\n const msgCount = channel.totalMsgCount - member.msgCount;\n const msgCountRoot = channel.totalMsgCountRoot - member.msgCountRoot;\n const { notifyProps, mentionCountRoot, mentionCount } = member;\n\n return {\n channelId: id,\n teamId: team.toString(),\n msgCount,\n msgCountRoot,\n mentionCount,\n notifyProps,\n mentionCountRoot,\n };\n }\n\n async getPinnedPosts(channelId: string): Promise<IPost[] | Error> {\n const posts = await this.postService.getAll({\n criteria: {\n channelId,\n isPinned: true,\n },\n sort: {\n key: 'CreatAt',\n value: ISortEnum.ASC,\n },\n });\n const replyCounts = await Promise.all(\n posts.map((post) => this.postService.count({ rootId: post.rootId || post.id })),\n );\n return posts.reduce((acc, curr, index) => [...acc, { ...curr, replyCount: replyCounts[index] }], []);\n }\n\n restore(channelId: string, time: Date): Promise<IChannel> {\n return this.repository.update(\n { id: channelId },\n {\n deletedAt: time,\n },\n );\n }\n\n getByName(team: string, title: string): Promise<IChannel | Error> {\n return this.get({\n team,\n title,\n });\n }\n\n getByNameIncludeDeleted(team: string, title: string): Promise<IChannel | Error> {\n return this.get({\n team,\n title,\n deletedAt: true,\n });\n }\n\n getByNames(team: string, titles: string[]): Promise<IChannel[] | Error> {\n return this.getAll({\n criteria: {\n team,\n title: { $in: titles },\n },\n });\n }\n\n getChannelCounts(team: string, user: string): Promise<any> {\n return this.count({\n team,\n members: { user },\n });\n }\n\n getChannels(\n team: string,\n user: string,\n includeDeleted: boolean,\n lastDeleteAt: number,\n ): Promise<IChannel[] | Error> {\n return this.getAll({\n criteria: {\n team,\n members: { user },\n },\n });\n }\n}\n","export * from './channel-service';\nexport * from './post-service';\nexport * from './post-thread-service';\nexport * from './reaction-service';\n","import { inject } from 'inversify';\nimport { IPost } from '@messenger-box/core';\nimport { BaseService } from './base-service';\nimport { TYPES } from '../constants';\nimport { PostRepository } from '../store';\n\nexport class PostService extends BaseService<IPost> {\n constructor(\n @inject(TYPES.PostRepository)\n repository: PostRepository,\n ) {\n super(repository);\n }\n}\n","import { IPostThread } from '@messenger-box/core';\nimport { injectable, inject } from 'inversify';\nimport { BaseService } from './base-service';\nimport { TYPES } from '../constants';\nimport { IPostThreadRepository, IPostThreadService } from '../interfaces';\n\n@injectable()\nexport class PostThreadService extends BaseService<IPostThread> implements IPostThreadService {\n constructor(\n @inject(TYPES.PostThreadRepository)\n readonly repository: IPostThreadRepository,\n ) {\n super(repository);\n }\n}\n","import { IReaction, IReactionInput } from '@messenger-box/core';\nimport { inject, injectable } from 'inversify';\nimport { BaseService } from './base-service';\nimport { TYPES } from '../constants';\nimport { IReactionRepository, IReactionService, IReactionServiceInput } from '../interfaces';\n\n@injectable()\nexport class ReactionService\n extends BaseService<IReaction, IReactionServiceInput, Partial<IReactionInput>>\n implements IReactionService\n{\n constructor(\n @inject(TYPES.ReactionRepository)\n readonly reactionRepository: IReactionRepository,\n ) {\n super(reactionRepository);\n }\n}\n","export * from './repositories';\n","import { Connection, Document, Model, Schema } from 'mongoose';\nimport { IChannel, IRoomType } from '@messenger-box/core';\nimport { addIdVirtualFields, commonModeSchemaOptions } from './common-options';\n\nexport type IChannelModel = Document<IChannel>;\n\nconst channelModelSchema = new Schema(\n {\n type: {\n type: Schema.Types.String,\n enum: [IRoomType.CHANNEL, IRoomType.DIRECT, IRoomType.GROUP, IRoomType.PRIVATE, IRoomType.VISITOR],\n required: true,\n },\n members: [\n new Schema(\n {\n user: { type: Schema.Types.ObjectId, ref: 'accounts' },\n roles: { type: Schema.Types.String },\n msgCount: { type: Schema.Types.Number },\n mentionCount: { type: Schema.Types.Number },\n mentionCountRoot: { type: Schema.Types.Number },\n msgCountRoot: { type: Schema.Types.Number },\n notifyProps: { type: Schema.Types.Mixed },\n explicitRoles: { type: Schema.Types.String },\n schemeAdmin: { type: Schema.Types.String },\n lastViewedAt: { type: Schema.Types.Date },\n deletedAt: { type: Schema.Types.Date },\n },\n commonModeSchemaOptions,\n ),\n ],\n deletedAt: { type: Schema.Types.Date },\n lastPostAt: { type: Schema.Types.Date },\n totalMsgCount: { type: Schema.Types.Number },\n totalMsgCountRoot: { type: Schema.Types.Number },\n team: { type: Schema.Types.ObjectId, ref: 'team' },\n title: { type: Schema.Types.String },\n description: { type: Schema.Types.String },\n purpose: { type: Schema.Types.String },\n creator: { type: Schema.Types.ObjectId, ref: 'accounts' },\n },\n commonModeSchemaOptions,\n);\n\naddIdVirtualFields(channelModelSchema);\n\nexport type ChannelModelType = Model<IChannelModel>;\nexport const ChannelModelFunc: (db: Connection) => ChannelModelType = (db) =>\n db.model<IChannelModel>('channel', channelModelSchema);\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { Schema } from 'mongoose';\n\nexport const commonModeSchemaOptions = {\n timestamps: true,\n toJSON: {\n virtuals: true,\n },\n toObject: {\n virtuals: true,\n getters: true,\n transform(doc, ret) {\n delete ret.__v;\n delete ret._id;\n },\n },\n};\n\nexport const addIdVirtualFields = (schema: Schema) => {\n schema.set('toJSON', {\n virtuals: true,\n });\n return schema;\n};\n","export * from './channel';\nexport * from './post';\nexport * from './post-thread';\nexport * from './reaction';\n","import { Document, Schema, Model, Connection } from 'mongoose';\nimport { IPostThread } from '@messenger-box/core';\nimport { addIdVirtualFields, commonModeSchemaOptions } from './common-options';\n\nexport type IThreadsModel = Document<IPostThread>;\n\nconst postThreadModelSchema = new Schema(\n {\n post: { type: Schema.Types.ObjectId, ref: 'posts' },\n channel: { type: Schema.Types.ObjectId, ref: 'channels' },\n replyCount: { type: Schema.Types.Number },\n lastReplyAt: { type: Schema.Types.Date },\n participants: [{ type: Schema.Types.ObjectId, ref: 'accounts' }],\n },\n commonModeSchemaOptions,\n);\n\naddIdVirtualFields(postThreadModelSchema);\n\nexport type PostThreadModelType = Model<IThreadsModel>;\nexport const PostThreadModelFunc: (db: Connection) => PostThreadModelType = (db) =>\n db.model<IThreadsModel>('post-threads', postThreadModelSchema);\n","import { Document, Schema, Model, Connection } from 'mongoose';\nimport { IPost } from '@messenger-box/core';\nimport { addIdVirtualFields, commonModeSchemaOptions } from './common-options';\n\nexport type IPostModel = Document<IPost>;\n\nconst postModelSchema = new Schema(\n {\n createdAt: { type: Schema.Types.Date },\n editedAt: { type: Schema.Types.Date },\n deletedAt: { type: Schema.Types.Date },\n editedBy: { type: Schema.Types.ObjectId, ref: 'accounts' },\n // isPinned goes to settings\n channel: { type: Schema.Types.ObjectId, ref: 'channels' },\n rootId: { type: Schema.Types.String },\n parentId: { type: Schema.Types.String },\n originalId: { type: Schema.Types.String },\n message: { type: Schema.Types.String },\n type: { type: Schema.Types.String },\n props: { type: Schema.Types.Mixed },\n hashtags: { type: Schema.Types.Mixed },\n filenames: { type: Schema.Types.Mixed },\n fields: { type: Schema.Types.String },\n hasReactions: { type: Schema.Types.Boolean },\n },\n commonModeSchemaOptions,\n);\n\naddIdVirtualFields(postModelSchema);\n\nexport type PostModelType = Model<IPostModel>;\nexport const PostModelFunc: (db: Connection) => PostModelType = (db) => db.model<IPostModel>('posts', postModelSchema);\n","import { Document, Schema, Model, Connection } from 'mongoose';\nimport { IReaction } from '@messenger-box/core';\nimport { addIdVirtualFields } from './common-options';\n\nexport type IReactionModel = Document<IReaction>;\n\nconst reactionModelSchema = new Schema({\n createdAt: { type: Schema.Types.Date },\n reaction: { type: Schema.Types.String },\n user: { type: Schema.Types.ObjectId, ref: 'accounts' },\n post: { type: Schema.Types.ObjectId, ref: 'posts' },\n});\n\naddIdVirtualFields(reactionModelSchema);\n\nexport type ReactionModelType = Model<IReactionModel>;\nexport const ReactionModelFunc: (db: Connection) => ReactionModelType = (db) =>\n db.model<IReactionModel>('reactions', reactionModelSchema);\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { mergeWith, isObject } from 'lodash';\nimport { logger as Logger } from '@cdm-logger/server';\n// eslint-disable-next-line import/no-unresolved\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { Connection, Document, FilterQuery, Model } from 'mongoose';\nimport { injectable, unmanaged } from 'inversify';\nimport { GetAllArgs, IBaseRepository } from '../../interfaces';\nimport { DEFAULT_SORTING, PAGINATION_OPTIONS } from '../../constants';\n\n@injectable()\nexport class BaseRepository<T, D = Document<T>> implements IBaseRepository<T, D> {\n private options: IMongoOptions;\n\n private logger: typeof Logger;\n\n private model: Model<D>;\n\n constructor(\n @unmanaged()\n modelFunc: (db: Connection) => Model<D>,\n @unmanaged()\n db: Connection,\n @unmanaged()\n logger: typeof Logger,\n @unmanaged()\n options?: IMongoOptions,\n ) {\n this.model = modelFunc(db);\n this.options = options;\n this.logger = logger.child({ className: BaseRepository.name });\n }\n\n public async getAll(options: GetAllArgs<D>): Promise<T[]> {\n try {\n const { criteria, selectedFields, sort, limit, skip } = options;\n // map id to mongoose _id\n const { id, ...rest } = criteria || { id: undefined };\n const response = await this.model\n .find({ ...rest, ...(id ? { _id: id } : {}) }, selectedFields)\n .limit(limit || PAGINATION_OPTIONS.limit)\n .skip(skip || PAGINATION_OPTIONS.skip)\n .sort(isObject(sort) ? { [sort?.key]: sort.value } : DEFAULT_SORTING)\n .exec();\n return response.map((i) => i?.toObject()) as T[];\n } catch (e) {\n this.logger.error(`Unable to retrieve Model with criteria ${JSON.stringify(options)}`);\n throw e;\n }\n }\n\n public async count(conditions?: FilterQuery<D>): Promise<number> {\n return this.model.count(conditions).exec();\n }\n\n public async get(conditions?: FilterQuery<D>, selectedFields?: string): Promise<T> {\n try {\n const response = await this.model.findOne(this.mapConditions(conditions), selectedFields).exec();\n return response?.toObject() as T;\n } catch (e) {\n this.logger.error(`Unable to retrieve Model with criteria ${JSON.stringify(conditions)}`);\n throw e;\n }\n }\n\n public async find(conditions: Partial<FilterQuery<D>>, selectedFields?: string): Promise<T> {\n try {\n const response = await this.model.findOne(this.mapConditions(conditions), selectedFields).exec();\n return response?.toObject() as T;\n } catch (e) {\n this.logger.error(`Unable to retrieve Model with criteria ${JSON.stringify(conditions)}`);\n throw e;\n }\n }\n\n public async create<I>(data: I): Promise<T> {\n try {\n const response = await this.model.create(data);\n return response.toObject() as T;\n } catch (e) {\n this.logger.error(`Unable to create Model with data ${JSON.stringify(data)} due to ${e?.message}`);\n throw e;\n }\n }\n\n public async bulkCreate<I>(data: I[]): Promise<T[]> {\n try {\n const response = await this.model.insertMany(data, {\n lean: true,\n ordered: true,\n });\n return response as unknown as T[];\n } catch (e) {\n this.logger.error(`Unable to bulk create due to error`, e.message);\n }\n }\n\n public async upsert<I>(conditions: FilterQuery<D>, update: I, options?: Record<string, unknown>): Promise<T> {\n return this.update<I>(conditions, update, {\n upsert: true,\n ...options,\n });\n }\n\n public async update<I>(criteria: FilterQuery<D>, update: I, options: Record<string, unknown>): Promise<T> {\n try {\n const { overWrite, ...remaining } = options;\n let old = {};\n if (!overWrite) {\n old = await this.get(criteria);\n if (!old) {\n throw Error(\n `(update) No existing record found for update with criteria ${JSON.stringify(criteria)}`,\n );\n }\n }\n return this.model.findOneAndUpdate(\n this.mapConditions(criteria),\n mergeWith(old, update, (obj, src) => {\n if (Array.isArray(src) && Array.isArray(obj)) {\n return src;\n }\n }),\n { new: true, useFindAndModify: false, ...remaining },\n ) as unknown as Promise<T>;\n } catch (e) {\n this.logger.error(`Unable to Update with criteria ${criteria} and data ${update}`);\n throw e;\n }\n }\n\n public async delete(criteria: FilterQuery<D>): Promise<boolean> {\n try {\n const deleted = await this.model.findOneAndDelete(this.mapConditions(criteria));\n return !!deleted;\n } catch (e) {\n this.logger.error(`Unable to delete the model with criteria ${criteria}`);\n throw e;\n }\n }\n\n public async bulkDelete(criteria: FilterQuery<D>): Promise<number> {\n try {\n const deleted = await this.model.deleteMany(this.mapConditions(criteria));\n return deleted?.deletedCount || 0;\n } catch (e) {\n this.logger.error(`Unable to delete the model with criteria ${criteria}`);\n throw e;\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n private mapConditions(conditions: FilterQuery<D>): FilterQuery<D> {\n const { id: _id, ...remaining } = conditions;\n return {\n ...(_id ? { _id } : {}),\n ...remaining,\n };\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { inject, injectable, optional } from 'inversify';\nimport { Connection } from 'mongoose';\nimport { logger as Logger } from '@cdm-logger/server/lib/logger';\n// @ts-ignore\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { IChannel } from '@messenger-box/core';\nimport { ChannelModelFunc } from '../models';\nimport { BaseRepository } from './base-repository';\n\n@injectable()\nexport class ChannelRepository extends BaseRepository<IChannel> {\n constructor(\n @inject('MongoDBConnection')\n db: Connection,\n @inject('Logger')\n logger: typeof Logger,\n @inject('IMongoOptions')\n @optional()\n options?: IMongoOptions,\n ) {\n super(ChannelModelFunc, db, logger, options);\n }\n}\n","export * from './channel-repository';\nexport * from './post-repository';\nexport * from './post-thread-repository';\nexport * from './reaction-repository';\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { inject, injectable, optional } from 'inversify';\nimport { Connection } from 'mongoose';\nimport { logger as Logger } from '@cdm-logger/server/lib/logger';\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { IPost } from '@messenger-box/core';\nimport { PostModelFunc } from '../models';\nimport { BaseRepository } from './base-repository';\n\n@injectable()\nexport class PostRepository extends BaseRepository<IPost> {\n constructor(\n @inject('MongoDBConnection')\n db: Connection,\n @inject('Logger')\n logger: typeof Logger,\n @inject('IMongoOptions')\n @optional()\n options?: IMongoOptions,\n ) {\n super(PostModelFunc, db, logger, options);\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { inject, injectable, optional } from 'inversify';\nimport { Connection } from 'mongoose';\nimport { logger as Logger } from '@cdm-logger/server/lib/logger';\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { IPostThread } from '@messenger-box/core';\nimport { PostThreadModelFunc } from '../models';\nimport { BaseRepository } from './base-repository';\n\n@injectable()\nexport class PostThreadRepository extends BaseRepository<IPostThread> {\n constructor(\n @inject('MongoDBConnection')\n db: Connection,\n @inject('Logger')\n logger: typeof Logger,\n @inject('IMongoOptions')\n @optional()\n options?: IMongoOptions,\n ) {\n super(PostThreadModelFunc, db, logger, options);\n }\n}\n","import { IReaction } from '@messenger-box/core';\nimport { inject, optional } from 'inversify';\nimport { Connection } from 'mongoose';\nimport { logger as Logger } from '@cdm-logger/server';\nimport { IMongoOptions } from '@common-stack/store-mongo';\nimport { ReactionModelFunc } from '../models';\nimport { BaseRepository } from './base-repository';\nimport { IReactionRepository } from '../../interfaces';\n\nexport class ReactionRepository extends BaseRepository<IReaction> implements IReactionRepository {\n constructor(\n @inject('MongoDBConnection')\n db: Connection,\n @inject('Logger')\n logger: typeof Logger,\n @inject('IMongoOptions')\n @optional()\n options?: IMongoOptions,\n ) {\n super(ReactionModelFunc, db, logger, options);\n }\n}\n","module.exports = require(\"@adminide-stack/account-api-server\");","module.exports = require(\"@adminide-stack/core\");","module.exports = require(\"@common-stack/server-core\");","module.exports = require(\"@messenger-box/core\");","module.exports = require(\"graphql-iso-date\");","module.exports = require(\"inversify\");","module.exports = require(\"lodash\");","module.exports = require(\"mongoose\");"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messenger-box/platform-server",
3
- "version": "0.0.1-alpha.61",
3
+ "version": "0.0.1-alpha.63",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -38,7 +38,7 @@
38
38
  }
39
39
  },
40
40
  "dependencies": {
41
- "@messenger-box/core": "0.0.1-alpha.58",
41
+ "@messenger-box/core": "0.0.1-alpha.63",
42
42
  "aws-sdk": "^2.978.0"
43
43
  },
44
44
  "peerDependencies": {
@@ -58,5 +58,5 @@
58
58
  "typescript": {
59
59
  "definition": "lib/index.d.ts"
60
60
  },
61
- "gitHead": "1c84461ae432fa728746ac75b68e01983bce7f70"
61
+ "gitHead": "8e5c2541462217e1f687f94546355b7baf8a3778"
62
62
  }