@venturialstd/social-network 0.0.5 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -33,4 +33,5 @@ export * from './social-network.module';
33
33
  export * from './types/content-element.types';
34
34
  export * from './types/content-music.types';
35
35
  export * from './types/feed.types';
36
+ export * from './utils/user-settings-privacy.util';
36
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC"}
package/dist/index.js CHANGED
@@ -52,4 +52,5 @@ __exportStar(require("./social-network.module"), exports);
52
52
  __exportStar(require("./types/content-element.types"), exports);
53
53
  __exportStar(require("./types/content-music.types"), exports);
54
54
  __exportStar(require("./types/feed.types"), exports);
55
+ __exportStar(require("./utils/user-settings-privacy.util"), exports);
55
56
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uEAAqD;AACrD,4DAA0C;AAC1C,sEAAoD;AACpD,4DAA0C;AAC1C,oEAAkD;AAClD,kEAAgD;AAChD,yEAAuD;AACvD,wEAAsD;AACtD,2DAAyC;AACzC,mEAAiD;AACjD,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,yDAAuC;AACvC,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,qEAAmD;AACnD,0DAAwC;AACxC,mEAAiD;AACjD,0EAAwD;AACxD,yEAAuD;AACvD,4DAA0C;AAC1C,oEAAkD;AAClD,gEAA8C;AAC9C,0DAAwC;AACxC,8DAA4C;AAC5C,0DAAwC;AACxC,0DAAwC;AACxC,2DAAyC;AACzC,iEAA2F;AAAlF,gIAAA,uBAAuB,OAAA;AAAE,gIAAA,uBAAuB,OAAA;AACzD,0DAAwC;AACxC,gEAA8C;AAC9C,8DAA4C;AAC5C,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uEAAqD;AACrD,4DAA0C;AAC1C,sEAAoD;AACpD,4DAA0C;AAC1C,oEAAkD;AAClD,kEAAgD;AAChD,yEAAuD;AACvD,wEAAsD;AACtD,2DAAyC;AACzC,mEAAiD;AACjD,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,yDAAuC;AACvC,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,qEAAmD;AACnD,0DAAwC;AACxC,mEAAiD;AACjD,0EAAwD;AACxD,yEAAuD;AACvD,4DAA0C;AAC1C,oEAAkD;AAClD,gEAA8C;AAC9C,0DAAwC;AACxC,8DAA4C;AAC5C,0DAAwC;AACxC,0DAAwC;AACxC,2DAAyC;AACzC,iEAA2F;AAAlF,gIAAA,uBAAuB,OAAA;AAAE,gIAAA,uBAAuB,OAAA;AACzD,0DAAwC;AACxC,gEAA8C;AAC9C,8DAA4C;AAC5C,qDAAmC;AACnC,qEAAmD"}
@@ -1 +1 @@
1
- {"version":3,"file":"feed.service.d.ts","sourceRoot":"","sources":["../../src/services/feed.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrC,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,YAAY,EACb,MAAM,qBAAqB,CAAC;AAE7B,qBACa,WAAW;IAGpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,EAE1B,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;IAOvC,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkE3D,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS5D,YAAY,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA6DhE,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAInE"}
1
+ {"version":3,"file":"feed.service.d.ts","sourceRoot":"","sources":["../../src/services/feed.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,YAAY,EACb,MAAM,qBAAqB,CAAC;AAE7B,qBACa,WAAW;IAGpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,EAE1B,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;IAOvC,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAoE3D,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAc5D,YAAY,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyBhE,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAInE"}
@@ -16,7 +16,6 @@ exports.FeedService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const typeorm_1 = require("@nestjs/typeorm");
18
18
  const typeorm_2 = require("typeorm");
19
- const social_network_constant_1 = require("../constants/social-network.constant");
20
19
  const feed_constant_1 = require("../constants/feed.constant");
21
20
  const post_entity_1 = require("../entities/post.entity");
22
21
  const reel_entity_1 = require("../entities/reel.entity");
@@ -40,20 +39,22 @@ let FeedService = class FeedService {
40
39
  };
41
40
  const qb = this.postRepo
42
41
  .createQueryBuilder('p')
43
- .addSelect(`(SELECT COUNT(*)::int FROM social_comment c WHERE c."targetType" = :postType AND c."targetId" = p.id)`, 'comment_count')
44
- .addSelect(`(SELECT COUNT(*)::int FROM social_reaction r WHERE r."targetType" = :postType AND r."targetId" = p.id)`, 'reaction_count')
45
- .addSelect(`(1.0 / (1.0 + EXTRACT(EPOCH FROM (NOW() - p."createdAt")) / 86400.0))`, 'recency_factor')
46
- .setParameter('postType', social_network_constant_1.ContentTargetType.POST);
42
+ .addSelect(`(SELECT COUNT(*)::int FROM social_comment c WHERE c."targetType"::text = 'POST' AND c."targetId" = p.id)`, 'comment_count')
43
+ .addSelect(`(SELECT COUNT(*)::int FROM social_reaction r WHERE r."targetType"::text = 'POST' AND r."targetId" = p.id)`, 'reaction_count')
44
+ .addSelect(`(1.0 / (1.0 + EXTRACT(EPOCH FROM (NOW() - p."createdAt")) / 86400.0))`, 'recency_factor');
47
45
  if (!includeArchived) {
48
46
  qb.andWhere('p.isArchived = :archived', { archived: false });
49
47
  }
50
48
  if (options.userId) {
51
49
  qb.andWhere('p.userId = :userId', { userId: options.userId });
52
50
  }
53
- const scoreExpr = `(
54
- (SELECT COUNT(*) FROM social_comment c WHERE c."targetType" = 'POST' AND c."targetId" = p.id) * :commentWeight +
55
- (SELECT COUNT(*) FROM social_reaction r WHERE r."targetType" = 'POST' AND r."targetId" = p.id) * :reactionWeight +
56
- (1.0 / (1.0 + EXTRACT(EPOCH FROM (NOW() - p."createdAt")) / 86400.0)) * :recencyWeight
51
+ if (options.authorIds?.length) {
52
+ qb.andWhere('p.userId IN (:...authorIds)', { authorIds: options.authorIds });
53
+ }
54
+ const scoreExpr = `(
55
+ (SELECT COUNT(*) FROM social_comment c WHERE c."targetType"::text = 'POST' AND c."targetId" = p.id) * :commentWeight +
56
+ (SELECT COUNT(*) FROM social_reaction r WHERE r."targetType"::text = 'POST' AND r."targetId" = p.id) * :reactionWeight +
57
+ (1.0 / (1.0 + EXTRACT(EPOCH FROM (NOW() - p."createdAt")) / 86400.0)) * :recencyWeight
57
58
  )`;
58
59
  qb.addSelect(scoreExpr, 'importance_score')
59
60
  .setParameter('commentWeight', weights.commentWeight)
@@ -80,44 +81,21 @@ let FeedService = class FeedService {
80
81
  async getFeedReels(options = {}) {
81
82
  const limit = Math.min(options.limit ?? 20, 100);
82
83
  const offset = options.offset ?? 0;
83
- const randomizeTies = options.randomizeTies ?? true;
84
- const weights = {
85
- commentWeight: feed_constant_1.DEFAULT_IMPORTANCE_WEIGHTS.commentWeight,
86
- reactionWeight: feed_constant_1.DEFAULT_IMPORTANCE_WEIGHTS.reactionWeight,
87
- recencyWeight: feed_constant_1.DEFAULT_IMPORTANCE_WEIGHTS.recencyWeight,
88
- ...options.weights,
89
- };
90
- const qb = this.reelRepo
91
- .createQueryBuilder('r')
92
- .addSelect(`(SELECT COUNT(*)::int FROM social_comment c WHERE c."targetType" = :reelType AND c."targetId" = r.id)`, 'comment_count')
93
- .addSelect(`(SELECT COUNT(*)::int FROM social_reaction r2 WHERE r2."targetType" = :reelType AND r2."targetId" = r.id)`, 'reaction_count')
94
- .addSelect(`(1.0 / (1.0 + EXTRACT(EPOCH FROM (NOW() - r."createdAt")) / 86400.0))`, 'recency_factor')
95
- .setParameter('reelType', social_network_constant_1.ContentTargetType.REEL);
84
+ const qb = this.reelRepo.createQueryBuilder('r');
96
85
  if (options.userId) {
97
86
  qb.andWhere('r.userId = :userId', { userId: options.userId });
98
87
  }
99
- const scoreExpr = `(
100
- (SELECT COUNT(*) FROM social_comment c WHERE c."targetType" = 'REEL' AND c."targetId" = r.id) * :commentWeight +
101
- (SELECT COUNT(*) FROM social_reaction r2 WHERE r2."targetType" = 'REEL' AND r2."targetId" = r.id) * :reactionWeight +
102
- (1.0 / (1.0 + EXTRACT(EPOCH FROM (NOW() - r."createdAt")) / 86400.0)) * :recencyWeight
103
- )`;
104
- qb.addSelect(scoreExpr, 'importance_score')
105
- .setParameter('commentWeight', weights.commentWeight)
106
- .setParameter('reactionWeight', weights.reactionWeight)
107
- .setParameter('recencyWeight', weights.recencyWeight);
108
- qb.orderBy('importance_score', 'DESC');
109
- if (randomizeTies) {
110
- qb.addOrderBy('RANDOM()');
88
+ if (options.authorIds?.length) {
89
+ qb.andWhere('r.userId IN (:...authorIds)', { authorIds: options.authorIds });
111
90
  }
112
- qb.take(limit).skip(offset);
113
- const raw = await qb.getRawAndEntities();
114
- const results = raw.entities.map((reel, i) => ({
91
+ qb.orderBy('r.createdAt', 'DESC').take(limit).skip(offset);
92
+ const reels = await qb.getMany();
93
+ return reels.map((reel) => ({
115
94
  reel,
116
- importanceScore: parseFloat(raw.raw[i].importance_score) ?? 0,
117
- commentCount: parseInt(raw.raw[i].comment_count, 10) ?? 0,
118
- reactionCount: parseInt(raw.raw[i].reaction_count, 10) ?? 0,
95
+ importanceScore: 0,
96
+ commentCount: 0,
97
+ reactionCount: 0,
119
98
  }));
120
- return results;
121
99
  }
122
100
  async getFeedReelIds(options = {}) {
123
101
  const items = await this.getFeedReels({ ...options, limit: options.limit ?? 50 });
@@ -1 +1 @@
1
- {"version":3,"file":"feed.service.js","sourceRoot":"","sources":["../../src/services/feed.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feed.service.js","sourceRoot":"","sources":["../../src/services/feed.service.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,28 @@ import { TypeOrmCrudService } from '@dataui/crud-typeorm';
2
2
  import { Repository } from 'typeorm';
3
3
  import { FriendRequest } from '../entities/friend-request.entity';
4
4
  import { Friendship } from '../entities/friendship.entity';
5
+ import { FollowService } from './follow.service';
5
6
  export declare class FriendRequestService extends TypeOrmCrudService<FriendRequest> {
6
7
  readonly repo: Repository<FriendRequest>;
7
8
  private readonly friendshipRepo;
8
- constructor(repo: Repository<FriendRequest>, friendshipRepo: Repository<Friendship>);
9
+ private readonly followService;
10
+ constructor(repo: Repository<FriendRequest>, friendshipRepo: Repository<Friendship>, followService: FollowService);
11
+ submitOrResubmitPending(fromUserId: string, toUserId: string): Promise<FriendRequest>;
12
+ getOutgoingPairStatus(fromUserId: string, toUserId: string): Promise<{
13
+ requestId?: string;
14
+ friendRequestStatus: string;
15
+ isFollowing: boolean;
16
+ }>;
17
+ acceptWithFollowEdge(requestId: string, acceptedByUserId: string): Promise<FriendRequest>;
18
+ acceptWithFollowEdgeByPair(fromUserId: string, acceptedByUserId: string): Promise<FriendRequest>;
9
19
  accept(requestId: string, acceptedByUserId: string): Promise<FriendRequest>;
10
20
  reject(requestId: string, rejectedByUserId: string): Promise<FriendRequest>;
21
+ rejectByPair(fromUserId: string, rejectedByUserId: string): Promise<FriendRequest>;
11
22
  cancel(requestId: string, cancelledByUserId: string): Promise<void>;
12
23
  getPendingReceived(userId: string): Promise<FriendRequest[]>;
13
24
  getPendingSent(userId: string): Promise<FriendRequest[]>;
14
25
  private ensureFriendship;
26
+ private ensureFriendshipWithEm;
27
+ private ensureFollowWithEm;
15
28
  }
16
29
  //# sourceMappingURL=friend-request.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"friend-request.service.d.ts","sourceRoot":"","sources":["../../src/services/friend-request.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAMrC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,qBACa,oBAAqB,SAAQ,kBAAkB,CAAC,aAAa,CAAC;aAGvD,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC;IAE/C,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAFf,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,EAE9B,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC;IAKnD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAe3E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAa3E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAO5D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAOhD,gBAAgB;CAa/B"}
1
+ {"version":3,"file":"friend-request.service.d.ts","sourceRoot":"","sources":["../../src/services/friend-request.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,OAAO,EAAiB,UAAU,EAAE,MAAM,SAAS,CAAC;AAOpD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBACa,oBAAqB,SAAQ,kBAAkB,CAAC,aAAa,CAAC;aAGvD,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC;IAE/C,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAHd,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,EAE9B,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC,EACtC,aAAa,EAAE,aAAa;IASzC,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAoCrF,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAkB/E,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAoBzF,0BAA0B,CAC9B,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,aAAa,CAAC;IAiBnB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAe3E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAc3E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAclF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAO5D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAOhD,gBAAgB;YAIhB,sBAAsB;YAoBtB,kBAAkB;CAajC"}
@@ -18,15 +18,92 @@ const common_1 = require("@nestjs/common");
18
18
  const typeorm_1 = require("@nestjs/typeorm");
19
19
  const typeorm_2 = require("typeorm");
20
20
  const social_network_constant_1 = require("../constants/social-network.constant");
21
+ const follow_entity_1 = require("../entities/follow.entity");
21
22
  const friend_request_entity_1 = require("../entities/friend-request.entity");
22
23
  const friendship_entity_1 = require("../entities/friendship.entity");
24
+ const follow_service_1 = require("./follow.service");
23
25
  let FriendRequestService = class FriendRequestService extends crud_typeorm_1.TypeOrmCrudService {
24
26
  repo;
25
27
  friendshipRepo;
26
- constructor(repo, friendshipRepo) {
28
+ followService;
29
+ constructor(repo, friendshipRepo, followService) {
27
30
  super(repo);
28
31
  this.repo = repo;
29
32
  this.friendshipRepo = friendshipRepo;
33
+ this.followService = followService;
34
+ }
35
+ async submitOrResubmitPending(fromUserId, toUserId) {
36
+ if (fromUserId === toUserId) {
37
+ throw new common_1.BadRequestException('Cannot send a friend request to yourself');
38
+ }
39
+ if (await this.followService.isFollowing(fromUserId, toUserId)) {
40
+ throw new common_1.ConflictException('Already following this user');
41
+ }
42
+ const existing = await this.repo.findOne({ where: { fromUserId, toUserId } });
43
+ if (!existing) {
44
+ const created = this.repo.create({
45
+ fromUserId,
46
+ toUserId,
47
+ status: social_network_constant_1.FriendRequestStatus.PENDING,
48
+ });
49
+ return this.repo.save(created);
50
+ }
51
+ if (existing.status === social_network_constant_1.FriendRequestStatus.PENDING) {
52
+ return existing;
53
+ }
54
+ if (existing.status === social_network_constant_1.FriendRequestStatus.ACCEPTED) {
55
+ throw new common_1.ConflictException('Friend request already accepted');
56
+ }
57
+ if (existing.status === social_network_constant_1.FriendRequestStatus.REJECTED) {
58
+ existing.status = social_network_constant_1.FriendRequestStatus.PENDING;
59
+ existing.message = '';
60
+ return this.repo.save(existing);
61
+ }
62
+ throw new common_1.ConflictException('Unable to update friend request');
63
+ }
64
+ async getOutgoingPairStatus(fromUserId, toUserId) {
65
+ const isFollowing = await this.followService.isFollowing(fromUserId, toUserId);
66
+ const row = await this.repo.findOne({ where: { fromUserId, toUserId } });
67
+ if (!row) {
68
+ return { friendRequestStatus: 'none', isFollowing };
69
+ }
70
+ return {
71
+ requestId: row.id,
72
+ friendRequestStatus: row.status,
73
+ isFollowing,
74
+ };
75
+ }
76
+ async acceptWithFollowEdge(requestId, acceptedByUserId) {
77
+ return this.repo.manager.transaction(async (em) => {
78
+ const frRepo = em.getRepository(friend_request_entity_1.FriendRequest);
79
+ const request = await frRepo.findOne({ where: { id: requestId } });
80
+ if (!request)
81
+ throw new common_1.NotFoundException(`Friend request ${requestId} not found`);
82
+ if (request.toUserId !== acceptedByUserId) {
83
+ throw new common_1.BadRequestException('Only the recipient can accept this request');
84
+ }
85
+ if (request.status !== social_network_constant_1.FriendRequestStatus.PENDING) {
86
+ throw new common_1.BadRequestException('Request is no longer pending');
87
+ }
88
+ request.status = social_network_constant_1.FriendRequestStatus.ACCEPTED;
89
+ await frRepo.save(request);
90
+ await this.ensureFriendshipWithEm(em, request.fromUserId, request.toUserId);
91
+ await this.ensureFollowWithEm(em, request.fromUserId, request.toUserId);
92
+ return request;
93
+ });
94
+ }
95
+ async acceptWithFollowEdgeByPair(fromUserId, acceptedByUserId) {
96
+ const row = await this.repo.findOne({
97
+ where: {
98
+ fromUserId,
99
+ toUserId: acceptedByUserId,
100
+ status: social_network_constant_1.FriendRequestStatus.PENDING,
101
+ },
102
+ });
103
+ if (!row) {
104
+ throw new common_1.NotFoundException('No pending friend request for this pair');
105
+ }
106
+ return this.acceptWithFollowEdge(row.id, acceptedByUserId);
30
107
  }
31
108
  async accept(requestId, acceptedByUserId) {
32
109
  const request = await this.repo.findOne({ where: { id: requestId } });
@@ -56,6 +133,19 @@ let FriendRequestService = class FriendRequestService extends crud_typeorm_1.Typ
56
133
  request.status = social_network_constant_1.FriendRequestStatus.REJECTED;
57
134
  return this.repo.save(request);
58
135
  }
136
+ async rejectByPair(fromUserId, rejectedByUserId) {
137
+ const row = await this.repo.findOne({
138
+ where: {
139
+ fromUserId,
140
+ toUserId: rejectedByUserId,
141
+ status: social_network_constant_1.FriendRequestStatus.PENDING,
142
+ },
143
+ });
144
+ if (!row) {
145
+ throw new common_1.NotFoundException('No pending friend request for this pair');
146
+ }
147
+ return this.reject(row.id, rejectedByUserId);
148
+ }
59
149
  async cancel(requestId, cancelledByUserId) {
60
150
  const request = await this.repo.findOne({ where: { id: requestId } });
61
151
  if (!request)
@@ -81,18 +171,31 @@ let FriendRequestService = class FriendRequestService extends crud_typeorm_1.Typ
81
171
  });
82
172
  }
83
173
  async ensureFriendship(userIdA, userIdB) {
174
+ await this.ensureFriendshipWithEm(this.repo.manager, userIdA, userIdB);
175
+ }
176
+ async ensureFriendshipWithEm(em, userIdA, userIdB) {
177
+ const friendshipRepo = em.getRepository(friendship_entity_1.Friendship);
84
178
  const [id1, id2] = userIdA < userIdB ? [userIdA, userIdB] : [userIdB, userIdA];
85
- const existing = await this.friendshipRepo.findOne({
179
+ const existing = await friendshipRepo.findOne({
86
180
  where: { userId: id1, friendUserId: id2 },
87
181
  });
88
182
  if (existing)
89
183
  return;
90
- const friendship = this.friendshipRepo.create({
184
+ await friendshipRepo.save(friendshipRepo.create({
91
185
  userId: id1,
92
186
  friendUserId: id2,
93
187
  status: social_network_constant_1.FriendshipStatus.ACTIVE,
94
- });
95
- await this.friendshipRepo.save(friendship);
188
+ }));
189
+ }
190
+ async ensureFollowWithEm(em, followerId, followingId) {
191
+ if (followerId === followingId) {
192
+ throw new common_1.BadRequestException('Cannot follow yourself');
193
+ }
194
+ const followRepo = em.getRepository(follow_entity_1.Follow);
195
+ const existing = await followRepo.findOne({ where: { followerId, followingId } });
196
+ if (existing)
197
+ return;
198
+ await followRepo.save(followRepo.create({ followerId, followingId }));
96
199
  }
97
200
  };
98
201
  exports.FriendRequestService = FriendRequestService;
@@ -101,6 +204,7 @@ exports.FriendRequestService = FriendRequestService = __decorate([
101
204
  __param(0, (0, typeorm_1.InjectRepository)(friend_request_entity_1.FriendRequest)),
102
205
  __param(1, (0, typeorm_1.InjectRepository)(friendship_entity_1.Friendship)),
103
206
  __metadata("design:paramtypes", [typeorm_2.Repository,
104
- typeorm_2.Repository])
207
+ typeorm_2.Repository,
208
+ follow_service_1.FollowService])
105
209
  ], FriendRequestService);
106
210
  //# sourceMappingURL=friend-request.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"friend-request.service.js","sourceRoot":"","sources":["../../src/services/friend-request.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"friend-request.service.js","sourceRoot":"","sources":["../../src/services/friend-request.service.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export interface ImportanceWeights {
7
7
  }
8
8
  export interface FeedOptions {
9
9
  userId?: string;
10
+ authorIds?: string[];
10
11
  limit?: number;
11
12
  offset?: number;
12
13
  includeArchived?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"feed.types.d.ts","sourceRoot":"","sources":["../../src/types/feed.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/C,MAAM,WAAW,iBAAiB;IAEhC,aAAa,EAAE,MAAM,CAAC;IAEtB,cAAc,EAAE,MAAM,CAAC;IAEvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,WAAW;IAE1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAErC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"feed.types.d.ts","sourceRoot":"","sources":["../../src/types/feed.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/C,MAAM,WAAW,iBAAiB;IAEhC,aAAa,EAAE,MAAM,CAAC;IAEtB,cAAc,EAAE,MAAM,CAAC;IAEvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,WAAW;IAE1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAErC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export declare function readIsPrivateAccountFromSettings(settings: Record<string, unknown> | null | undefined): boolean;
2
+ //# sourceMappingURL=user-settings-privacy.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-settings-privacy.util.d.ts","sourceRoot":"","sources":["../../src/utils/user-settings-privacy.util.ts"],"names":[],"mappings":"AAKA,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAKT"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readIsPrivateAccountFromSettings = readIsPrivateAccountFromSettings;
4
+ function readIsPrivateAccountFromSettings(settings) {
5
+ if (!settings || typeof settings !== 'object' || Array.isArray(settings)) {
6
+ return false;
7
+ }
8
+ return settings.isPrivateAccount === true;
9
+ }
10
+ //# sourceMappingURL=user-settings-privacy.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-settings-privacy.util.js","sourceRoot":"","sources":["../../src/utils/user-settings-privacy.util.ts"],"names":[],"mappings":";;AAKA,4EAOC;AAPD,SAAgB,gCAAgC,CAC9C,QAAoD;IAEpD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venturialstd/social-network",
3
- "version": "0.0.5",
3
+ "version": "0.0.8",
4
4
  "description": "Social network entities and module for Venturial (posts, reels, stories, friends, reactions, comments)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",