@volontariapp/domain-post 3.7.9 → 3.8.0-snap-9c53924

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/entities/index.d.ts +1 -0
  3. package/dist/entities/index.d.ts.map +1 -1
  4. package/dist/entities/index.js +1 -0
  5. package/dist/entities/index.js.map +1 -1
  6. package/dist/entities/post-media.entity.d.ts +9 -0
  7. package/dist/entities/post-media.entity.d.ts.map +1 -0
  8. package/dist/entities/post-media.entity.js +8 -0
  9. package/dist/entities/post-media.entity.js.map +1 -0
  10. package/dist/entities/post.entity.d.ts +4 -0
  11. package/dist/entities/post.entity.d.ts.map +1 -1
  12. package/dist/entities/post.entity.js +3 -0
  13. package/dist/entities/post.entity.js.map +1 -1
  14. package/dist/enums/index.d.ts +2 -0
  15. package/dist/enums/index.d.ts.map +1 -0
  16. package/dist/enums/index.js +2 -0
  17. package/dist/enums/index.js.map +1 -0
  18. package/dist/enums/post-media-status.enum.d.ts +13 -0
  19. package/dist/enums/post-media-status.enum.d.ts.map +1 -0
  20. package/dist/enums/post-media-status.enum.js +15 -0
  21. package/dist/enums/post-media-status.enum.js.map +1 -0
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/models/index.d.ts +1 -0
  27. package/dist/models/index.d.ts.map +1 -1
  28. package/dist/models/index.js +1 -0
  29. package/dist/models/index.js.map +1 -1
  30. package/dist/models/mapper.d.ts.map +1 -1
  31. package/dist/models/mapper.js +3 -1
  32. package/dist/models/mapper.js.map +1 -1
  33. package/dist/models/post-media.model.d.ts +11 -0
  34. package/dist/models/post-media.model.d.ts.map +1 -0
  35. package/dist/models/post-media.model.js +56 -0
  36. package/dist/models/post-media.model.js.map +1 -0
  37. package/dist/models/post.model.d.ts +4 -0
  38. package/dist/models/post.model.d.ts.map +1 -1
  39. package/dist/models/post.model.js +19 -2
  40. package/dist/models/post.model.js.map +1 -1
  41. package/dist/repositories/interfaces/post.repository.d.ts +12 -6
  42. package/dist/repositories/interfaces/post.repository.d.ts.map +1 -1
  43. package/dist/repositories/postgres-post.repository.d.ts +7 -5
  44. package/dist/repositories/postgres-post.repository.d.ts.map +1 -1
  45. package/dist/repositories/postgres-post.repository.js +175 -15
  46. package/dist/repositories/postgres-post.repository.js.map +1 -1
  47. package/dist/services/post.service.d.ts +9 -6
  48. package/dist/services/post.service.d.ts.map +1 -1
  49. package/dist/services/post.service.js +50 -10
  50. package/dist/services/post.service.js.map +1 -1
  51. package/dist/test/__test-utils__/mocks/post.repository.mock.d.ts.map +1 -1
  52. package/dist/test/__test-utils__/mocks/post.repository.mock.js +1 -0
  53. package/dist/test/__test-utils__/mocks/post.repository.mock.js.map +1 -1
  54. package/dist/test/data-source.js +2 -2
  55. package/dist/test/data-source.js.map +1 -1
  56. package/dist/test/migrations/domain/1781000000000-AddPostMediaAndMediaStatus.d.ts +7 -0
  57. package/dist/test/migrations/domain/1781000000000-AddPostMediaAndMediaStatus.d.ts.map +1 -0
  58. package/dist/test/migrations/domain/1781000000000-AddPostMediaAndMediaStatus.js +24 -0
  59. package/dist/test/migrations/domain/1781000000000-AddPostMediaAndMediaStatus.js.map +1 -0
  60. package/dist/test/unit/post-media.unit.spec.d.ts +2 -0
  61. package/dist/test/unit/post-media.unit.spec.d.ts.map +1 -0
  62. package/dist/test/unit/post-media.unit.spec.js +97 -0
  63. package/dist/test/unit/post-media.unit.spec.js.map +1 -0
  64. package/package.json +5 -5
@@ -12,21 +12,32 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  import { Injectable } from '@nestjs/common';
14
14
  import { InjectRepository } from '@nestjs/typeorm';
