@social.dev/server-sdk 0.0.1-alpha.6 → 0.0.1-alpha.61

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 (344) hide show
  1. package/README.md +696 -40
  2. package/dist/__mocks__/kafka.mock.d.ts +11 -0
  3. package/dist/__mocks__/kafka.mock.js +15 -0
  4. package/dist/__mocks__/kafka.mock.js.map +1 -0
  5. package/dist/app.module.d.ts +3 -3
  6. package/dist/app.module.js +11 -6
  7. package/dist/app.module.js.map +1 -1
  8. package/dist/auth/auth.controller.d.ts +9 -1
  9. package/dist/auth/auth.controller.js +53 -2
  10. package/dist/auth/auth.controller.js.map +1 -1
  11. package/dist/auth/auth.module.js +4 -0
  12. package/dist/auth/auth.module.js.map +1 -1
  13. package/dist/auth/auth.service.d.ts +7 -6
  14. package/dist/auth/auth.service.js +18 -15
  15. package/dist/auth/auth.service.js.map +1 -1
  16. package/dist/auth/dto/login-success.dto.d.ts +1 -1
  17. package/dist/auth/dto/login-success.dto.js +6 -3
  18. package/dist/auth/dto/login-success.dto.js.map +1 -1
  19. package/dist/auth/dto/register-success.dto.d.ts +3 -0
  20. package/dist/auth/dto/register-success.dto.js +12 -0
  21. package/dist/auth/dto/register-success.dto.js.map +1 -0
  22. package/dist/auth/dto/register.dto.d.ts +6 -0
  23. package/dist/auth/dto/register.dto.js +45 -0
  24. package/dist/auth/dto/register.dto.js.map +1 -0
  25. package/dist/auth/enums/auth-method.enum.d.ts +2 -2
  26. package/dist/auth/enums/auth-method.enum.js +2 -2
  27. package/dist/auth/enums/auth-method.enum.js.map +1 -1
  28. package/dist/auth/oidc/dto/requests.d.ts +6 -0
  29. package/dist/auth/oidc/dto/requests.js +47 -0
  30. package/dist/auth/oidc/dto/requests.js.map +1 -0
  31. package/dist/auth/oidc/dto/responses.js +1 -1
  32. package/dist/auth/oidc/dto/responses.js.map +1 -1
  33. package/dist/auth/oidc/oidc.controller.d.ts +7 -2
  34. package/dist/auth/oidc/oidc.controller.js +31 -17
  35. package/dist/auth/oidc/oidc.controller.js.map +1 -1
  36. package/dist/auth/oidc/oidc.module.js +2 -0
  37. package/dist/auth/oidc/oidc.module.js.map +1 -1
  38. package/dist/auth/oidc/oidc.service.d.ts +13 -7
  39. package/dist/auth/oidc/oidc.service.js +38 -30
  40. package/dist/auth/oidc/oidc.service.js.map +1 -1
  41. package/dist/auth/session/session.controller.js +8 -3
  42. package/dist/auth/session/session.controller.js.map +1 -1
  43. package/dist/auth/session/session.service.d.ts +2 -2
  44. package/dist/auth/session/session.service.js +9 -5
  45. package/dist/auth/session/session.service.js.map +1 -1
  46. package/dist/bootstrap.d.ts +2 -1
  47. package/dist/bootstrap.js +9 -1
  48. package/dist/bootstrap.js.map +1 -1
  49. package/dist/chat/chat.acl.d.ts +3 -0
  50. package/dist/chat/chat.acl.js +50 -0
  51. package/dist/chat/chat.acl.js.map +1 -0
  52. package/dist/chat/chat.controller.d.ts +14 -6
  53. package/dist/chat/chat.controller.js +137 -14
  54. package/dist/chat/chat.controller.js.map +1 -1
  55. package/dist/chat/chat.module.d.ts +3 -0
  56. package/dist/chat/chat.module.js +28 -2
  57. package/dist/chat/chat.module.js.map +1 -1
  58. package/dist/chat/chat.service.d.ts +54 -12
  59. package/dist/chat/chat.service.js +326 -36
  60. package/dist/chat/chat.service.js.map +1 -1
  61. package/dist/chat/dto/add-reaction.dto.d.ts +5 -0
  62. package/dist/chat/dto/add-reaction.dto.js +42 -0
  63. package/dist/chat/dto/add-reaction.dto.js.map +1 -0
  64. package/dist/chat/dto/create-message.dto.d.ts +3 -1
  65. package/dist/chat/dto/create-message.dto.js +15 -1
  66. package/dist/chat/dto/create-message.dto.js.map +1 -1
  67. package/dist/chat/dto/responses.dto.d.ts +26 -5
  68. package/dist/chat/dto/responses.dto.js +167 -18
  69. package/dist/chat/dto/responses.dto.js.map +1 -1
  70. package/dist/chat/dto/update-cursor.dto.d.ts +5 -0
  71. package/dist/chat/dto/update-cursor.dto.js +36 -0
  72. package/dist/chat/dto/update-cursor.dto.js.map +1 -0
  73. package/dist/chat/entities/conversation-member.entity.js +1 -1
  74. package/dist/chat/entities/conversation-member.entity.js.map +1 -1
  75. package/dist/chat/entities/conversation.entity.d.ts +4 -0
  76. package/dist/chat/entities/conversation.entity.js +13 -1
  77. package/dist/chat/entities/conversation.entity.js.map +1 -1
  78. package/dist/chat/entities/message.entity.d.ts +7 -0
  79. package/dist/chat/entities/message.entity.js +27 -2
  80. package/dist/chat/entities/message.entity.js.map +1 -1
  81. package/dist/chat/entities/reaction.entity.d.ts +10 -0
  82. package/dist/chat/entities/reaction.entity.js +62 -0
  83. package/dist/chat/entities/reaction.entity.js.map +1 -0
  84. package/dist/chat/entities/read-cursor.entity.d.ts +10 -0
  85. package/dist/chat/entities/read-cursor.entity.js +64 -0
  86. package/dist/chat/entities/read-cursor.entity.js.map +1 -0
  87. package/dist/chat/enums/conversation-type.enum.d.ts +2 -1
  88. package/dist/chat/enums/conversation-type.enum.js +1 -0
  89. package/dist/chat/enums/conversation-type.enum.js.map +1 -1
  90. package/dist/common/decorators/api-paginated-response.d.ts +1 -1
  91. package/dist/common/decorators/api-paginated-response.js +2 -2
  92. package/dist/common/decorators/api-paginated-response.js.map +1 -1
  93. package/dist/common/dto/paginated-response.dto.d.ts +2 -0
  94. package/dist/common/dto/paginated-response.dto.js +14 -3
  95. package/dist/common/dto/paginated-response.dto.js.map +1 -1
  96. package/dist/common/utils/cursor.d.ts +2 -0
  97. package/dist/common/utils/cursor.js +12 -0
  98. package/dist/common/utils/cursor.js.map +1 -0
  99. package/dist/community/avatar/avatar.controller.d.ts +11 -0
  100. package/dist/community/avatar/avatar.controller.js +90 -0
  101. package/dist/community/avatar/avatar.controller.js.map +1 -0
  102. package/dist/community/avatar/avatar.service.d.ts +13 -0
  103. package/dist/community/avatar/avatar.service.js +78 -0
  104. package/dist/community/avatar/avatar.service.js.map +1 -0
  105. package/dist/community/community.acl.d.ts +6 -3
  106. package/dist/community/community.acl.js +58 -35
  107. package/dist/community/community.acl.js.map +1 -1
  108. package/dist/community/community.controller.d.ts +4 -3
  109. package/dist/community/community.controller.js +23 -6
  110. package/dist/community/community.controller.js.map +1 -1
  111. package/dist/community/community.module.d.ts +3 -0
  112. package/dist/community/community.module.js +17 -7
  113. package/dist/community/community.module.js.map +1 -1
  114. package/dist/community/community.service.d.ts +13 -5
  115. package/dist/community/community.service.js +74 -17
  116. package/dist/community/community.service.js.map +1 -1
  117. package/dist/community/dto/community-response.dto.d.ts +5 -1
  118. package/dist/community/dto/community-response.dto.js +32 -1
  119. package/dist/community/dto/community-response.dto.js.map +1 -1
  120. package/dist/community/dto/create-community.dto.d.ts +2 -0
  121. package/dist/community/dto/create-community.dto.js +14 -2
  122. package/dist/community/dto/create-community.dto.js.map +1 -1
  123. package/dist/community/dto/update-community.dto.d.ts +2 -0
  124. package/dist/community/dto/update-community.dto.js +15 -1
  125. package/dist/community/dto/update-community.dto.js.map +1 -1
  126. package/dist/community/entities/community-member.entity.js +1 -0
  127. package/dist/community/entities/community-member.entity.js.map +1 -1
  128. package/dist/community/entities/community.entity.d.ts +2 -0
  129. package/dist/community/entities/community.entity.js +11 -1
  130. package/dist/community/entities/community.entity.js.map +1 -1
  131. package/dist/configs/configs.module.js +3 -0
  132. package/dist/configs/configs.module.js.map +1 -1
  133. package/dist/configs/configs.service.d.ts +23 -0
  134. package/dist/configs/configs.service.js +14 -1
  135. package/dist/configs/configs.service.js.map +1 -1
  136. package/dist/core/event-stream/event-stream-processor.interface.d.ts +8 -0
  137. package/dist/core/event-stream/event-stream-processor.interface.js +3 -0
  138. package/dist/core/event-stream/event-stream-processor.interface.js.map +1 -0
  139. package/dist/core/event-stream/event-stream-processor.service.d.ts +13 -0
  140. package/dist/core/event-stream/event-stream-processor.service.js +55 -0
  141. package/dist/core/event-stream/event-stream-processor.service.js.map +1 -0
  142. package/dist/core/event-stream/event-stream.module.d.ts +11 -0
  143. package/dist/core/event-stream/event-stream.module.js +49 -0
  144. package/dist/core/event-stream/event-stream.module.js.map +1 -0
  145. package/dist/core/event-stream/event-stream.service.d.ts +16 -0
  146. package/dist/core/event-stream/event-stream.service.js +100 -0
  147. package/dist/core/event-stream/event-stream.service.js.map +1 -0
  148. package/dist/core/event-stream/types.d.ts +2 -0
  149. package/dist/core/event-stream/types.js +3 -0
  150. package/dist/core/event-stream/types.js.map +1 -0
  151. package/dist/core/hook/hook.module.d.ts +4 -0
  152. package/dist/core/hook/hook.module.js +30 -0
  153. package/dist/core/hook/hook.module.js.map +1 -0
  154. package/dist/core/hook/hook.service.d.ts +7 -0
  155. package/dist/core/{plugin/plugin-hook.service.js → hook/hook.service.js} +10 -10
  156. package/dist/core/hook/hook.service.js.map +1 -0
  157. package/dist/core/plugin/plugin.module.js +7 -5
  158. package/dist/core/plugin/plugin.module.js.map +1 -1
  159. package/dist/db.js +1 -1
  160. package/dist/db.js.map +1 -1
  161. package/dist/file-storage/file-storage.service.d.ts +1 -1
  162. package/dist/file-storage/file-storage.service.js +6 -6
  163. package/dist/file-storage/file-storage.service.js.map +1 -1
  164. package/dist/file-storage/utils.d.ts +2 -0
  165. package/dist/file-storage/utils.js +9 -2
  166. package/dist/file-storage/utils.js.map +1 -1
  167. package/dist/index.d.ts +0 -1
  168. package/dist/index.js +1 -3
  169. package/dist/index.js.map +1 -1
  170. package/dist/manage-db.d.ts +1 -0
  171. package/dist/manage-db.js +10 -0
  172. package/dist/manage-db.js.map +1 -0
  173. package/dist/media/dto/media-response.dto.d.ts +2 -0
  174. package/dist/media/dto/media-response.dto.js +14 -1
  175. package/dist/media/dto/media-response.dto.js.map +1 -1
  176. package/dist/media/entities/audio.entity.d.ts +2 -2
  177. package/dist/media/entities/audio.entity.js +2 -2
  178. package/dist/media/entities/audio.entity.js.map +1 -1
  179. package/dist/media/entities/image.entity.d.ts +5 -0
  180. package/dist/media/entities/{post-media.entity.js → image.entity.js} +16 -12
  181. package/dist/media/entities/image.entity.js.map +1 -0
  182. package/dist/media/entities/media.entity.d.ts +6 -0
  183. package/dist/media/entities/media.entity.js +25 -2
  184. package/dist/media/entities/media.entity.js.map +1 -1
  185. package/dist/media/media.acl.d.ts +2 -4
  186. package/dist/media/media.acl.js +22 -1
  187. package/dist/media/media.acl.js.map +1 -1
  188. package/dist/media/media.controller.d.ts +2 -0
  189. package/dist/media/media.controller.js +58 -0
  190. package/dist/media/media.controller.js.map +1 -1
  191. package/dist/media/media.module.js +2 -1
  192. package/dist/media/media.module.js.map +1 -1
  193. package/dist/media/media.service.d.ts +6 -3
  194. package/dist/media/media.service.js +118 -19
  195. package/dist/media/media.service.js.map +1 -1
  196. package/dist/migrations/1757061785934-PushNotificationTokens.d.ts +6 -0
  197. package/dist/migrations/1757061785934-PushNotificationTokens.js +20 -0
  198. package/dist/migrations/1757061785934-PushNotificationTokens.js.map +1 -0
  199. package/dist/migrations/1758623241397-AddUserTimestamps.d.ts +6 -0
  200. package/dist/migrations/1758623241397-AddUserTimestamps.js +16 -0
  201. package/dist/migrations/1758623241397-AddUserTimestamps.js.map +1 -0
  202. package/dist/migrations/1758704603161-UserFollows.d.ts +6 -0
  203. package/dist/migrations/1758704603161-UserFollows.js +18 -0
  204. package/dist/migrations/1758704603161-UserFollows.js.map +1 -0
  205. package/dist/migrations/1759757532702-UpdateCommunityCascades.d.ts +6 -0
  206. package/dist/migrations/1759757532702-UpdateCommunityCascades.js +20 -0
  207. package/dist/migrations/1759757532702-UpdateCommunityCascades.js.map +1 -0
  208. package/dist/migrations/1759766474808-UpdateCommunityTimestamps.d.ts +6 -0
  209. package/dist/migrations/1759766474808-UpdateCommunityTimestamps.js +16 -0
  210. package/dist/migrations/1759766474808-UpdateCommunityTimestamps.js.map +1 -0
  211. package/dist/migrations/1759919335188-CommunityChats.d.ts +6 -0
  212. package/dist/migrations/1759919335188-CommunityChats.js +28 -0
  213. package/dist/migrations/1759919335188-CommunityChats.js.map +1 -0
  214. package/dist/migrations/1760363804673-ChatVoiceNotes.d.ts +6 -0
  215. package/dist/migrations/1760363804673-ChatVoiceNotes.js +24 -0
  216. package/dist/migrations/1760363804673-ChatVoiceNotes.js.map +1 -0
  217. package/dist/migrations/1760444646328-ChatReadCursor.d.ts +6 -0
  218. package/dist/migrations/1760444646328-ChatReadCursor.js +18 -0
  219. package/dist/migrations/1760444646328-ChatReadCursor.js.map +1 -0
  220. package/dist/migrations/1761598291629-AddChatImages.d.ts +6 -0
  221. package/dist/migrations/1761598291629-AddChatImages.js +16 -0
  222. package/dist/migrations/1761598291629-AddChatImages.js.map +1 -0
  223. package/dist/migrations/1761648419807-ChatReactions.d.ts +6 -0
  224. package/dist/migrations/1761648419807-ChatReactions.js +18 -0
  225. package/dist/migrations/1761648419807-ChatReactions.js.map +1 -0
  226. package/dist/network/entities/network.entity.js +1 -4
  227. package/dist/network/entities/network.entity.js.map +1 -1
  228. package/dist/network/network.middleware.js +1 -1
  229. package/dist/network/network.middleware.js.map +1 -1
  230. package/dist/network/network.module.js +2 -1
  231. package/dist/network/network.module.js.map +1 -1
  232. package/dist/network/network.service.d.ts +5 -2
  233. package/dist/network/network.service.js +23 -6
  234. package/dist/network/network.service.js.map +1 -1
  235. package/dist/notification/dto/delete-push-token.dto.d.ts +3 -0
  236. package/dist/{common/entities/base.repository.js → notification/dto/delete-push-token.dto.js} +14 -20
  237. package/dist/notification/dto/delete-push-token.dto.js.map +1 -0
  238. package/dist/notification/dto/register-push-token.dto.d.ts +5 -0
  239. package/dist/notification/dto/register-push-token.dto.js +38 -0
  240. package/dist/notification/dto/register-push-token.dto.js.map +1 -0
  241. package/dist/notification/entities/push-token.entity.d.ts +11 -0
  242. package/dist/notification/entities/push-token.entity.js +60 -0
  243. package/dist/notification/entities/push-token.entity.js.map +1 -0
  244. package/dist/notification/enums/push-service.enum.d.ts +6 -0
  245. package/dist/notification/enums/push-service.enum.js +11 -0
  246. package/dist/notification/enums/push-service.enum.js.map +1 -0
  247. package/dist/notification/hook-listener.service.d.ts +13 -0
  248. package/dist/notification/hook-listener.service.js +58 -0
  249. package/dist/notification/hook-listener.service.js.map +1 -0
  250. package/dist/notification/notification.module.d.ts +2 -0
  251. package/dist/notification/notification.module.js +24 -0
  252. package/dist/notification/notification.module.js.map +1 -0
  253. package/dist/notification/push-notification.controller.d.ts +9 -0
  254. package/dist/notification/push-notification.controller.js +69 -0
  255. package/dist/notification/push-notification.controller.js.map +1 -0
  256. package/dist/notification/push-notification.module.d.ts +2 -0
  257. package/dist/notification/push-notification.module.js +27 -0
  258. package/dist/notification/push-notification.module.js.map +1 -0
  259. package/dist/notification/push-notification.service.d.ts +23 -0
  260. package/dist/notification/push-notification.service.js +86 -0
  261. package/dist/notification/push-notification.service.js.map +1 -0
  262. package/dist/post/entities/post.entity.js +3 -3
  263. package/dist/post/entities/post.entity.js.map +1 -1
  264. package/dist/post/post.controller.d.ts +3 -2
  265. package/dist/post/post.controller.js +28 -8
  266. package/dist/post/post.controller.js.map +1 -1
  267. package/dist/post/post.module.js +2 -0
  268. package/dist/post/post.module.js.map +1 -1
  269. package/dist/post/post.service.d.ts +7 -3
  270. package/dist/post/post.service.js +18 -8
  271. package/dist/post/post.service.js.map +1 -1
  272. package/dist/tsconfig.build.tsbuildinfo +1 -1
  273. package/dist/user/avatar/avatar.controller.d.ts +10 -0
  274. package/dist/user/avatar/avatar.controller.js +89 -0
  275. package/dist/user/avatar/avatar.controller.js.map +1 -0
  276. package/dist/user/avatar/avatar.service.d.ts +12 -0
  277. package/dist/user/avatar/avatar.service.js +72 -0
  278. package/dist/user/avatar/avatar.service.js.map +1 -0
  279. package/dist/user/constants.d.ts +1 -0
  280. package/dist/user/constants.js +5 -0
  281. package/dist/user/constants.js.map +1 -0
  282. package/dist/user/dto/update-profile.dto.d.ts +3 -0
  283. package/dist/user/dto/update-profile.dto.js +26 -0
  284. package/dist/user/dto/update-profile.dto.js.map +1 -0
  285. package/dist/user/dto/user-response.dto.d.ts +6 -0
  286. package/dist/user/dto/user-response.dto.js +37 -1
  287. package/dist/user/dto/user-response.dto.js.map +1 -1
  288. package/dist/user/dto/user.dto.d.ts +8 -0
  289. package/dist/user/dto/user.dto.js +21 -0
  290. package/dist/user/dto/user.dto.js.map +1 -0
  291. package/dist/user/entities/user.entity.d.ts +4 -0
  292. package/dist/user/entities/user.entity.js +19 -1
  293. package/dist/user/entities/user.entity.js.map +1 -1
  294. package/dist/user/follow/dto/follow-response.dto.d.ts +4 -0
  295. package/dist/user/follow/dto/follow-response.dto.js +38 -0
  296. package/dist/user/follow/dto/follow-response.dto.js.map +1 -0
  297. package/dist/user/follow/dto/follow.dto.d.ts +4 -0
  298. package/dist/user/follow/dto/follow.dto.js +26 -0
  299. package/dist/user/follow/dto/follow.dto.js.map +1 -0
  300. package/dist/user/follow/entities/follow.entity.d.ts +10 -0
  301. package/dist/user/follow/entities/follow.entity.js +60 -0
  302. package/dist/user/follow/entities/follow.entity.js.map +1 -0
  303. package/dist/user/follow/follow.controller.d.ts +9 -0
  304. package/dist/user/follow/follow.controller.js +56 -0
  305. package/dist/user/follow/follow.controller.js.map +1 -0
  306. package/dist/user/follow/follow.module.d.ts +2 -0
  307. package/dist/user/follow/follow.module.js +26 -0
  308. package/dist/user/follow/follow.module.js.map +1 -0
  309. package/dist/user/follow/follow.service.d.ts +11 -0
  310. package/dist/user/follow/follow.service.js +56 -0
  311. package/dist/user/follow/follow.service.js.map +1 -0
  312. package/dist/user/user.controller.d.ts +6 -2
  313. package/dist/user/user.controller.js +47 -8
  314. package/dist/user/user.controller.js.map +1 -1
  315. package/dist/user/user.module.js +12 -3
  316. package/dist/user/user.module.js.map +1 -1
  317. package/dist/user/user.service.d.ts +12 -5
  318. package/dist/user/user.service.js +49 -11
  319. package/dist/user/user.service.js.map +1 -1
  320. package/package.json +8 -3
  321. package/dist/1756201302119-migrations.d.ts +0 -6
  322. package/dist/1756201302119-migrations.js +0 -84
  323. package/dist/1756201302119-migrations.js.map +0 -1
  324. package/dist/auth/enums/auth-methods.enum.d.ts +0 -2
  325. package/dist/auth/enums/auth-methods.enum.js +0 -7
  326. package/dist/auth/enums/auth-methods.enum.js.map +0 -1
  327. package/dist/auth/session/auth.controller.d.ts +0 -10
  328. package/dist/auth/session/auth.controller.js +0 -92
  329. package/dist/auth/session/auth.controller.js.map +0 -1
  330. package/dist/auth/session/auth.service.d.ts +0 -12
  331. package/dist/auth/session/auth.service.js +0 -46
  332. package/dist/auth/session/auth.service.js.map +0 -1
  333. package/dist/common/constants.d.ts +0 -1
  334. package/dist/common/constants.js +0 -5
  335. package/dist/common/constants.js.map +0 -1
  336. package/dist/common/entities/base.repository.d.ts +0 -7
  337. package/dist/common/entities/base.repository.js.map +0 -1
  338. package/dist/core/plugin/plugin-hook.service.d.ts +0 -7
  339. package/dist/core/plugin/plugin-hook.service.js.map +0 -1
  340. package/dist/media/entities/post-media.entity.d.ts +0 -5
  341. package/dist/media/entities/post-media.entity.js.map +0 -1
  342. package/dist/user/dto/update-user.dto.d.ts +0 -5
  343. package/dist/user/dto/update-user.dto.js +0 -13
  344. package/dist/user/dto/update-user.dto.js.map +0 -1
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.FollowController = void 0;
16
+ const openapi = require("@nestjs/swagger");
17
+ const common_1 = require("@nestjs/common");
18
+ const follow_dto_1 = require("./dto/follow.dto");
19
+ const auth_guard_1 = require("../../auth/auth.guard");
20
+ const follow_service_1 = require("./follow.service");
21
+ let FollowController = class FollowController {
22
+ service;
23
+ constructor(service) {
24
+ this.service = service;
25
+ }
26
+ follow(dto) {
27
+ return this.service.follow(dto.user);
28
+ }
29
+ unfollow(dto) {
30
+ return this.service.unfollow(dto.user);
31
+ }
32
+ };
33
+ exports.FollowController = FollowController;
34
+ __decorate([
35
+ (0, common_1.Post)('user.follow'),
36
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
37
+ openapi.ApiResponse({ status: 201, type: require("./dto/follow-response.dto").FollowResponseDto }),
38
+ __param(0, (0, common_1.Body)()),
39
+ __metadata("design:type", Function),
40
+ __metadata("design:paramtypes", [follow_dto_1.FollowDto]),
41
+ __metadata("design:returntype", Promise)
42
+ ], FollowController.prototype, "follow", null);
43
+ __decorate([
44
+ (0, common_1.Post)('user.unfollow'),
45
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
46
+ openapi.ApiResponse({ status: 201, type: require("./dto/follow-response.dto").FollowResponseDto }),
47
+ __param(0, (0, common_1.Body)()),
48
+ __metadata("design:type", Function),
49
+ __metadata("design:paramtypes", [follow_dto_1.FollowDto]),
50
+ __metadata("design:returntype", Promise)
51
+ ], FollowController.prototype, "unfollow", null);
52
+ exports.FollowController = FollowController = __decorate([
53
+ (0, common_1.Controller)(),
54
+ __metadata("design:paramtypes", [follow_service_1.FollowService])
55
+ ], FollowController);
56
+ //# sourceMappingURL=follow.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow.controller.js","sourceRoot":"","sources":["../../../src/user/follow/follow.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,iDAA6C;AAE7C,sDAA8C;AAC9C,qDAAiD;AAG1C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACP;IAApB,YAAoB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAG9C,MAAM,CAAS,GAAc;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAID,QAAQ,CAAS,GAAc;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CACF,CAAA;AAbY,4CAAgB;AAI3B;IAFC,IAAA,aAAI,EAAC,aAAa,CAAC;IACnB,IAAA,kBAAS,EAAC,sBAAS,CAAC;;IACb,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,sBAAS;;8CAE5B;AAID;IAFC,IAAA,aAAI,EAAC,eAAe,CAAC;IACrB,IAAA,kBAAS,EAAC,sBAAS,CAAC;;IACX,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,sBAAS;;gDAE9B;2BAZU,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAEkB,8BAAa;GAD/B,gBAAgB,CAa5B"}
@@ -0,0 +1,2 @@
1
+ export declare class FollowModule {
2
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FollowModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const typeorm_1 = require("@nestjs/typeorm");
12
+ const follow_entity_1 = require("./entities/follow.entity");
13
+ const follow_service_1 = require("./follow.service");
14
+ const follow_controller_1 = require("./follow.controller");
15
+ let FollowModule = class FollowModule {
16
+ };
17
+ exports.FollowModule = FollowModule;
18
+ exports.FollowModule = FollowModule = __decorate([
19
+ (0, common_1.Module)({
20
+ imports: [typeorm_1.TypeOrmModule.forFeature([follow_entity_1.Follow])],
21
+ controllers: [follow_controller_1.FollowController],
22
+ providers: [follow_service_1.FollowService],
23
+ exports: [follow_service_1.FollowService],
24
+ })
25
+ ], FollowModule);
26
+ //# sourceMappingURL=follow.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow.module.js","sourceRoot":"","sources":["../../../src/user/follow/follow.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,4DAAkD;AAClD,qDAAiD;AACjD,2DAAuD;AAQhD,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IANxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,sBAAM,CAAC,CAAC,CAAC;QAC7C,WAAW,EAAE,CAAC,oCAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,8BAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,8BAAa,CAAC;KACzB,CAAC;GACW,YAAY,CAAG"}
@@ -0,0 +1,11 @@
1
+ import { User } from '../entities/user.entity';
2
+ import { Follow } from './entities/follow.entity';
3
+ import { Repository } from 'typeorm';
4
+ import { FollowResponseDto } from './dto/follow-response.dto';
5
+ export declare class FollowService {
6
+ private repository;
7
+ constructor(repository: Repository<Follow>);
8
+ isFollowing(user: User, targetUser: User): Promise<boolean>;
9
+ follow(targetUserId: User['id']): Promise<FollowResponseDto>;
10
+ unfollow(targetUserId: User['id']): Promise<FollowResponseDto>;
11
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.FollowService = void 0;
16
+ const typeorm_1 = require("@nestjs/typeorm");
17
+ const follow_entity_1 = require("./entities/follow.entity");
18
+ const typeorm_2 = require("typeorm");
19
+ const context_1 = require("../../core/context/context");
20
+ let FollowService = class FollowService {
21
+ repository;
22
+ constructor(repository) {
23
+ this.repository = repository;
24
+ }
25
+ async isFollowing(user, targetUser) {
26
+ return !!(await this.repository.findOne({
27
+ where: {
28
+ userId: user.id,
29
+ targetUserId: targetUser.id,
30
+ approved: true,
31
+ },
32
+ }));
33
+ }
34
+ async follow(targetUserId) {
35
+ const user = context_1.Context.getUser();
36
+ const res = await this.repository.insert({
37
+ targetUser: { id: targetUserId },
38
+ user: { id: user.id },
39
+ });
40
+ return { following: !!res.raw, approved: true };
41
+ }
42
+ async unfollow(targetUserId) {
43
+ const user = context_1.Context.getUser();
44
+ const res = await this.repository.delete({
45
+ targetUser: { id: targetUserId },
46
+ user: { id: user.id },
47
+ });
48
+ return { following: res.affected === 1 ? false : true, approved: true };
49
+ }
50
+ };
51
+ exports.FollowService = FollowService;
52
+ exports.FollowService = FollowService = __decorate([
53
+ __param(0, (0, typeorm_1.InjectRepository)(follow_entity_1.Follow)),
54
+ __metadata("design:paramtypes", [typeorm_2.Repository])
55
+ ], FollowService);
56
+ //# sourceMappingURL=follow.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow.service.js","sourceRoot":"","sources":["../../../src/user/follow/follow.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAmD;AAEnD,4DAAkD;AAClD,qCAAqC;AAErC,wDAAiD;AAEjD,IAAa,aAAa,GAA1B,MAAa,aAAa;IAEY;IADpC,YACoC,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAC/D,CAAC;IAKJ,KAAK,CAAC,WAAW,CAAC,IAAU,EAAE,UAAgB;QAC5C,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACtC,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,QAAQ,EAAE,IAAI;aACf;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,YAAwB;QACnC,MAAM,IAAI,GAAG,iBAAO,CAAC,OAAO,EAAU,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvC,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE;YAChC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,YAAwB;QACrC,MAAM,IAAI,GAAG,iBAAO,CAAC,OAAO,EAAU,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvC,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE;YAChC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;SACtB,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1E,CAAC;CACF,CAAA;AApCY,sCAAa;wBAAb,aAAa;IAErB,WAAA,IAAA,0BAAgB,EAAC,sBAAM,CAAC,CAAA;qCAAqB,oBAAU;GAF/C,aAAa,CAoCzB"}
@@ -1,7 +1,11 @@
1
1
  import { UserService } from './user.service';
2
+ import { UpdateProfileDto } from './dto/update-profile.dto';
3
+ import { UserResponseDto } from './dto/user-response.dto';
4
+ import { PaginatedResponseDto } from '~/common/dto/paginated-response.dto';
2
5
  export declare class UserController {
3
6
  private readonly userService;
4
7
  constructor(userService: UserService);
5
- findAll(): Promise<import("./entities/user.entity").User[]>;
6
- findOne(id: string): Promise<import("./entities/user.entity").User | null>;
8
+ findAll(): Promise<PaginatedResponseDto<UserResponseDto>>;
9
+ findOne(id: string): Promise<UserResponseDto>;
10
+ updateProfile(dto: UpdateProfileDto): Promise<UserResponseDto>;
7
11
  }
@@ -16,17 +16,42 @@ exports.UserController = void 0;
16
16
  const openapi = require("@nestjs/swagger");
17
17
  const common_1 = require("@nestjs/common");
18
18
  const user_service_1 = require("./user.service");
19
+ const update_profile_dto_1 = require("./dto/update-profile.dto");
20
+ const class_transformer_1 = require("class-transformer");
19
21
  const swagger_1 = require("@nestjs/swagger");
22
+ const user_response_dto_1 = require("./dto/user-response.dto");
23
+ const api_paginated_response_1 = require("../common/decorators/api-paginated-response");
24
+ const context_1 = require("../core/context/context");
25
+ const auth_guard_1 = require("../auth/auth.guard");
20
26
  let UserController = class UserController {
21
27
  userService;
22
28
  constructor(userService) {
23
29
  this.userService = userService;
24
30
  }
25
- findAll() {
26
- return this.userService.findAll();
31
+ async findAll() {
32
+ const users = await this.userService.findAll();
33
+ return {
34
+ result: users.map((u) => (0, class_transformer_1.plainToInstance)(user_response_dto_1.UserResponseDto, u)),
35
+ count: Infinity,
36
+ next: '',
37
+ previous: '',
38
+ };
27
39
  }
28
- findOne(id) {
29
- return this.userService.findOne(+id);
40
+ async findOne(id) {
41
+ if (isNaN(id)) {
42
+ return (0, class_transformer_1.plainToInstance)(user_response_dto_1.UserResponseDto, await this.userService.findOneByUsername(id));
43
+ }
44
+ return (0, class_transformer_1.plainToInstance)(user_response_dto_1.UserResponseDto, this.userService.findOne(+id));
45
+ }
46
+ async updateProfile(dto) {
47
+ const user = context_1.Context.getUser();
48
+ const res = await this.userService.updateProfile(dto, user);
49
+ return (0, class_transformer_1.plainToInstance)(user_response_dto_1.UserResponseDto, res.affected === 1
50
+ ? {
51
+ ...user,
52
+ ...dto,
53
+ }
54
+ : user);
30
55
  }
31
56
  };
32
57
  exports.UserController = UserController;
@@ -35,11 +60,12 @@ __decorate([
35
60
  summary: 'Lists users on the network',
36
61
  description: 'Returns a list of user entities',
37
62
  }),
63
+ (0, api_paginated_response_1.ApiPaginatedResponse)(user_response_dto_1.UserResponseDto),
38
64
  (0, common_1.Get)('user.list'),
39
- openapi.ApiResponse({ status: 200, type: [require("./entities/user.entity").User] }),
65
+ openapi.ApiResponse({ status: 200 }),
40
66
  __metadata("design:type", Function),
41
67
  __metadata("design:paramtypes", []),
42
- __metadata("design:returntype", void 0)
68
+ __metadata("design:returntype", Promise)
43
69
  ], UserController.prototype, "findAll", null);
44
70
  __decorate([
45
71
  (0, swagger_1.ApiOperation)({
@@ -47,12 +73,25 @@ __decorate([
47
73
  description: 'Returns a information about a user',
48
74
  }),
49
75
  (0, common_1.Get)('user.info'),
50
- openapi.ApiResponse({ status: 200, type: Object }),
76
+ openapi.ApiResponse({ status: 200, type: require("./dto/user-response.dto").UserResponseDto }),
51
77
  __param(0, (0, common_1.Query)('user')),
52
78
  __metadata("design:type", Function),
53
79
  __metadata("design:paramtypes", [String]),
54
- __metadata("design:returntype", void 0)
80
+ __metadata("design:returntype", Promise)
55
81
  ], UserController.prototype, "findOne", null);
82
+ __decorate([
83
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
84
+ (0, swagger_1.ApiOperation)({
85
+ summary: 'Retrieve a user',
86
+ description: 'Returns a information about a user',
87
+ }),
88
+ (0, common_1.Post)('user.updateProfile'),
89
+ openapi.ApiResponse({ status: 201, type: require("./dto/user-response.dto").UserResponseDto }),
90
+ __param(0, (0, common_1.Body)()),
91
+ __metadata("design:type", Function),
92
+ __metadata("design:paramtypes", [update_profile_dto_1.UpdateProfileDto]),
93
+ __metadata("design:returntype", Promise)
94
+ ], UserController.prototype, "updateProfile", null);
56
95
  exports.UserController = UserController = __decorate([
57
96
  (0, common_1.Controller)(),
58
97
  __metadata("design:paramtypes", [user_service_1.UserService])
@@ -1 +1 @@
1
- {"version":3,"file":"user.controller.js","sourceRoot":"","sources":["../../src/user/user.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAUwB;AACxB,iDAA6C;AAM7C,6CAA+C;AAGxC,IAAM,cAAc,GAApB,MAAM,cAAc;IACI;IAA7B,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAYzD,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAOD,OAAO,CAAgB,EAAU;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;CAWF,CAAA;AAnCY,wCAAc;AAazB;IALC,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,4BAA4B;QACrC,WAAW,EAAE,iCAAiC;KAC/C,CAAC;IACD,IAAA,YAAG,EAAC,WAAW,CAAC;;;;;6CAGhB;AAOD;IALC,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,oCAAoC;KAClD,CAAC;IACD,IAAA,YAAG,EAAC,WAAW,CAAC;;IACR,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;;;;6CAErB;yBAxBU,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAE+B,0BAAW;GAD1C,cAAc,CAmC1B"}
1
+ {"version":3,"file":"user.controller.js","sourceRoot":"","sources":["../../src/user/user.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAWwB;AACxB,iDAA6C;AAC7C,iEAA4D;AAC5D,yDAAoD;AACpD,6CAA+C;AAC/C,+DAA0D;AAE1D,wFAAkF;AAClF,qDAAiD;AACjD,mDAA8C;AAIvC,IAAM,cAAc,GAApB,MAAM,cAAc;IACI;IAA7B,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAQnD,AAAN,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAE/C,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,mCAAe,EAAE,CAAC,CAAC,CAAC;YAC7D,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAOK,AAAN,KAAK,CAAC,OAAO,CAAgB,EAAU;QACrC,IAAI,KAAK,CAAC,EAAS,CAAC,EAAE,CAAC;YACrB,OAAO,IAAA,mCAAe,EACpB,mCAAe,EACf,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAC7C,CAAC;QACJ,CAAC;QACD,OAAO,IAAA,mCAAe,EAAC,mCAAe,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAQK,AAAN,KAAK,CAAC,aAAa,CAAS,GAAqB;QAC/C,MAAM,IAAI,GAAG,iBAAO,CAAC,OAAO,EAAU,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE5D,OAAO,IAAA,mCAAe,EACpB,mCAAe,EACf,GAAG,CAAC,QAAQ,KAAK,CAAC;YAChB,CAAC,CAAC;gBACE,GAAG,IAAI;gBACP,GAAG,GAAG;aACP;YACH,CAAC,CAAC,IAAI,CACT,CAAC;IACJ,CAAC;CACF,CAAA;AAvDY,wCAAc;AASnB;IANL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,4BAA4B;QACrC,WAAW,EAAE,iCAAiC;KAC/C,CAAC;IACD,IAAA,6CAAoB,EAAC,mCAAe,CAAC;IACrC,IAAA,YAAG,EAAC,WAAW,CAAC;;;;;6CAUhB;AAOK;IALL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,oCAAoC;KAClD,CAAC;IACD,IAAA,YAAG,EAAC,WAAW,CAAC;;IACF,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;;;;6CAQ3B;AAQK;IANL,IAAA,kBAAS,EAAC,sBAAS,CAAC;IACpB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,oCAAoC;KAClD,CAAC;IACD,IAAA,aAAI,EAAC,oBAAoB,CAAC;;IACN,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,qCAAgB;;mDAahD;yBAtDU,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAE+B,0BAAW;GAD1C,cAAc,CAuD1B"}
@@ -18,18 +18,27 @@ const typeorm_1 = require("@nestjs/typeorm");
18
18
  const post_module_1 = require("../post/post.module");
19
19
  const acl_module_1 = require("../core/acl/acl.module");
20
20
  const user_acl_1 = __importDefault(require("./user.acl"));
21
+ const hook_module_1 = require("../core/hook/hook.module");
22
+ const avatar_controller_1 = require("./avatar/avatar.controller");
23
+ const avatar_service_1 = require("./avatar/avatar.service");
24
+ const file_storage_module_1 = require("../file-storage/file-storage.module");
25
+ const follow_module_1 = require("./follow/follow.module");
26
+ const follow_entity_1 = require("./follow/entities/follow.entity");
21
27
  let UserModule = class UserModule {
22
28
  };
23
29
  exports.UserModule = UserModule;
24
30
  exports.UserModule = UserModule = __decorate([
25
31
  (0, common_1.Module)({
26
32
  imports: [
27
- typeorm_1.TypeOrmModule.forFeature([user_entity_1.User]),
33
+ typeorm_1.TypeOrmModule.forFeature([user_entity_1.User, follow_entity_1.Follow]),
28
34
  (0, common_1.forwardRef)(() => post_module_1.PostModule),
29
35
  acl_module_1.AclModule.forChild(user_acl_1.default),
36
+ hook_module_1.HookModule,
37
+ file_storage_module_1.FileStorageModule,
38
+ follow_module_1.FollowModule,
30
39
  ],
31
- controllers: [user_controller_1.UserController],
32
- providers: [user_service_1.UserService],
40
+ controllers: [user_controller_1.UserController, avatar_controller_1.UserAvatarController],
41
+ providers: [user_service_1.UserService, avatar_service_1.UserAvatarService],
33
42
  exports: [user_service_1.UserService],
34
43
  })
35
44
  ], UserModule);
@@ -1 +1 @@
1
- {"version":3,"file":"user.module.js","sourceRoot":"","sources":["../../src/user/user.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoD;AACpD,iDAA6C;AAC7C,uDAAmD;AACnD,wDAA8C;AAC9C,6CAAgD;AAChD,qDAAgD;AAChD,uDAAkD;AAClD,0DAAsC;AAY/B,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAVtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,kBAAI,CAAC,CAAC;YAChC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,sBAAS,CAAC,QAAQ,CAAC,kBAAY,CAAC;SACjC;QACD,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;GACW,UAAU,CAAG"}
1
+ {"version":3,"file":"user.module.js","sourceRoot":"","sources":["../../src/user/user.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoD;AACpD,iDAA6C;AAC7C,uDAAmD;AACnD,wDAA8C;AAC9C,6CAAgD;AAChD,qDAAgD;AAChD,uDAAkD;AAClD,0DAAsC;AACtC,0DAAqD;AACrD,kEAAkE;AAClE,4DAA4D;AAC5D,6EAAuE;AACvE,0DAAsD;AACtD,mEAAyD;AAelD,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAbtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,kBAAI,EAAE,sBAAM,CAAC,CAAC;YACxC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,sBAAS,CAAC,QAAQ,CAAC,kBAAY,CAAC;YAChC,wBAAU;YACV,uCAAiB;YACjB,4BAAY;SACb;QACD,WAAW,EAAE,CAAC,gCAAc,EAAE,wCAAoB,CAAC;QACnD,SAAS,EAAE,CAAC,0BAAW,EAAE,kCAAiB,CAAC;QAC3C,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;GACW,UAAU,CAAG"}
@@ -1,11 +1,16 @@
1
- import { UpdateUserDto } from './dto/update-user.dto';
1
+ import { UpdateProfileDto } from './dto/update-profile.dto';
2
2
  import { User } from './entities/user.entity';
3
3
  import { QueryRunner, Repository } from 'typeorm';
4
4
  import { DataSource } from 'typeorm';
5
+ import { HookService } from '~/core/hook/hook.service';
6
+ import { UserDto } from './dto/user.dto';
7
+ import { FollowService } from './follow/follow.service';
5
8
  export declare class UserService {
6
9
  private readonly repository;
7
10
  private readonly dataSource;
8
- constructor(repository: Repository<User>, dataSource: DataSource);
11
+ private readonly hookService;
12
+ private readonly followService;
13
+ constructor(repository: Repository<User>, dataSource: DataSource, hookService: HookService, followService: FollowService);
9
14
  create({ username, name, email, password, verified, }: {
10
15
  username: string;
11
16
  name: string;
@@ -15,8 +20,10 @@ export declare class UserService {
15
20
  }, queryRunner?: QueryRunner): Promise<User>;
16
21
  verifyUsername(username: string, queryRunner?: QueryRunner): Promise<boolean>;
17
22
  findAll(): Promise<User[]>;
18
- findOne(id: number): Promise<User | null>;
19
- findOneByUsername(username: string): Promise<User | null>;
20
- update(id: number, updateUserDto: UpdateUserDto): string;
23
+ findOne(id: number): Promise<UserDto | null>;
24
+ findOneByUsername(username: string): Promise<UserDto | null>;
25
+ buildUserDto(user: User): Promise<UserDto>;
26
+ updateProfile(dto: UpdateProfileDto, user: User): Promise<import("typeorm").UpdateResult>;
21
27
  remove(id: number): string;
28
+ private buildUserQuery;
22
29
  }
@@ -20,18 +20,25 @@ const typeorm_2 = require("typeorm");
20
20
  const context_1 = require("../core/context/context");
21
21
  const user_exceptions_1 = require("./user.exceptions");
22
22
  const typeorm_3 = require("typeorm");
23
+ const hook_service_1 = require("../core/hook/hook.service");
24
+ const constants_1 = require("./constants");
25
+ const follow_service_1 = require("./follow/follow.service");
23
26
  let UserService = class UserService {
24
27
  repository;
25
28
  dataSource;
26
- constructor(repository, dataSource) {
29
+ hookService;
30
+ followService;
31
+ constructor(repository, dataSource, hookService, followService) {
27
32
  this.repository = repository;
28
33
  this.dataSource = dataSource;
34
+ this.hookService = hookService;
35
+ this.followService = followService;
29
36
  }
30
37
  async create({ username, name, email, password, verified = false, }, queryRunner) {
31
38
  if (!queryRunner) {
32
39
  queryRunner = this.dataSource.createQueryRunner();
33
40
  }
34
- this.verifyUsername(username, queryRunner);
41
+ await this.verifyUsername(username, queryRunner);
35
42
  let user = queryRunner.manager.create(user_entity_1.User, {
36
43
  network: context_1.Context.getNetwork(),
37
44
  username,
@@ -39,7 +46,11 @@ let UserService = class UserService {
39
46
  email,
40
47
  password,
41
48
  });
42
- return await queryRunner.manager.save(user);
49
+ user = await queryRunner.manager.save(user);
50
+ if (user) {
51
+ this.hookService.emit(constants_1.USER_CREATED, { user });
52
+ }
53
+ return user;
43
54
  }
44
55
  async verifyUsername(username, queryRunner) {
45
56
  if (!queryRunner) {
@@ -64,27 +75,54 @@ let UserService = class UserService {
64
75
  findAll() {
65
76
  return this.repository.find();
66
77
  }
67
- findOne(id) {
68
- return this.repository.findOne({
78
+ async findOne(id) {
79
+ const user = await this.repository.findOne({
69
80
  where: { id },
70
- relations: ['communities', 'network'],
81
+ relations: ['communities'],
71
82
  });
83
+ if (!user) {
84
+ return null;
85
+ }
86
+ return await this.buildUserDto(user);
72
87
  }
73
- findOneByUsername(username) {
74
- return this.repository.findOneBy({ username });
88
+ async findOneByUsername(username) {
89
+ const user = await this.buildUserQuery()
90
+ .where('username = :username', { username })
91
+ .getOne();
92
+ if (!user) {
93
+ return null;
94
+ }
95
+ return await this.buildUserDto(user);
75
96
  }
76
- update(id, updateUserDto) {
77
- return `This action updates a #${id} user`;
97
+ async buildUserDto(user) {
98
+ const currentUser = context_1.Context.getUser();
99
+ const isFollowing = !!currentUser &&
100
+ currentUser.id !== user.id &&
101
+ (await this.followService.isFollowing(context_1.Context.getUser(), user));
102
+ return {
103
+ ...user,
104
+ relations: {
105
+ isFollowing,
106
+ },
107
+ };
108
+ }
109
+ updateProfile(dto, user) {
110
+ return this.repository.update({ id: user.id }, dto);
78
111
  }
79
112
  remove(id) {
80
113
  return `This action removes a #${id} user`;
81
114
  }
115
+ buildUserQuery() {
116
+ return this.repository.createQueryBuilder('user');
117
+ }
82
118
  };
83
119
  exports.UserService = UserService;
84
120
  exports.UserService = UserService = __decorate([
85
121
  (0, common_1.Injectable)(),
86
122
  __param(0, (0, typeorm_1.InjectRepository)(user_entity_1.User)),
87
123
  __metadata("design:paramtypes", [typeorm_2.Repository,
88
- typeorm_3.DataSource])
124
+ typeorm_3.DataSource,
125
+ hook_service_1.HookService,
126
+ follow_service_1.FollowService])
89
127
  ], UserService);
90
128
  //# sourceMappingURL=user.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/user/user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,6CAAmD;AACnD,wDAA8C;AAC9C,qCAAkD;AAClD,qDAAiD;AACjD,uDAG2B;AAC3B,qCAAqC;AAG9B,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEqB;IACxB;IAFnB,YAC2C,UAA4B,EACpD,UAAsB;QADE,eAAU,GAAV,UAAU,CAAkB;QACpD,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,EACE,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,GAOjB,EACD,WAAyB;QAEzB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAI,EAAE;YAC1C,OAAO,EAAE,iBAAO,CAAC,UAAU,EAAE;YAC7B,QAAQ;YACR,IAAI;YACJ,KAAK;YACL,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAKD,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,WAAyB;QAEzB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACpD,CAAC;QAGD,MAAM,aAAa,GAAG,uBAAuB,CAAC;QAE9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,0CAAwB,CAChC,mGAAmG,CACpG,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,0CAAwB,CAChC,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QAGD,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,kBAAI,EAAE;YACxD,OAAO,EAAE,iBAAO,CAAC,UAAU,EAAE;YAC7B,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,wCAAsB,EAAE,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IAMD,iBAAiB,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,aAA4B;QAC7C,OAAO,0BAA0B,EAAE,OAAO,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,0BAA0B,EAAE,OAAO,CAAC;IAC7C,CAAC;CACF,CAAA;AAxGY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCAA8B,oBAAU;QAClC,oBAAU;GAH9B,WAAW,CAwGvB"}
1
+ {"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/user/user.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@social.dev/server-sdk",
3
- "version": "0.0.1-alpha.6",
3
+ "version": "0.0.1-alpha.61",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "private": false,
@@ -31,9 +31,12 @@
31
31
  "@nestjs/sequelize": "^11.0.0",
32
32
  "@nestjs/swagger": "^11.1.6",
33
33
  "@nestjs/typeorm": "^11.0.0",
34
+ "@node-rs/argon2": "^2.0.2",
35
+ "@platformatic/kafka": "^1.14.0",
34
36
  "axios": "^1.11.0",
35
37
  "bl": "^6.1.1",
36
38
  "class-transformer": "^0.5.1",
39
+ "class-validator": "^0.14.2",
37
40
  "cookie-parser": "^1.4.7",
38
41
  "jose": "^6.0.13",
39
42
  "nestjs-cls": "^6.0.1",
@@ -43,6 +46,7 @@
43
46
  "rxjs": "^7.8.1",
44
47
  "sequelize": "^6.37.7",
45
48
  "sequelize-typescript": "^2.1.6",
49
+ "sharp": "^0.34.4",
46
50
  "typeorm": "^0.3.23"
47
51
  },
48
52
  "devDependencies": {
@@ -91,12 +95,13 @@
91
95
  "coverageDirectory": "../coverage",
92
96
  "testEnvironment": "node",
93
97
  "moduleNameMapper": {
94
- "^src/(.*)$": "<rootDir>/$1"
98
+ "^src/(.*)$": "<rootDir>/$1",
99
+ "^~/(.*)$": "<rootDir>/$1",
100
+ "^@platformatic/kafka$": "<rootDir>/__mocks__/kafka.mock.ts"
95
101
  }
96
102
  },
97
103
  "scripts": {
98
104
  "build": "nest build",
99
- "build2": "tsc --build tsconfig.build.json",
100
105
  "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
101
106
  "start": "nest start",
102
107
  "dev": "nest build --watch",
@@ -1,6 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from "typeorm";
2
- export declare class Migrations1756201302119 implements MigrationInterface {
3
- name: string;
4
- up(queryRunner: QueryRunner): Promise<void>;
5
- down(queryRunner: QueryRunner): Promise<void>;
6
- }
@@ -1,84 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Migrations1756201302119 = void 0;
4
- class Migrations1756201302119 {
5
- name = 'Migrations1756201302119';
6
- async up(queryRunner) {
7
- await queryRunner.query(`CREATE TABLE "network" ("id" SERIAL NOT NULL, "name" character varying NOT NULL, "fqdn" character varying NOT NULL, CONSTRAINT "PK_8f8264c2d37cbbd8282ee9a3c97" PRIMARY KEY ("id"))`);
8
- await queryRunner.query(`CREATE TYPE "public"."community_privacy_enum" AS ENUM('PUBLIC', 'PRIVATE', 'HIDDEN')`);
9
- await queryRunner.query(`CREATE TABLE "community" ("id" SERIAL NOT NULL, "name" character varying NOT NULL, "privacy" "public"."community_privacy_enum" NOT NULL DEFAULT 'PUBLIC', "networkId" integer NOT NULL, CONSTRAINT "PK_cae794115a383328e8923de4193" PRIMARY KEY ("id"))`);
10
- await queryRunner.query(`CREATE TYPE "public"."community_member_role_enum" AS ENUM('MEMBER', 'MODERATOR', 'ADMIN', 'OWNER')`);
11
- await queryRunner.query(`CREATE TYPE "public"."community_member_status_enum" AS ENUM('ACTIVE', 'REQUESTED', 'INVITED', 'BANNED')`);
12
- await queryRunner.query(`CREATE TABLE "community_member" ("communityId" integer NOT NULL, "userId" integer NOT NULL, "role" "public"."community_member_role_enum" NOT NULL, "status" "public"."community_member_status_enum" NOT NULL, "invitedById" integer, CONSTRAINT "PK_48777696f39fa15d444ab3bb435" PRIMARY KEY ("communityId", "userId"))`);
13
- await queryRunner.query(`CREATE TABLE "user" ("id" SERIAL NOT NULL, "name" character varying(30) NOT NULL, "username" character varying(15) NOT NULL, "email" character varying(40) NOT NULL, "password" character varying, "networkId" integer, CONSTRAINT "username_unique" UNIQUE ("username"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`);
14
- await queryRunner.query(`CREATE TABLE "media" ("id" SERIAL NOT NULL, "pathname" character varying, "sizeBytes" integer NOT NULL, "deleted" boolean NOT NULL, "durationSecs" integer, "type" character varying NOT NULL, "networkId" integer NOT NULL, "ownerId" integer NOT NULL, "postId" integer, CONSTRAINT "PK_f4e0fcac36e050de337b670d8bd" PRIMARY KEY ("id"))`);
15
- await queryRunner.query(`CREATE INDEX "IDX_637a0dd7f9068a9ca80decee00" ON "media" ("type") `);
16
- await queryRunner.query(`CREATE TABLE "post_reaction" ("userId" integer NOT NULL, "postId" integer NOT NULL, "emoji" character varying, CONSTRAINT "PK_8f0e895fae24ab37d0f5eb53c2f" PRIMARY KEY ("userId", "postId"))`);
17
- await queryRunner.query(`CREATE TABLE "post" ("id" SERIAL NOT NULL, "message" text, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "networkId" integer NOT NULL, "communityId" integer, "replyToId" integer, "ownerId" integer NOT NULL, CONSTRAINT "PK_be5fda3aac270b134ff9c21cdee" PRIMARY KEY ("id"))`);
18
- await queryRunner.query(`CREATE TABLE "chat_conversation_member" ("conversationId" integer NOT NULL, "userId" integer NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_f105c5e3b4e656950c6e72ef434" PRIMARY KEY ("conversationId", "userId"))`);
19
- await queryRunner.query(`CREATE TYPE "public"."chat_conversation_type_enum" AS ENUM('ONE_ON_ONE')`);
20
- await queryRunner.query(`CREATE TABLE "chat_conversation" ("id" SERIAL NOT NULL, "type" "public"."chat_conversation_type_enum" NOT NULL DEFAULT 'ONE_ON_ONE', "name" character varying, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_0c5b7697e69f674eb983b1e83cc" PRIMARY KEY ("id"))`);
21
- await queryRunner.query(`CREATE TABLE "chat_message" ("id" SERIAL NOT NULL, "text" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "conversationId" integer, "senderId" integer NOT NULL, CONSTRAINT "PK_3cc0d85193aade457d3077dd06b" PRIMARY KEY ("id"))`);
22
- await queryRunner.query(`CREATE TABLE "oidc_user" ("providerId" character varying NOT NULL, "sub" character varying NOT NULL, "networkId" integer NOT NULL, "userId" integer, CONSTRAINT "REL_28242cc8b902f234841dc9d5e5" UNIQUE ("userId"), CONSTRAINT "PK_f1d744a99f9a8dc6566e11b1490" PRIMARY KEY ("providerId", "sub"))`);
23
- await queryRunner.query(`ALTER TABLE "community" ADD CONSTRAINT "FK_dd53c7e12f12655271aef28717b" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
24
- await queryRunner.query(`ALTER TABLE "community_member" ADD CONSTRAINT "FK_2951a66589069ef105a6784b494" FOREIGN KEY ("communityId") REFERENCES "community"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
25
- await queryRunner.query(`ALTER TABLE "community_member" ADD CONSTRAINT "FK_b63d16b2a505c9f6376107acc2c" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
26
- await queryRunner.query(`ALTER TABLE "community_member" ADD CONSTRAINT "FK_99327f5cec6d5d0423c7373b125" FOREIGN KEY ("invitedById") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
27
- await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_67c127a235009d85d73bedeea72" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
28
- await queryRunner.query(`ALTER TABLE "media" ADD CONSTRAINT "FK_34b56128ffce9202f2b80ceb54e" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`);
29
- await queryRunner.query(`ALTER TABLE "media" ADD CONSTRAINT "FK_138d7762e76b7fee9de6db0f8eb" FOREIGN KEY ("ownerId") REFERENCES "user"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`);
30
- await queryRunner.query(`ALTER TABLE "media" ADD CONSTRAINT "FK_9dcde1b1308b5f22f34b8454e28" FOREIGN KEY ("postId") REFERENCES "post"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
31
- await queryRunner.query(`ALTER TABLE "post_reaction" ADD CONSTRAINT "FK_5019c594c963270ac7a6bfafbec" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
32
- await queryRunner.query(`ALTER TABLE "post_reaction" ADD CONSTRAINT "FK_5e7b98f3cea583c73a0bbbe0de1" FOREIGN KEY ("postId") REFERENCES "post"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
33
- await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_f03bf599ee6be89cb1551d4c749" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
34
- await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_eff802f635e95c8aef1998b4843" FOREIGN KEY ("communityId") REFERENCES "community"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
35
- await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_343ffc7266f858cc02c8397035e" FOREIGN KEY ("replyToId") REFERENCES "post"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
36
- await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_4490d00e1925ca046a1f52ddf04" FOREIGN KEY ("ownerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
37
- await queryRunner.query(`ALTER TABLE "chat_conversation_member" ADD CONSTRAINT "FK_39828751da8c4d3e3c1845757cb" FOREIGN KEY ("conversationId") REFERENCES "chat_conversation"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
38
- await queryRunner.query(`ALTER TABLE "chat_conversation_member" ADD CONSTRAINT "FK_500b5c2b79a7abbf504693e1071" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
39
- await queryRunner.query(`ALTER TABLE "chat_message" ADD CONSTRAINT "FK_71d77a16df3f16e830d645f31f6" FOREIGN KEY ("conversationId") REFERENCES "chat_conversation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
40
- await queryRunner.query(`ALTER TABLE "chat_message" ADD CONSTRAINT "FK_a2be22c99b34156574f4e02d0a0" FOREIGN KEY ("senderId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
41
- await queryRunner.query(`ALTER TABLE "oidc_user" ADD CONSTRAINT "FK_b1833282b002faf5ec48d9d1678" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
42
- await queryRunner.query(`ALTER TABLE "oidc_user" ADD CONSTRAINT "FK_28242cc8b902f234841dc9d5e59" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
43
- }
44
- async down(queryRunner) {
45
- await queryRunner.query(`ALTER TABLE "oidc_user" DROP CONSTRAINT "FK_28242cc8b902f234841dc9d5e59"`);
46
- await queryRunner.query(`ALTER TABLE "oidc_user" DROP CONSTRAINT "FK_b1833282b002faf5ec48d9d1678"`);
47
- await queryRunner.query(`ALTER TABLE "chat_message" DROP CONSTRAINT "FK_a2be22c99b34156574f4e02d0a0"`);
48
- await queryRunner.query(`ALTER TABLE "chat_message" DROP CONSTRAINT "FK_71d77a16df3f16e830d645f31f6"`);
49
- await queryRunner.query(`ALTER TABLE "chat_conversation_member" DROP CONSTRAINT "FK_500b5c2b79a7abbf504693e1071"`);
50
- await queryRunner.query(`ALTER TABLE "chat_conversation_member" DROP CONSTRAINT "FK_39828751da8c4d3e3c1845757cb"`);
51
- await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_4490d00e1925ca046a1f52ddf04"`);
52
- await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_343ffc7266f858cc02c8397035e"`);
53
- await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_eff802f635e95c8aef1998b4843"`);
54
- await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_f03bf599ee6be89cb1551d4c749"`);
55
- await queryRunner.query(`ALTER TABLE "post_reaction" DROP CONSTRAINT "FK_5e7b98f3cea583c73a0bbbe0de1"`);
56
- await queryRunner.query(`ALTER TABLE "post_reaction" DROP CONSTRAINT "FK_5019c594c963270ac7a6bfafbec"`);
57
- await queryRunner.query(`ALTER TABLE "media" DROP CONSTRAINT "FK_9dcde1b1308b5f22f34b8454e28"`);
58
- await queryRunner.query(`ALTER TABLE "media" DROP CONSTRAINT "FK_138d7762e76b7fee9de6db0f8eb"`);
59
- await queryRunner.query(`ALTER TABLE "media" DROP CONSTRAINT "FK_34b56128ffce9202f2b80ceb54e"`);
60
- await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_67c127a235009d85d73bedeea72"`);
61
- await queryRunner.query(`ALTER TABLE "community_member" DROP CONSTRAINT "FK_99327f5cec6d5d0423c7373b125"`);
62
- await queryRunner.query(`ALTER TABLE "community_member" DROP CONSTRAINT "FK_b63d16b2a505c9f6376107acc2c"`);
63
- await queryRunner.query(`ALTER TABLE "community_member" DROP CONSTRAINT "FK_2951a66589069ef105a6784b494"`);
64
- await queryRunner.query(`ALTER TABLE "community" DROP CONSTRAINT "FK_dd53c7e12f12655271aef28717b"`);
65
- await queryRunner.query(`DROP TABLE "oidc_user"`);
66
- await queryRunner.query(`DROP TABLE "chat_message"`);
67
- await queryRunner.query(`DROP TABLE "chat_conversation"`);
68
- await queryRunner.query(`DROP TYPE "public"."chat_conversation_type_enum"`);
69
- await queryRunner.query(`DROP TABLE "chat_conversation_member"`);
70
- await queryRunner.query(`DROP TABLE "post"`);
71
- await queryRunner.query(`DROP TABLE "post_reaction"`);
72
- await queryRunner.query(`DROP INDEX "public"."IDX_637a0dd7f9068a9ca80decee00"`);
73
- await queryRunner.query(`DROP TABLE "media"`);
74
- await queryRunner.query(`DROP TABLE "user"`);
75
- await queryRunner.query(`DROP TABLE "community_member"`);
76
- await queryRunner.query(`DROP TYPE "public"."community_member_status_enum"`);
77
- await queryRunner.query(`DROP TYPE "public"."community_member_role_enum"`);
78
- await queryRunner.query(`DROP TABLE "community"`);
79
- await queryRunner.query(`DROP TYPE "public"."community_privacy_enum"`);
80
- await queryRunner.query(`DROP TABLE "network"`);
81
- }
82
- }
83
- exports.Migrations1756201302119 = Migrations1756201302119;
84
- //# sourceMappingURL=1756201302119-migrations.js.map