@messenger-box/platform-server 0.0.1-alpha.312 → 0.0.1-alpha.314

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.
@@ -20,21 +20,49 @@ import {Schema}from'mongoose';import {commonModeSchemaOptions,addIdVirtualFields
20
20
  ].includes(this.type);
21
21
  }
22
22
  },
23
- members: [
24
- new Schema({
25
- user: { type: Schema.Types.ObjectId, ref: 'accounts' },
26
- roles: { type: Schema.Types.String },
27
- msgCount: { type: Schema.Types.Number },
28
- mentionCount: { type: Schema.Types.Number },
29
- mentionCountRoot: { type: Schema.Types.Number },
30
- msgCountRoot: { type: Schema.Types.Number },
31
- notifyProps: { type: Schema.Types.Mixed },
32
- explicitRoles: { type: Schema.Types.String },
33
- schemeAdmin: { type: Schema.Types.String },
34
- lastViewedAt: { type: Schema.Types.Date },
35
- deletedAt: { type: Schema.Types.Date },
36
- }, commonModeSchemaOptions),
37
- ],
23
+ members: {
24
+ type: [
25
+ new Schema({
26
+ user: { type: Schema.Types.ObjectId, ref: 'accounts' },
27
+ roles: { type: Schema.Types.String },
28
+ msgCount: { type: Schema.Types.Number },
29
+ mentionCount: { type: Schema.Types.Number },
30
+ mentionCountRoot: { type: Schema.Types.Number },
31
+ msgCountRoot: { type: Schema.Types.Number },
32
+ notifyProps: { type: Schema.Types.Mixed },
33
+ explicitRoles: { type: Schema.Types.String },
34
+ schemeAdmin: { type: Schema.Types.String },
35
+ lastViewedAt: { type: Schema.Types.Date },
36
+ deletedAt: { type: Schema.Types.Date },
37
+ }, commonModeSchemaOptions),
38
+ ],
39
+ required: true,
40
+ validate: {
41
+ message: 'Channel already exists',
42
+ validator: async function (members, type) {
43
+ // Extract the IDs of the users in the members array
44
+ const userIds = members.map(member => member.user.toString());
45
+ // Check if there are any duplicate user IDs
46
+ const uniqueUserIds = [...new Set(userIds)];
47
+ if (uniqueUserIds.length !== userIds.length) {
48
+ return false;
49
+ }
50
+ if (this.type !== "DIRECT" /* IRoomType.Direct */ || (members === null || members === void 0 ? void 0 : members.length) > 2) {
51
+ return true;
52
+ }
53
+ // Check if any of the user IDs already exist in other direct channels
54
+ const filter = {
55
+ type: "DIRECT" /* IRoomType.Direct */,
56
+ 'members.user': { $all: members.map(m => m.user) },
57
+ members: {
58
+ $size: 2,
59
+ }
60
+ };
61
+ const directChannels = await this.constructor.findOne(filter);
62
+ return !directChannels;
63
+ },
64
+ },
65
+ },
38
66
  deletedAt: { type: Schema.Types.Date },
39
67
  lastPostAt: { type: Schema.Types.Date },
40
68
  totalMsgCount: { type: Schema.Types.Number },
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sources":["../../../src/store/models/channel.ts"],"sourcesContent":[null],"names":[],"mappings":"2GAMA,MAAM,kBAAkB,GAAG,IAAI,MAAM,CACjC;AACI,IAAA,IAAI,EAAE;AACF,QAAA,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;AACzB,QAAA,IAAI,EAAE;;;;;;;AAOL,SAAA;AACD,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;AACzB,QAAA,QAAQ,EAAE,YAAA;AACN,YAAA,OAAO,CAAC;;;AAGP,aAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;AACJ,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,IAAI,MAAM,CACN;AACI,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE;YACtD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YACvC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YAC3C,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YAC/C,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;YACzC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YAC5C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YAC1C,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACzC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;AACzC,SAAA,EACD,uBAAuB,CAC1B;AACJ,KAAA;IACD,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;IACtC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;IACvC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;IAC5C,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;AAChD,IAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE;IAClD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;IACpC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;IAC1C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;IAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;IACnC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;AACtC,IAAA,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE;CAC5D,EACD,uBAAuB,CAC1B,CAAC;AAEF,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AAG1B,MAAA,gBAAgB,GAAyC,CAAC,EAAE,KACrE,EAAE,CAAC,KAAK,CAAgB,SAAS,EAAE,kBAAkB"}
1
+ {"version":3,"file":"channel.js","sources":["../../../src/store/models/channel.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messenger-box/platform-server",
3
- "version": "0.0.1-alpha.312",
3
+ "version": "0.0.1-alpha.314",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -49,5 +49,5 @@
49
49
  "typescript": {
50
50
  "definition": "lib/index.d.ts"
51
51
  },
52
- "gitHead": "b75f2247e269052210c0700ed60391d4cc7d5611"
52
+ "gitHead": "44f111edd45e9fbc07765be538861a73dfe7939e"
53
53
  }