15
+ import { randomUUID } from 'crypto';
15
16
  import { BaseRepository, ILike, In, EventQueueEntity, EventQueueModel, } from '@volontariapp/database';
16
17
  import { EventQueueRepository } from '@volontariapp/outbox';
17
18
  import { Streams } from '@volontariapp/shared';
19
+ import { ForbiddenError } from '@volontariapp/errors';
18
20
  import { PostEventMessagingType, } from '@volontariapp/messaging';
19
- import { PostModel, CommentModel } from '../models/index.js';
21
+ import { PostModel, PostMediaModel, CommentModel } from '../models/index.js';
20
22
  import { PostEntity } from '../entities/index.js';
23
+ import { PostMediaStatus, PostMediaScanStatus } from '../enums/index.js';
21
24
  let PostgresPostRepository = class PostgresPostRepository extends BaseRepository {
22
25
  constructor(repository) {
23
26
  super(repository, PostEntity, PostModel);
24
27
  }
25
- async findById(id, relations = []) {
26
- if (relations.length > 0) {
27
- return this.findWithRelations({ id }, relations);
28
+ async findById(id, relations = [], readerId) {
29
+ const post = relations.length > 0
30
+ ? await this.findWithRelations({ id }, relations)
31
+ : await super.findById(id);
32
+ if (!post)
33
+ return null;
34
+ if (readerId && post.authorId === readerId) {
35
+ return post;
36
+ }
37
+ if (post.media_status !== PostMediaStatus.NONE && post.media_status !== PostMediaStatus.READY) {
38
+ return null;
28
39
  }
29
- return super.findById(id);
40
+ return post;
30
41
  }
31
42
  async findByAuthorId(authorId, relations = []) {
32
43
  return super.find({
@@ -40,12 +51,52 @@ let PostgresPostRepository = class PostgresPostRepository extends BaseRepository
40
51
  }
41
52
  return super.find();
42
53
  }
43
- async search(searchTerm) {
44
- return super.find({ where: { title: ILike(`%${searchTerm}%`) } });
54
+ async search(searchTerm, readerIdOrFields) {
55
+ const readerId = typeof readerIdOrFields === 'string' ? readerIdOrFields : undefined;
56
+ const posts = await super.find({
57
+ where: { title: ILike(`%${searchTerm}%`) },
58
+ relations: ['media'],
59
+ });
60
+ return posts.filter((post) => {
61
+ if (readerId && post.authorId === readerId)
62
+ return true;
63
+ return (post.media_status === PostMediaStatus.NONE || post.media_status === PostMediaStatus.READY);
64
+ });
45
65
  }
46
- async listPaginated(page, limit, authorId) {
47
- const where = authorId ? { authorId } : undefined;
48
- return super.paginate({ page, limit }, { where });
66
+ async listPaginated(page, limit, authorId, readerId) {
67
+ if (authorId && readerId && authorId === readerId) {
68
+ return super.paginate({ page, limit }, { where: { authorId }, relations: ['media'] });
69
+ }
70
+ const visibleStatuses = [PostMediaStatus.NONE, PostMediaStatus.READY];
71
+ const qb = this.repository
72
+ .createQueryBuilder('post')
73
+ .leftJoinAndSelect('post.media', 'media')
74
+ .skip((page - 1) * limit)
75
+ .take(limit)
76
+ .orderBy('post.createdAt', 'DESC');
77
+ if (authorId) {
78
+ qb.andWhere('post.authorId = :authorId', { authorId });
79
+ }
80
+ if (!readerId) {
81
+ qb.andWhere('post.media_status IN (:...visibleStatuses)', { visibleStatuses });
82
+ }
83
+ else {
84
+ qb.andWhere('(post.authorId = :readerId OR post.media_status IN (:...visibleStatuses))', {
85
+ readerId,
86
+ visibleStatuses,
87
+ });
88
+ }
89
+ const [items, total] = await qb.getManyAndCount();
90
+ const entities = items.map((m) => this.toEntity(m));
91
+ return {
92
+ data: entities,
93
+ total,
94
+ page,
95
+ limit,
96
+ totalPages: Math.ceil(total / limit),
97
+ hasNextPage: page * limit < total,
98
+ hasPreviousPage: page > 1,
99
+ };
49
100
  }
50
101
  async deleteByAuthorId(authorId) {
51
102
  const result = await super.deleteWhere({ authorId });
@@ -53,14 +104,86 @@ let PostgresPostRepository = class PostgresPostRepository extends BaseRepository
53
104
  }
54
105
  async createWithPostCreated(data) {
55
106
  return this.executeInTransaction(async (queryRunner) => {
56
- const modelData = this.toModel(data);
57
- const postModel = queryRunner.manager.create(this.modelClass, modelData);
58
- const savedPostModel = await queryRunner.manager.save(this.modelClass, postModel);
59
- const savedPostEntity = this.toEntity(savedPostModel);
107
+ const postId = data.id ?? randomUUID();
108
+ const authorId = data.authorId ?? '';
109
+ const title = data.title ?? '';
110
+ const content = data.content ?? '';
111
+ const sagaStatus = data.saga_status ?? 'PENDING';
112
+ const fileIds = data.fileIds ?? data.media?.map((m) => m.fileId) ?? [];
113
+ let mediaStatus = data.media_status;
114
+ if (!mediaStatus) {
115
+ if (fileIds.length === 0) {
116
+ mediaStatus = PostMediaStatus.NONE;
117
+ }
118
+ else if (data.fileScanStatuses) {
119
+ const statuses = fileIds.map((fId) => data.fileScanStatuses?.[fId]);
120
+ if (statuses.some((s) => s === PostMediaScanStatus.REJECTED)) {
121
+ mediaStatus = PostMediaStatus.REJECTED;
122
+ }
123
+ else if (statuses.every((s) => s === PostMediaScanStatus.CLEAN)) {
124
+ mediaStatus = PostMediaStatus.READY;
125
+ }
126
+ else {
127
+ mediaStatus = PostMediaStatus.PENDING;
128
+ }
129
+ }
130
+ else {
131
+ mediaStatus = PostMediaStatus.PENDING;
132
+ }
133
+ }
134
+ const insertResult = await queryRunner.manager
135
+ .createQueryBuilder()
136
+ .insert()
137
+ .into(this.modelClass)
138
+ .values({
139
+ id: postId,
140
+ authorId,
141
+ title,
142
+ content,
143
+ saga_status: sagaStatus,
144
+ media_status: mediaStatus,
145
+ })
146
+ .orIgnore()
147
+ .returning('*')
148
+ .execute();
149
+ const insertedRows = insertResult.raw;
150
+ if (insertedRows.length === 0) {
151
+ const existingModel = await queryRunner.manager.findOne(this.modelClass, {
152
+ where: { id: postId },
153
+ relations: ['media'],
154
+ });
155
+ if (!existingModel) {
156
+ throw new Error(`Post with id ${postId} failed to insert but was not found`);
157
+ }
158
+ if (existingModel.authorId !== authorId) {
159
+ throw new ForbiddenError('You are not the author of this post');
160
+ }
161
+ return this.toEntity(existingModel);
162
+ }
163
+ if (fileIds.length > 0) {
164
+ const mediaValues = fileIds.map((fileId, index) => ({
165
+ id: randomUUID(),
166
+ postId,
167
+ fileId,
168
+ position: index,
169
+ scanStatus: data.fileScanStatuses?.[fileId] ?? PostMediaScanStatus.AWAITING_UPLOAD,
170
+ }));
171
+ await queryRunner.manager
172
+ .createQueryBuilder()
173
+ .insert()
174
+ .into(PostMediaModel)
175
+ .values(mediaValues)
176
+ .execute();
177
+ }
178
+ const finalModel = await queryRunner.manager.findOne(this.modelClass, {
179
+ where: { id: postId },
180
+ relations: ['media'],
181
+ });
182
+ const savedPostEntity = this.toEntity(finalModel ?? insertedRows[0]);
60
183
  const payload = {
61
184
  postId: savedPostEntity.id,
62
185
  userId: savedPostEntity.authorId,
63
- fileIds: [],
186
+ fileIds,
64
187
  };
65
188
  if (data.eventId) {
66
189
  payload.eventId = data.eventId;
@@ -77,6 +200,42 @@ let PostgresPostRepository = class PostgresPostRepository extends BaseRepository
77
200
  return savedPostEntity;
78
201
  });
79
202
  }
203
+ async updateMediaScanStatus(postId, fileId, scanStatus) {
204
+ return this.executeInTransaction(async (queryRunner) => {
205
+ await queryRunner.manager
206
+ .createQueryBuilder()
207
+ .update(PostMediaModel)
208
+ .set({ scanStatus })
209
+ .where('post_id = :postId AND file_id = :fileId', { postId, fileId })
210
+ .execute();
211
+ const allMedia = await queryRunner.manager.find(PostMediaModel, {
212
+ where: { postId },
213
+ });
214
+ let newMediaStatus = PostMediaStatus.NONE;
215
+ if (allMedia.length > 0) {
216
+ if (allMedia.some((m) => m.scanStatus === PostMediaScanStatus.REJECTED)) {
217
+ newMediaStatus = PostMediaStatus.REJECTED;
218
+ }
219
+ else if (allMedia.every((m) => m.scanStatus === PostMediaScanStatus.CLEAN)) {
220
+ newMediaStatus = PostMediaStatus.READY;
221
+ }
222
+ else {
223
+ newMediaStatus = PostMediaStatus.PENDING;
224
+ }
225
+ }
226
+ await queryRunner.manager
227
+ .createQueryBuilder()
228
+ .update(this.modelClass)
229
+ .set({ media_status: newMediaStatus })
230
+ .where('id = :postId', { postId })
231
+ .execute();
232
+ const updatedPost = await queryRunner.manager.findOne(this.modelClass, {
233
+ where: { id: postId },
234
+ relations: ['media'],
235
+ });
236
+ return updatedPost ? this.toEntity(updatedPost) : null;
237
+ });
238
+ }
80
239
  async deleteWithPostDeleted(id) {
81
240
  return this.executeInTransaction(async (queryRunner) => {
82
241
  const model = await queryRunner.manager.findOne(this.modelClass, { where: { id } });
@@ -108,6 +267,7 @@ let PostgresPostRepository = class PostgresPostRepository extends BaseRepository
108
267
  const postIds = posts.map((p) => p.id);
109
268
  if (postIds.length > 0) {
110
269
  await queryRunner.manager.delete(CommentModel, { postId: In(postIds) });
270
+ await queryRunner.manager.delete(PostMediaModel, { postId: In(postIds) });
111
271
  await queryRunner.manager.delete(this.modelClass, { authorId });
112
272
  }
113
273
  return postIds.length;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-post.repository.js","sourceRoot":"","sources":["../../src/repositories/postgres-post.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-post.repository.js","sourceRoot":"","sources":["../../src/repositories/postgres-post.repository.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,20 @@
1
1
  import type { PaginatedResult } from '@volontariapp/database';
2
- import type { IPostRepository } from '../repositories/index.js';
2
+ import type { IPostRepository, CreatePostWithMediaOptions } from '../repositories/index.js';
3
3
  import { SagaStatus, UserRoles } from '@volontariapp/shared';
4
4
  import { PostEntity } from '../entities/index.js';
5
+ import type { PostMediaScanStatus } from '../enums/index.js';
5
6
  export declare class PostService {
6
7
  private readonly postRepository;
7
8
  private readonly logger;
8
9
  constructor(postRepository: IPostRepository);
9
- findById(id: string): Promise<PostEntity>;
10
- findByAuthorId(authorId: string): Promise<PostEntity[]>;
11
- findAll(): Promise<PostEntity[]>;
12
- listPosts(page: number, limit: number, authorId?: string): Promise<PaginatedResult<PostEntity>>;
13
- create(data: Partial<PostEntity>): Promise<PostEntity>;
10
+ findById(id: string, readerId?: string, relations?: string[]): Promise<PostEntity>;
11
+ findByAuthorId(authorId: string, relations?: string[]): Promise<PostEntity[]>;
12
+ findAll(relations?: string[]): Promise<PostEntity[]>;
13
+ listPosts(page: number, limit: number, authorId?: string, readerId?: string): Promise<PaginatedResult<PostEntity>>;
14
+ search(searchTerm: string, readerId?: string): Promise<PostEntity[]>;
15
+ create(data: Partial<PostEntity> & CreatePostWithMediaOptions): Promise<PostEntity>;
14
16
  update(id: string, data: Partial<PostEntity>, actorId?: string, actorRole?: UserRoles): Promise<PostEntity>;
17
+ updateMediaScanStatus(postId: string, fileId: string, scanStatus: PostMediaScanStatus): Promise<PostEntity>;
15
18
  updateSaga(id: string, status: SagaStatus): Promise<PostEntity>;
16
19
  delete(id: string, actorId?: string, actorRole?: UserRoles): Promise<void>;
17
20
  deleteByAuthorId(authorId: string): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"post.service.d.ts","sourceRoot":"","sources":["../../src/services/post.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,qBACa,WAAW;IAGsB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAF3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAEP,cAAc,EAAE,eAAe;IAEtF,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAezC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAWvD,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAUhC,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAWjC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBtD,MAAM,CACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EACzB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,UAAU,CAAC;IA2BhB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB/D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBnD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAa5D"}
1
+ {"version":3,"file":"post.service.d.ts","sourceRoot":"","sources":["../../src/services/post.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,qBACa,WAAW;IAGsB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAF3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAEP,cAAc,EAAE,eAAe;IAEtF,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBlF,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAa7E,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAYpD,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAWjC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAWpE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBnF,MAAM,CACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EACzB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,UAAU,CAAC;IA2BhB,qBAAqB,CACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAAC,UAAU,CAAC;IAkBhB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB/D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBnD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAa5D"}
@@ -23,9 +23,12 @@ let PostService = PostService_1 = class PostService {
23
23
  constructor(postRepository) {
24
24
  this.postRepository = postRepository;
25
25
  }
26
- async findById(id) {
26
+ async findById(id, readerId, relations) {
27
27
  try {
28
- const post = await this.postRepository.findById(id);
28
+ const rels = relations ?? (readerId ? ['media'] : undefined);
29
+ const post = rels
30
+ ? await this.postRepository.findById(id, rels, readerId)
31
+ : await this.postRepository.findById(id);
29
32
  if (!post) {
30
33
  throw POST_NOT_FOUND(id);
31
34
  }
@@ -39,9 +42,11 @@ let PostService = PostService_1 = class PostService {
39
42
  throw DATABASE_ERROR(`finding post: ${id}`, err.message);
40
43
  }
41
44
  }
42
- async findByAuthorId(authorId) {
45
+ async findByAuthorId(authorId, relations) {
43
46
  try {
44
- return await this.postRepository.findByAuthorId(authorId);
47
+ return relations
48
+ ? await this.postRepository.findByAuthorId(authorId, relations)
49
+ : await this.postRepository.findByAuthorId(authorId);
45
50
  }
46
51
  catch (error) {
47
52
  if (isBaseError(error))
@@ -51,9 +56,11 @@ let PostService = PostService_1 = class PostService {
51
56
  throw DATABASE_ERROR(`finding posts for author: ${authorId}`, err.message);
52
57
  }
53
58
  }
54
- async findAll() {
59
+ async findAll(relations) {
55
60
  try {
56
- return await this.postRepository.findAll();
61
+ return relations
62
+ ? await this.postRepository.findAll(relations)
63
+ : await this.postRepository.findAll();
57
64
  }
58
65
  catch (error) {
59
66
  const err = error;
@@ -61,9 +68,9 @@ let PostService = PostService_1 = class PostService {
61
68
  throw DATABASE_ERROR('fetching all posts', err.message);
62
69
  }
63
70
  }
64
- async listPosts(page, limit, authorId) {
71
+ async listPosts(page, limit, authorId, readerId) {
65
72
  try {
66
- return await this.postRepository.listPaginated(page, limit, authorId);
73
+ return await this.postRepository.listPaginated(page, limit, authorId, readerId);
67
74
  }
68
75
  catch (error) {
69
76
  if (isBaseError(error))
@@ -73,6 +80,18 @@ let PostService = PostService_1 = class PostService {
73
80
  throw DATABASE_ERROR(`listing posts with pagination`, err.message);
74
81
  }
75
82
  }
83
+ async search(searchTerm, readerId) {
84
+ try {
85
+ return await this.postRepository.search(searchTerm, readerId);
86
+ }
87
+ catch (error) {
88
+ if (isBaseError(error))
89
+ throw error;
90
+ const err = error;
91
+ this.logger.error(`Failed to search posts with term: ${searchTerm}`, err);
92
+ throw DATABASE_ERROR(`searching posts with term: ${searchTerm}`, err.message);
93
+ }
94
+ }
76
95
  async create(data) {
77
96
  try {
78
97
  this.logger.log(`Creating post: ${String(data.title)}`);
@@ -82,6 +101,10 @@ let PostService = PostService_1 = class PostService {
82
101
  if (isBaseError(error))
83
102
  throw error;
84
103
  if (isDatabaseDriverError(error) && error.code === '23505') {
104
+ const detail = error.detail;
105
+ if (detail?.includes('Key (id)')) {
106
+ throw POST_ALREADY_EXISTS(`id: ${String(data.id)}`);
107
+ }
85
108
  throw POST_ALREADY_EXISTS(data.title ?? 'Unknown');
86
109
  }
87
110
  const err = error;
@@ -92,7 +115,7 @@ let PostService = PostService_1 = class PostService {
92
115
  async update(id, data, actorId, actorRole) {
93
116
  try {
94
117
  if (actorId && actorRole !== UserRoles.ADMIN) {
95
- const post = await this.findById(id);
118
+ const post = await this.findById(id, actorId);
96
119
  if (post.authorId !== actorId) {
97
120
  throw new ForbiddenError('You are not the author of this post');
98
121
  }
@@ -114,6 +137,23 @@ let PostService = PostService_1 = class PostService {
114
137
  throw DATABASE_ERROR(`updating post: ${id}`, err.message);
115
138
  }
116
139
  }
140
+ async updateMediaScanStatus(postId, fileId, scanStatus) {
141
+ try {
142
+ this.logger.log(`Updating media scan status for post ${postId}, file ${fileId} -> ${scanStatus}`);
143
+ const updated = await this.postRepository.updateMediaScanStatus(postId, fileId, scanStatus);
144
+ if (!updated) {
145
+ throw POST_NOT_FOUND(postId);
146
+ }
147
+ return updated;
148
+ }
149
+ catch (error) {
150
+ if (isBaseError(error))
151
+ throw error;
152
+ const err = error;
153
+ this.logger.error(`Failed to update media scan status for post ${postId}`, err);
154
+ throw DATABASE_ERROR(`updating media scan status for post: ${postId}`, err.message);
155
+ }
156
+ }
117
157
  async updateSaga(id, status) {
118
158
  try {
119
159
  this.logger.log(`Updating post saga status: ${id} -> ${status}`);
@@ -135,7 +175,7 @@ let PostService = PostService_1 = class PostService {
135
175
  try {
136
176
  this.logger.log(`Deleting post: ${id}`);
137
177
  if (actorId && actorRole !== UserRoles.ADMIN) {
138
- const post = await this.findById(id);
178
+ const post = await this.findById(id, actorId);
139
179
  if (post.authorId !== actorId) {
140
180
  throw new ForbiddenError('You are not the author of this post');
141
181
  }
@@ -1 +1 @@
1
- {"version":3,"file":"post.service.js","sourceRoot":"","sources":["../../src/services/post.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post.service.js","sourceRoot":"","sources":["../../src/services/post.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"post.repository.mock.d.ts","sourceRoot":"","sources":["../../../../src/test/__test-utils__/mocks/post.repository.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AAE3F,eAAO,MAAM,wBAAwB,QAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAarE,CAAC"}
1
+ {"version":3,"file":"post.repository.mock.d.ts","sourceRoot":"","sources":["../../../../src/test/__test-utils__/mocks/post.repository.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AAE3F,eAAO,MAAM,wBAAwB,QAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAcrE,CAAC"}
@@ -6,6 +6,7 @@ export const createPostRepositoryMock = () => ({
6
6
  create: jest.fn(),
7
7
  createWithPostCreated: jest.fn(),
8
8
  update: jest.fn(),
9
+ updateMediaScanStatus: jest.fn(),
9
10
  delete: jest.fn(),
10
11
  deleteWithPostDeleted: jest.fn(),
11
12
  deleteByAuthorId: jest.fn(),
@@ -1 +1 @@
1
- {"version":3,"file":"post.repository.mock.js","sourceRoot":"","sources":["../../../../src/test/__test-utils__/mocks/post.repository.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAiC,EAAE,CAAC,CAAC;IAC3E,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;IACnB,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;IACzB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;IAClB,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;IACjB,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;IAChC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;IACjB,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;IACjB,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;IAChC,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;IAC3B,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;IACjB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;IACxB,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;CAC9B,CAAC,CAAC"}
1
+ {"version":3,"file":"post.repository.mock.js","sourceRoot":"","sources":["../../../../src/test/__test-utils__/mocks/post.repository.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAiC,EAAE,CAAC,CAAC;IAC3E,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;IACnB,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;IACzB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;IAClB,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;IACjB,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;IAChC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;IACjB,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;IAChC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;IACjB,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;IAChC,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;IAC3B,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;IACjB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;IACxB,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;CAC9B,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { DataSource } from 'typeorm';
2
- import { PostModel, CommentModel } from '../models/index.js';
2
+ import { PostModel, PostMediaModel, CommentModel } from '../models/index.js';
3
3
  import { registerPostMappings } from '../models/mapper.js';
4
4
  import { EventQueueModel, JobsOutboxModel } from '@volontariapp/database';
5
5
  import { join, dirname } from 'path';
@@ -32,7 +32,7 @@ export const testDataSource = new DataSource({
32
32
  username: 'user',
33
33
  password: 'password',
34
34
  database: 'ms_post',
35
- entities: [PostModel, CommentModel, EventQueueModel, JobsOutboxModel],
35
+ entities: [PostModel, PostMediaModel, CommentModel, EventQueueModel, JobsOutboxModel],
36
36
  migrations: await loadMigrations(),
37
37
  synchronize: false,
38
38
  logging: false,
@@ -1 +1 @@
1
- {"version":3,"file":"data-source.js","sourceRoot":"","sources":["../../src/test/data-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-source.js","sourceRoot":"","sources":["../../src/test/data-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class AddPostMediaAndMediaStatus1781000000000 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1781000000000-AddPostMediaAndMediaStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1781000000000-AddPostMediaAndMediaStatus.d.ts","sourceRoot":"","sources":["../../../../src/test/migrations/domain/1781000000000-AddPostMediaAndMediaStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,qBAAa,uCAAwC,YAAW,kBAAkB;IAChF,IAAI,SAA6C;IAEpC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
@@ -0,0 +1,24 @@
1
+ export class AddPostMediaAndMediaStatus1781000000000 {
2
+ name = 'AddPostMediaAndMediaStatus1781000000000';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`ALTER TABLE "posts" ADD "media_status" varchar(32) NOT NULL DEFAULT 'NONE'`);
5
+ await queryRunner.query(`CREATE INDEX "IDX_posts_media_status" ON "posts" ("media_status")`);
6
+ await queryRunner.query(`
7
+ CREATE TABLE "post_media" (
8
+ "id" uuid PRIMARY KEY,
9
+ "post_id" uuid NOT NULL,
10
+ "file_id" uuid NOT NULL,
11
+ "position" integer NOT NULL DEFAULT 0,
12
+ "scan_status" varchar(32) NOT NULL DEFAULT 'AWAITING_UPLOAD',
13
+ CONSTRAINT "FK_post_media_post" FOREIGN KEY ("post_id") REFERENCES "posts"("id") ON DELETE CASCADE
14
+ )
15
+ `);
16
+ await queryRunner.query(`CREATE INDEX "idx_post_media_post" ON "post_media" ("post_id")`);
17
+ }
18
+ async down(queryRunner) {
19
+ await queryRunner.query(`DROP TABLE "post_media"`);
20
+ await queryRunner.query(`DROP INDEX "public"."IDX_posts_media_status"`);
21
+ await queryRunner.query(`ALTER TABLE "posts" DROP COLUMN "media_status"`);
22
+ }
23
+ }
24
+ //# sourceMappingURL=1781000000000-AddPostMediaAndMediaStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1781000000000-AddPostMediaAndMediaStatus.js","sourceRoot":"","sources":["../../../../src/test/migrations/domain/1781000000000-AddPostMediaAndMediaStatus.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uCAAuC;IAClD,IAAI,GAAG,yCAAyC,CAAC;IAE1C,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,4EAA4E,CAC7E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QAE7F,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;KASvB,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAC5F,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACnD,MAAM,WAAW,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACxE,MAAM,WAAW,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC5E,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=post-media.unit.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-media.unit.spec.d.ts","sourceRoot":"","sources":["../../../src/test/unit/post-media.unit.spec.ts"],"names":[],"mappings":""}