@social.dev/server-sdk 0.0.0-PLACEHOLDER-ci-test.35b8eea

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 (360) hide show
  1. package/README.md +15 -0
  2. package/dist/app.module.d.ts +10 -0
  3. package/dist/app.module.js +89 -0
  4. package/dist/app.module.js.map +1 -0
  5. package/dist/auth/auth.controller.d.ts +8 -0
  6. package/dist/auth/auth.controller.js +69 -0
  7. package/dist/auth/auth.controller.js.map +1 -0
  8. package/dist/auth/auth.guard.d.ts +7 -0
  9. package/dist/auth/auth.guard.js +33 -0
  10. package/dist/auth/auth.guard.js.map +1 -0
  11. package/dist/auth/auth.middleware.d.ts +14 -0
  12. package/dist/auth/auth.middleware.js +60 -0
  13. package/dist/auth/auth.middleware.js.map +1 -0
  14. package/dist/auth/auth.module.d.ts +2 -0
  15. package/dist/auth/auth.module.js +37 -0
  16. package/dist/auth/auth.module.js.map +1 -0
  17. package/dist/auth/auth.service.d.ts +7 -0
  18. package/dist/auth/auth.service.js +29 -0
  19. package/dist/auth/auth.service.js.map +1 -0
  20. package/dist/auth/constants.d.ts +3 -0
  21. package/dist/auth/constants.js +7 -0
  22. package/dist/auth/constants.js.map +1 -0
  23. package/dist/auth/dto/login-success.dto.d.ts +5 -0
  24. package/dist/auth/dto/login-success.dto.js +40 -0
  25. package/dist/auth/dto/login-success.dto.js.map +1 -0
  26. package/dist/auth/dto/login.dto.d.ts +4 -0
  27. package/dist/auth/dto/login.dto.js +31 -0
  28. package/dist/auth/dto/login.dto.js.map +1 -0
  29. package/dist/auth/enums/auth-method.enum.d.ts +4 -0
  30. package/dist/auth/enums/auth-method.enum.js +9 -0
  31. package/dist/auth/enums/auth-method.enum.js.map +1 -0
  32. package/dist/auth/oidc/dto/requests.d.ts +6 -0
  33. package/dist/auth/oidc/dto/requests.js +47 -0
  34. package/dist/auth/oidc/dto/requests.js.map +1 -0
  35. package/dist/auth/oidc/dto/responses.d.ts +5 -0
  36. package/dist/auth/oidc/dto/responses.js +45 -0
  37. package/dist/auth/oidc/dto/responses.js.map +1 -0
  38. package/dist/auth/oidc/entities/oidc-user.entity.d.ts +8 -0
  39. package/dist/auth/oidc/entities/oidc-user.entity.js +47 -0
  40. package/dist/auth/oidc/entities/oidc-user.entity.js.map +1 -0
  41. package/dist/auth/oidc/oidc.controller.d.ts +16 -0
  42. package/dist/auth/oidc/oidc.controller.js +99 -0
  43. package/dist/auth/oidc/oidc.controller.js.map +1 -0
  44. package/dist/auth/oidc/oidc.module.d.ts +2 -0
  45. package/dist/auth/oidc/oidc.module.js +35 -0
  46. package/dist/auth/oidc/oidc.module.js.map +1 -0
  47. package/dist/auth/oidc/oidc.service.d.ts +38 -0
  48. package/dist/auth/oidc/oidc.service.js +189 -0
  49. package/dist/auth/oidc/oidc.service.js.map +1 -0
  50. package/dist/auth/session/session.controller.d.ts +9 -0
  51. package/dist/auth/session/session.controller.js +84 -0
  52. package/dist/auth/session/session.controller.js.map +1 -0
  53. package/dist/auth/session/session.module.d.ts +2 -0
  54. package/dist/auth/session/session.module.js +25 -0
  55. package/dist/auth/session/session.module.js.map +1 -0
  56. package/dist/auth/session/session.service.d.ts +18 -0
  57. package/dist/auth/session/session.service.js +62 -0
  58. package/dist/auth/session/session.service.js.map +1 -0
  59. package/dist/bootstrap.d.ts +2 -0
  60. package/dist/bootstrap.js +34 -0
  61. package/dist/bootstrap.js.map +1 -0
  62. package/dist/chat/chat.controller.d.ts +17 -0
  63. package/dist/chat/chat.controller.js +137 -0
  64. package/dist/chat/chat.controller.js.map +1 -0
  65. package/dist/chat/chat.module.d.ts +2 -0
  66. package/dist/chat/chat.module.js +36 -0
  67. package/dist/chat/chat.module.js.map +1 -0
  68. package/dist/chat/chat.service.d.ts +34 -0
  69. package/dist/chat/chat.service.js +141 -0
  70. package/dist/chat/chat.service.js.map +1 -0
  71. package/dist/chat/dto/create-conversation.dto.d.ts +10 -0
  72. package/dist/chat/dto/create-conversation.dto.js +43 -0
  73. package/dist/chat/dto/create-conversation.dto.js.map +1 -0
  74. package/dist/chat/dto/create-message.dto.d.ts +5 -0
  75. package/dist/chat/dto/create-message.dto.js +31 -0
  76. package/dist/chat/dto/create-message.dto.js.map +1 -0
  77. package/dist/chat/dto/index.d.ts +4 -0
  78. package/dist/chat/dto/index.js +24 -0
  79. package/dist/chat/dto/index.js.map +1 -0
  80. package/dist/chat/dto/responses.dto.d.ts +14 -0
  81. package/dist/chat/dto/responses.dto.js +64 -0
  82. package/dist/chat/dto/responses.dto.js.map +1 -0
  83. package/dist/chat/entities/conversation-member.entity.d.ts +9 -0
  84. package/dist/chat/entities/conversation-member.entity.js +59 -0
  85. package/dist/chat/entities/conversation-member.entity.js.map +1 -0
  86. package/dist/chat/entities/conversation.entity.d.ts +9 -0
  87. package/dist/chat/entities/conversation.entity.js +56 -0
  88. package/dist/chat/entities/conversation.entity.js.map +1 -0
  89. package/dist/chat/entities/message.entity.d.ts +9 -0
  90. package/dist/chat/entities/message.entity.js +51 -0
  91. package/dist/chat/entities/message.entity.js.map +1 -0
  92. package/dist/chat/enums/conversation-type.enum.d.ts +3 -0
  93. package/dist/chat/enums/conversation-type.enum.js +8 -0
  94. package/dist/chat/enums/conversation-type.enum.js.map +1 -0
  95. package/dist/common/decorators/api-paginated-response.d.ts +2 -0
  96. package/dist/common/decorators/api-paginated-response.js +26 -0
  97. package/dist/common/decorators/api-paginated-response.js.map +1 -0
  98. package/dist/common/dto/paginated-response.dto.d.ts +6 -0
  99. package/dist/common/dto/paginated-response.dto.js +45 -0
  100. package/dist/common/dto/paginated-response.dto.js.map +1 -0
  101. package/dist/common/injection-tokens.d.ts +2 -0
  102. package/dist/common/injection-tokens.js +6 -0
  103. package/dist/common/injection-tokens.js.map +1 -0
  104. package/dist/common/utils/ffmpeg.d.ts +1 -0
  105. package/dist/common/utils/ffmpeg.js +32 -0
  106. package/dist/common/utils/ffmpeg.js.map +1 -0
  107. package/dist/common/utils/ffprobe.d.ts +1 -0
  108. package/dist/common/utils/ffprobe.js +34 -0
  109. package/dist/common/utils/ffprobe.js.map +1 -0
  110. package/dist/common/utils/fs.d.ts +1 -0
  111. package/dist/common/utils/fs.js +12 -0
  112. package/dist/common/utils/fs.js.map +1 -0
  113. package/dist/common/utils/math.d.ts +1 -0
  114. package/dist/common/utils/math.js +8 -0
  115. package/dist/common/utils/math.js.map +1 -0
  116. package/dist/community/community.acl.d.ts +3 -0
  117. package/dist/community/community.acl.js +49 -0
  118. package/dist/community/community.acl.js.map +1 -0
  119. package/dist/community/community.controller.d.ts +24 -0
  120. package/dist/community/community.controller.js +277 -0
  121. package/dist/community/community.controller.js.map +1 -0
  122. package/dist/community/community.module.d.ts +2 -0
  123. package/dist/community/community.module.js +40 -0
  124. package/dist/community/community.module.js.map +1 -0
  125. package/dist/community/community.service.d.ts +44 -0
  126. package/dist/community/community.service.js +218 -0
  127. package/dist/community/community.service.js.map +1 -0
  128. package/dist/community/dto/community-members-response.dto.d.ts +5 -0
  129. package/dist/community/dto/community-members-response.dto.js +29 -0
  130. package/dist/community/dto/community-members-response.dto.js.map +1 -0
  131. package/dist/community/dto/community-response.dto.d.ts +14 -0
  132. package/dist/community/dto/community-response.dto.js +88 -0
  133. package/dist/community/dto/community-response.dto.js.map +1 -0
  134. package/dist/community/dto/create-community.dto.d.ts +3 -0
  135. package/dist/community/dto/create-community.dto.js +26 -0
  136. package/dist/community/dto/create-community.dto.js.map +1 -0
  137. package/dist/community/dto/index.d.ts +10 -0
  138. package/dist/community/dto/index.js +33 -0
  139. package/dist/community/dto/index.js.map +1 -0
  140. package/dist/community/dto/update-community.dto.d.ts +5 -0
  141. package/dist/community/dto/update-community.dto.js +13 -0
  142. package/dist/community/dto/update-community.dto.js.map +1 -0
  143. package/dist/community/entities/community-member.entity.d.ts +13 -0
  144. package/dist/community/entities/community-member.entity.js +74 -0
  145. package/dist/community/entities/community-member.entity.js.map +1 -0
  146. package/dist/community/entities/community.entity.d.ts +10 -0
  147. package/dist/community/entities/community.entity.js +61 -0
  148. package/dist/community/entities/community.entity.js.map +1 -0
  149. package/dist/community/enums/community-privacy.enum.d.ts +6 -0
  150. package/dist/community/enums/community-privacy.enum.js +11 -0
  151. package/dist/community/enums/community-privacy.enum.js.map +1 -0
  152. package/dist/community/enums/community-role.enum.d.ts +7 -0
  153. package/dist/community/enums/community-role.enum.js +12 -0
  154. package/dist/community/enums/community-role.enum.js.map +1 -0
  155. package/dist/community/enums/community-status.enum.d.ts +7 -0
  156. package/dist/community/enums/community-status.enum.js +12 -0
  157. package/dist/community/enums/community-status.enum.js.map +1 -0
  158. package/dist/configs/configs.controller.d.ts +4 -0
  159. package/dist/configs/configs.controller.js +40 -0
  160. package/dist/configs/configs.controller.js.map +1 -0
  161. package/dist/configs/configs.module.d.ts +2 -0
  162. package/dist/configs/configs.module.js +23 -0
  163. package/dist/configs/configs.module.js.map +1 -0
  164. package/dist/configs/configs.service.d.ts +22 -0
  165. package/dist/configs/configs.service.js +30 -0
  166. package/dist/configs/configs.service.js.map +1 -0
  167. package/dist/configs/dto/public-config.dto.d.ts +6 -0
  168. package/dist/configs/dto/public-config.dto.js +43 -0
  169. package/dist/configs/dto/public-config.dto.js.map +1 -0
  170. package/dist/core/acl/acl.factory.d.ts +23 -0
  171. package/dist/core/acl/acl.factory.js +42 -0
  172. package/dist/core/acl/acl.factory.js.map +1 -0
  173. package/dist/core/acl/acl.module.d.ts +6 -0
  174. package/dist/core/acl/acl.module.js +36 -0
  175. package/dist/core/acl/acl.module.js.map +1 -0
  176. package/dist/core/context/context.d.ts +11 -0
  177. package/dist/core/context/context.js +23 -0
  178. package/dist/core/context/context.js.map +1 -0
  179. package/dist/core/context/context.module.d.ts +2 -0
  180. package/dist/core/context/context.module.js +33 -0
  181. package/dist/core/context/context.module.js.map +1 -0
  182. package/dist/core/context/context.service.d.ts +4 -0
  183. package/dist/core/context/context.service.js +8 -0
  184. package/dist/core/context/context.service.js.map +1 -0
  185. package/dist/core/context/context.store.d.ts +8 -0
  186. package/dist/core/context/context.store.js +3 -0
  187. package/dist/core/context/context.store.js.map +1 -0
  188. package/dist/core/core.module.d.ts +2 -0
  189. package/dist/core/core.module.js +21 -0
  190. package/dist/core/core.module.js.map +1 -0
  191. package/dist/core/hook/hook.module.d.ts +4 -0
  192. package/dist/core/hook/hook.module.js +30 -0
  193. package/dist/core/hook/hook.module.js.map +1 -0
  194. package/dist/core/hook/hook.service.d.ts +7 -0
  195. package/dist/core/hook/hook.service.js +43 -0
  196. package/dist/core/hook/hook.service.js.map +1 -0
  197. package/dist/core/plugin/plugin.factory.d.ts +5 -0
  198. package/dist/core/plugin/plugin.factory.js +14 -0
  199. package/dist/core/plugin/plugin.factory.js.map +1 -0
  200. package/dist/core/plugin/plugin.module.d.ts +4 -0
  201. package/dist/core/plugin/plugin.module.js +35 -0
  202. package/dist/core/plugin/plugin.module.js.map +1 -0
  203. package/dist/db.d.ts +3 -0
  204. package/dist/db.js +22 -0
  205. package/dist/db.js.map +1 -0
  206. package/dist/file-storage/file-storage.module.d.ts +2 -0
  207. package/dist/file-storage/file-storage.module.js +21 -0
  208. package/dist/file-storage/file-storage.module.js.map +1 -0
  209. package/dist/file-storage/file-storage.service.d.ts +8 -0
  210. package/dist/file-storage/file-storage.service.js +50 -0
  211. package/dist/file-storage/file-storage.service.js.map +1 -0
  212. package/dist/file-storage/utils.d.ts +2 -0
  213. package/dist/file-storage/utils.js +8 -0
  214. package/dist/file-storage/utils.js.map +1 -0
  215. package/dist/index.d.ts +5 -0
  216. package/dist/index.js +45 -0
  217. package/dist/index.js.map +1 -0
  218. package/dist/media/dto/media-response.dto.d.ts +7 -0
  219. package/dist/media/dto/media-response.dto.js +57 -0
  220. package/dist/media/dto/media-response.dto.js.map +1 -0
  221. package/dist/media/entities/audio.entity.d.ts +4 -0
  222. package/dist/media/entities/audio.entity.js +30 -0
  223. package/dist/media/entities/audio.entity.js.map +1 -0
  224. package/dist/media/entities/media.entity.d.ts +10 -0
  225. package/dist/media/entities/media.entity.js +57 -0
  226. package/dist/media/entities/media.entity.js.map +1 -0
  227. package/dist/media/entities/post-media.entity.d.ts +5 -0
  228. package/dist/media/entities/post-media.entity.js +31 -0
  229. package/dist/media/entities/post-media.entity.js.map +1 -0
  230. package/dist/media/media.acl.d.ts +3 -0
  231. package/dist/media/media.acl.js +14 -0
  232. package/dist/media/media.acl.js.map +1 -0
  233. package/dist/media/media.controller.d.ts +9 -0
  234. package/dist/media/media.controller.js +95 -0
  235. package/dist/media/media.controller.js.map +1 -0
  236. package/dist/media/media.module.d.ts +2 -0
  237. package/dist/media/media.module.js +39 -0
  238. package/dist/media/media.module.js.map +1 -0
  239. package/dist/media/media.service.d.ts +18 -0
  240. package/dist/media/media.service.js +134 -0
  241. package/dist/media/media.service.js.map +1 -0
  242. package/dist/migrations/1756201406330-Initial.d.ts +6 -0
  243. package/dist/migrations/1756201406330-Initial.js +85 -0
  244. package/dist/migrations/1756201406330-Initial.js.map +1 -0
  245. package/dist/migrations/1757061785934-PushNotificationTokens.d.ts +6 -0
  246. package/dist/migrations/1757061785934-PushNotificationTokens.js +20 -0
  247. package/dist/migrations/1757061785934-PushNotificationTokens.js.map +1 -0
  248. package/dist/network/dto/create-network.dto.d.ts +2 -0
  249. package/dist/network/dto/create-network.dto.js +11 -0
  250. package/dist/network/dto/create-network.dto.js.map +1 -0
  251. package/dist/network/dto/update-network.dto.d.ts +5 -0
  252. package/dist/network/dto/update-network.dto.js +13 -0
  253. package/dist/network/dto/update-network.dto.js.map +1 -0
  254. package/dist/network/entities/network.entity.d.ts +6 -0
  255. package/dist/network/entities/network.entity.js +42 -0
  256. package/dist/network/entities/network.entity.js.map +1 -0
  257. package/dist/network/network.middleware.d.ts +10 -0
  258. package/dist/network/network.middleware.js +43 -0
  259. package/dist/network/network.middleware.js.map +1 -0
  260. package/dist/network/network.module.d.ts +2 -0
  261. package/dist/network/network.module.js +25 -0
  262. package/dist/network/network.module.js.map +1 -0
  263. package/dist/network/network.service.d.ts +17 -0
  264. package/dist/network/network.service.js +67 -0
  265. package/dist/network/network.service.js.map +1 -0
  266. package/dist/notification/dto/delete-push-token.dto.d.ts +3 -0
  267. package/dist/notification/dto/delete-push-token.dto.js +26 -0
  268. package/dist/notification/dto/delete-push-token.dto.js.map +1 -0
  269. package/dist/notification/dto/register-push-token.dto.d.ts +5 -0
  270. package/dist/notification/dto/register-push-token.dto.js +38 -0
  271. package/dist/notification/dto/register-push-token.dto.js.map +1 -0
  272. package/dist/notification/entities/push-token.entity.d.ts +11 -0
  273. package/dist/notification/entities/push-token.entity.js +60 -0
  274. package/dist/notification/entities/push-token.entity.js.map +1 -0
  275. package/dist/notification/enums/push-service.enum.d.ts +6 -0
  276. package/dist/notification/enums/push-service.enum.js +11 -0
  277. package/dist/notification/enums/push-service.enum.js.map +1 -0
  278. package/dist/notification/hook-listener.service.d.ts +13 -0
  279. package/dist/notification/hook-listener.service.js +58 -0
  280. package/dist/notification/hook-listener.service.js.map +1 -0
  281. package/dist/notification/notification.module.d.ts +2 -0
  282. package/dist/notification/notification.module.js +34 -0
  283. package/dist/notification/notification.module.js.map +1 -0
  284. package/dist/notification/push-notification.controller.d.ts +9 -0
  285. package/dist/notification/push-notification.controller.js +69 -0
  286. package/dist/notification/push-notification.controller.js.map +1 -0
  287. package/dist/notification/push-notification.service.d.ts +22 -0
  288. package/dist/notification/push-notification.service.js +84 -0
  289. package/dist/notification/push-notification.service.js.map +1 -0
  290. package/dist/post/dto/create-post.dto.d.ts +7 -0
  291. package/dist/post/dto/create-post.dto.js +49 -0
  292. package/dist/post/dto/create-post.dto.js.map +1 -0
  293. package/dist/post/dto/post-response.dto.d.ts +14 -0
  294. package/dist/post/dto/post-response.dto.js +85 -0
  295. package/dist/post/dto/post-response.dto.js.map +1 -0
  296. package/dist/post/dto/update-post.dto.d.ts +5 -0
  297. package/dist/post/dto/update-post.dto.js +13 -0
  298. package/dist/post/dto/update-post.dto.js.map +1 -0
  299. package/dist/post/entities/post.entity.d.ts +18 -0
  300. package/dist/post/entities/post.entity.js +86 -0
  301. package/dist/post/entities/post.entity.js.map +1 -0
  302. package/dist/post/post.acl.d.ts +3 -0
  303. package/dist/post/post.acl.js +20 -0
  304. package/dist/post/post.acl.js.map +1 -0
  305. package/dist/post/post.controller.d.ts +15 -0
  306. package/dist/post/post.controller.js +154 -0
  307. package/dist/post/post.controller.js.map +1 -0
  308. package/dist/post/post.module.d.ts +2 -0
  309. package/dist/post/post.module.js +42 -0
  310. package/dist/post/post.module.js.map +1 -0
  311. package/dist/post/post.service.d.ts +27 -0
  312. package/dist/post/post.service.js +182 -0
  313. package/dist/post/post.service.js.map +1 -0
  314. package/dist/post/reaction/dto/index.d.ts +3 -0
  315. package/dist/post/reaction/dto/index.js +22 -0
  316. package/dist/post/reaction/dto/index.js.map +1 -0
  317. package/dist/post/reaction/entities/reaction.entity.d.ts +9 -0
  318. package/dist/post/reaction/entities/reaction.entity.js +51 -0
  319. package/dist/post/reaction/entities/reaction.entity.js.map +1 -0
  320. package/dist/post/reaction/reaction.controller.d.ts +8 -0
  321. package/dist/post/reaction/reaction.controller.js +63 -0
  322. package/dist/post/reaction/reaction.controller.js.map +1 -0
  323. package/dist/post/reaction/reaction.module.d.ts +2 -0
  324. package/dist/post/reaction/reaction.module.js +25 -0
  325. package/dist/post/reaction/reaction.module.js.map +1 -0
  326. package/dist/post/reaction/reaction.service.d.ts +13 -0
  327. package/dist/post/reaction/reaction.service.js +48 -0
  328. package/dist/post/reaction/reaction.service.js.map +1 -0
  329. package/dist/tsconfig.build.tsbuildinfo +1 -0
  330. package/dist/user/constants.d.ts +1 -0
  331. package/dist/user/constants.js +5 -0
  332. package/dist/user/constants.js.map +1 -0
  333. package/dist/user/dto/create-user.dto.d.ts +2 -0
  334. package/dist/user/dto/create-user.dto.js +11 -0
  335. package/dist/user/dto/create-user.dto.js.map +1 -0
  336. package/dist/user/dto/update-user.dto.d.ts +5 -0
  337. package/dist/user/dto/update-user.dto.js +13 -0
  338. package/dist/user/dto/update-user.dto.js.map +1 -0
  339. package/dist/user/dto/user-response.dto.d.ts +5 -0
  340. package/dist/user/dto/user-response.dto.js +40 -0
  341. package/dist/user/dto/user-response.dto.js.map +1 -0
  342. package/dist/user/entities/user.entity.d.ts +11 -0
  343. package/dist/user/entities/user.entity.js +65 -0
  344. package/dist/user/entities/user.entity.js.map +1 -0
  345. package/dist/user/user.acl.d.ts +3 -0
  346. package/dist/user/user.acl.js +9 -0
  347. package/dist/user/user.acl.js.map +1 -0
  348. package/dist/user/user.controller.d.ts +9 -0
  349. package/dist/user/user.controller.js +73 -0
  350. package/dist/user/user.controller.js.map +1 -0
  351. package/dist/user/user.exceptions.d.ts +5 -0
  352. package/dist/user/user.exceptions.js +11 -0
  353. package/dist/user/user.exceptions.js.map +1 -0
  354. package/dist/user/user.module.d.ts +2 -0
  355. package/dist/user/user.module.js +38 -0
  356. package/dist/user/user.module.js.map +1 -0
  357. package/dist/user/user.service.d.ts +24 -0
  358. package/dist/user/user.service.js +99 -0
  359. package/dist/user/user.service.js.map +1 -0
  360. package/package.json +110 -0
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const acl_factory_1 = require("../core/acl/acl.factory");
7
+ const community_entity_1 = require("./entities/community.entity");
8
+ const community_status_enum_1 = __importDefault(require("./enums/community-status.enum"));
9
+ const community_member_entity_1 = require("./entities/community-member.entity");
10
+ const community_role_enum_1 = __importDefault(require("./enums/community-role.enum"));
11
+ const getMembershipForCommunity = (user, community) => {
12
+ for (let membership of user.communities) {
13
+ if (membership.community.id === community.id) {
14
+ return membership;
15
+ }
16
+ }
17
+ };
18
+ const CommunityAclRules = [
19
+ ({ can, user }) => can(acl_factory_1.Action.Read, community_entity_1.Community, (community) => {
20
+ if (!user) {
21
+ return false;
22
+ }
23
+ const membership = getMembershipForCommunity(user, community);
24
+ if (membership?.status === community_status_enum_1.default.Active) {
25
+ return true;
26
+ }
27
+ return false;
28
+ }),
29
+ ({ can, user }) => can(acl_factory_1.Action.Manage, community_entity_1.Community, (community) => {
30
+ if (!user) {
31
+ return false;
32
+ }
33
+ const membership = getMembershipForCommunity(user, community);
34
+ return (membership?.status === community_status_enum_1.default.Active &&
35
+ (membership.role === community_role_enum_1.default.Admin ||
36
+ membership.role === community_role_enum_1.default.Owner));
37
+ }),
38
+ ({ can, user }) => can(acl_factory_1.Action.Delete, community_member_entity_1.CommunityMember, (membership) => {
39
+ return membership.user.id === user?.id;
40
+ }),
41
+ ({ can, getAbility }) => can(acl_factory_1.Action.Manage, community_member_entity_1.CommunityMember, (membership) => {
42
+ return getAbility().can(acl_factory_1.Action.Manage, membership.community);
43
+ }),
44
+ ({ can, getAbility }) => can(acl_factory_1.Action.Delete, community_member_entity_1.CommunityMember, (membership) => {
45
+ return getAbility().can(acl_factory_1.Action.Manage, membership.community);
46
+ }),
47
+ ];
48
+ exports.default = CommunityAclRules;
49
+ //# sourceMappingURL=community.acl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community.acl.js","sourceRoot":"","sources":["../../src/community/community.acl.ts"],"names":[],"mappings":";;;;;AAAA,yDAA8D;AAC9D,kEAAwD;AACxD,0FAAkE;AAClE,gFAAqE;AAErE,sFAA8D;AAE9D,MAAM,yBAAyB,GAAG,CAChC,IAAU,EACV,SAAoB,EACS,EAAE;IAC/B,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,EAAE,CAAC;YAC7C,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAmB;IACxC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAChB,GAAG,CAAC,oBAAM,CAAC,IAAI,EAAE,4BAAS,EAAE,CAAC,SAAS,EAAE,EAAE;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,UAAU,EAAE,MAAM,KAAK,+BAAqB,CAAC,MAAM,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAGJ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAChB,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,4BAAS,EAAE,CAAC,SAAS,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9D,OAAO,CACL,UAAU,EAAE,MAAM,KAAK,+BAAqB,CAAC,MAAM;YACnD,CAAC,UAAU,CAAC,IAAI,KAAK,6BAAmB,CAAC,KAAK;gBAC5C,UAAU,CAAC,IAAI,KAAK,6BAAmB,CAAC,KAAK,CAAC,CACjD,CAAC;IACJ,CAAC,CAAC;IAGJ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAChB,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,yCAAe,EAAE,CAAC,UAAU,EAAE,EAAE;QACjD,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;IACzC,CAAC,CAAC;IAIJ,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CACtB,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,yCAAe,EAAE,CAAC,UAAU,EAAE,EAAE;QACjD,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC,CAAC;IAGJ,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CACtB,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,yCAAe,EAAE,CAAC,UAAU,EAAE,EAAE;QACjD,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC,CAAC;CACL,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { CommunityService } from './community.service';
2
+ import { CreateCommunityDto } from './dto/create-community.dto';
3
+ import { Request } from 'express';
4
+ import { CommunityMembershipResponseDto, CommunityResponseDto } from './dto/community-response.dto';
5
+ import { PaginatedResponseDto } from '~/common/dto/paginated-response.dto';
6
+ import { CommunityMembershipListItemResponseDto } from './dto/community-members-response.dto';
7
+ import CommunityMemberStatus from './enums/community-status.enum';
8
+ import { CommunityIdAndUserIdDto, CommunityIdDto } from './dto';
9
+ import { UserService } from '~/user/user.service';
10
+ export declare class CommunityController {
11
+ private readonly service;
12
+ private readonly userService;
13
+ constructor(service: CommunityService, userService: UserService);
14
+ create(dto: CreateCommunityDto): Promise<CommunityResponseDto>;
15
+ info(id: string): Promise<CommunityResponseDto>;
16
+ remove({ community: id }: CommunityIdDto): string;
17
+ join(dto: CommunityIdDto): Promise<CommunityMembershipResponseDto>;
18
+ leave({ community: id }: CommunityIdDto): Promise<boolean>;
19
+ removeMember({ community: communityId, user: userId }: CommunityIdAndUserIdDto): Promise<boolean>;
20
+ acceptMember({ community: communityId, user: userId }: CommunityIdAndUserIdDto): Promise<boolean>;
21
+ getFake(): CommunityMembershipListItemResponseDto;
22
+ members(communityId: string, limit?: number, offset?: number, status?: CommunityMemberStatus): Promise<PaginatedResponseDto<CommunityMembershipListItemResponseDto>>;
23
+ listCommunities(limit: number | undefined, offset: number | undefined, member: boolean | undefined, req: Request): Promise<PaginatedResponseDto<CommunityResponseDto>>;
24
+ }
@@ -0,0 +1,277 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.CommunityController = void 0;
19
+ const openapi = require("@nestjs/swagger");
20
+ const common_1 = require("@nestjs/common");
21
+ const community_service_1 = require("./community.service");
22
+ const create_community_dto_1 = require("./dto/create-community.dto");
23
+ const auth_guard_1 = require("../auth/auth.guard");
24
+ const swagger_1 = require("@nestjs/swagger");
25
+ const community_response_dto_1 = require("./dto/community-response.dto");
26
+ const class_transformer_1 = require("class-transformer");
27
+ const api_paginated_response_1 = require("../common/decorators/api-paginated-response");
28
+ const community_members_response_dto_1 = require("./dto/community-members-response.dto");
29
+ const community_status_enum_1 = __importDefault(require("./enums/community-status.enum"));
30
+ const context_1 = require("../core/context/context");
31
+ const dto_1 = require("./dto");
32
+ const user_service_1 = require("../user/user.service");
33
+ let CommunityController = class CommunityController {
34
+ service;
35
+ userService;
36
+ constructor(service, userService) {
37
+ this.service = service;
38
+ this.userService = userService;
39
+ }
40
+ async create(dto) {
41
+ return (0, class_transformer_1.plainToInstance)(community_response_dto_1.CommunityResponseDto, await this.service.create(dto));
42
+ }
43
+ async info(id) {
44
+ return (0, class_transformer_1.plainToInstance)(community_response_dto_1.CommunityResponseDto, this.service.findOne(+id));
45
+ }
46
+ remove({ community: id }) {
47
+ return this.service.remove(+id);
48
+ }
49
+ async join(dto) {
50
+ const community = await this.service.findOne(+dto.community);
51
+ if (!community) {
52
+ throw new common_1.NotFoundException();
53
+ }
54
+ const user = context_1.Context.getUser();
55
+ const membership = await this.service.join({ community, user });
56
+ return (0, class_transformer_1.plainToInstance)(community_response_dto_1.CommunityMembershipResponseDto, membership);
57
+ }
58
+ async leave({ community: id }) {
59
+ const community = await this.service.findOne(+id);
60
+ if (!community) {
61
+ throw new common_1.NotFoundException();
62
+ }
63
+ const user = context_1.Context.getUser();
64
+ return this.service.leave(community, user);
65
+ }
66
+ async removeMember({ community: communityId, user: userId }) {
67
+ const community = await this.service.findOne(+communityId);
68
+ if (!community) {
69
+ throw new common_1.NotFoundException('Community was not found');
70
+ }
71
+ const user = await this.userService.findOne(+userId);
72
+ if (!user) {
73
+ throw new common_1.NotFoundException('User was not found');
74
+ }
75
+ return await this.service.removeMember({
76
+ community,
77
+ user,
78
+ });
79
+ }
80
+ async acceptMember({ community: communityId, user: userId }) {
81
+ const community = await this.service.findOne(+communityId);
82
+ if (!community) {
83
+ throw new common_1.NotFoundException('Community was not found');
84
+ }
85
+ const user = await this.userService.findOne(+userId);
86
+ if (!user) {
87
+ throw new common_1.NotFoundException('User was not found');
88
+ }
89
+ return await this.service.acceptMember({
90
+ community,
91
+ user,
92
+ });
93
+ }
94
+ getFake() {
95
+ return {};
96
+ }
97
+ async members(communityId, limit = 100, offset = 0, status) {
98
+ const community = await this.service.findOne(+communityId);
99
+ if (!community) {
100
+ throw new common_1.NotFoundException();
101
+ }
102
+ const [result, count] = await this.service.findMembers({
103
+ community,
104
+ limit,
105
+ offset,
106
+ status,
107
+ });
108
+ return {
109
+ result: result.map((member) => (0, class_transformer_1.plainToInstance)(community_members_response_dto_1.CommunityMembershipListItemResponseDto, member)),
110
+ count,
111
+ next: '',
112
+ previous: '',
113
+ };
114
+ }
115
+ async listCommunities(limit = 100, offset = 0, member = false, req) {
116
+ let result, count = 0;
117
+ if (member) {
118
+ [result, count] = await this.service.findAllByMember(req.user, limit, offset);
119
+ }
120
+ else {
121
+ [result, count] = await this.service.findAll(limit, offset);
122
+ }
123
+ return {
124
+ result: result.map((s) => (0, class_transformer_1.plainToInstance)(community_response_dto_1.CommunityResponseDto, s)),
125
+ count,
126
+ next: '',
127
+ previous: '',
128
+ };
129
+ }
130
+ };
131
+ exports.CommunityController = CommunityController;
132
+ __decorate([
133
+ (0, swagger_1.ApiOperation)({
134
+ summary: 'Create a new community',
135
+ description: `This Community API method creates a new community.
136
+ If successful, the command returns a community entity.`,
137
+ }),
138
+ (0, common_1.Post)('community.create'),
139
+ openapi.ApiResponse({ status: 201, type: require("./dto/community-response.dto").CommunityResponseDto }),
140
+ __param(0, (0, common_1.Body)()),
141
+ __metadata("design:type", Function),
142
+ __metadata("design:paramtypes", [create_community_dto_1.CreateCommunityDto]),
143
+ __metadata("design:returntype", Promise)
144
+ ], CommunityController.prototype, "create", null);
145
+ __decorate([
146
+ (0, swagger_1.ApiOperation)({
147
+ summary: 'Retrieve a community',
148
+ description: `This Community API method returns a community.`,
149
+ }),
150
+ (0, common_1.Get)('community.info'),
151
+ openapi.ApiResponse({ status: 200, type: require("./dto/community-response.dto").CommunityResponseDto }),
152
+ __param(0, (0, common_1.Query)('community')),
153
+ __metadata("design:type", Function),
154
+ __metadata("design:paramtypes", [String]),
155
+ __metadata("design:returntype", Promise)
156
+ ], CommunityController.prototype, "info", null);
157
+ __decorate([
158
+ (0, swagger_1.ApiOperation)({
159
+ summary: 'Delete a community',
160
+ description: `This Community API method deletes a community and all of its entities.`,
161
+ }),
162
+ (0, common_1.Post)('community.delete'),
163
+ openapi.ApiResponse({ status: 201, type: String }),
164
+ __param(0, (0, common_1.Body)()),
165
+ __metadata("design:type", Function),
166
+ __metadata("design:paramtypes", [dto_1.CommunityIdDto]),
167
+ __metadata("design:returntype", void 0)
168
+ ], CommunityController.prototype, "remove", null);
169
+ __decorate([
170
+ (0, swagger_1.ApiOperation)({
171
+ summary: 'Joins an existing community',
172
+ description: `This Community API method joins a user to an existing community.
173
+ If successful, the command returns a membership entity.`,
174
+ }),
175
+ (0, common_1.Post)('community.members.join'),
176
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
177
+ openapi.ApiResponse({ status: 201, type: require("./dto/community-response.dto").CommunityMembershipResponseDto }),
178
+ __param(0, (0, common_1.Body)()),
179
+ __metadata("design:type", Function),
180
+ __metadata("design:paramtypes", [dto_1.CommunityIdDto]),
181
+ __metadata("design:returntype", Promise)
182
+ ], CommunityController.prototype, "join", null);
183
+ __decorate([
184
+ (0, swagger_1.ApiOperation)({
185
+ summary: 'Leaves a community',
186
+ description: `This Community API method leaves a community.`,
187
+ }),
188
+ (0, common_1.Post)('community.members.leave'),
189
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
190
+ openapi.ApiResponse({ status: 201, type: Boolean }),
191
+ __param(0, (0, common_1.Body)()),
192
+ __metadata("design:type", Function),
193
+ __metadata("design:paramtypes", [dto_1.CommunityIdDto]),
194
+ __metadata("design:returntype", Promise)
195
+ ], CommunityController.prototype, "leave", null);
196
+ __decorate([
197
+ (0, swagger_1.ApiOperation)({
198
+ summary: 'Removes a member from a community',
199
+ description: `This Community API method removes a member from a community.`,
200
+ }),
201
+ (0, common_1.Post)('community.members.remove'),
202
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
203
+ openapi.ApiResponse({ status: 201, type: Boolean }),
204
+ __param(0, (0, common_1.Body)()),
205
+ __metadata("design:type", Function),
206
+ __metadata("design:paramtypes", [dto_1.CommunityIdAndUserIdDto]),
207
+ __metadata("design:returntype", Promise)
208
+ ], CommunityController.prototype, "removeMember", null);
209
+ __decorate([
210
+ (0, swagger_1.ApiOperation)({
211
+ summary: 'Accept a member from a community',
212
+ description: `This Community API method accepts a users join request to a community.`,
213
+ }),
214
+ (0, common_1.Post)('community.members.accept'),
215
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
216
+ openapi.ApiResponse({ status: 201, type: Boolean }),
217
+ __param(0, (0, common_1.Body)()),
218
+ __metadata("design:type", Function),
219
+ __metadata("design:paramtypes", [dto_1.CommunityIdAndUserIdDto]),
220
+ __metadata("design:returntype", Promise)
221
+ ], CommunityController.prototype, "acceptMember", null);
222
+ __decorate([
223
+ (0, common_1.Get)('oogogogo'),
224
+ openapi.ApiResponse({ status: 200, type: require("./dto/community-members-response.dto").CommunityMembershipListItemResponseDto }),
225
+ __metadata("design:type", Function),
226
+ __metadata("design:paramtypes", []),
227
+ __metadata("design:returntype", community_members_response_dto_1.CommunityMembershipListItemResponseDto)
228
+ ], CommunityController.prototype, "getFake", null);
229
+ __decorate([
230
+ (0, swagger_1.ApiOperation)({
231
+ summary: 'Lists the community members',
232
+ description: `This Community API method lists the members of a community.
233
+ It can be filtered by their membership statuses.`,
234
+ }),
235
+ (0, common_1.Get)('community.members.list'),
236
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
237
+ (0, api_paginated_response_1.ApiPaginatedResponse)(community_members_response_dto_1.CommunityMembershipListItemResponseDto),
238
+ (0, swagger_1.ApiQuery)({ name: 'limit', required: false }),
239
+ (0, swagger_1.ApiQuery)({ name: 'offset', required: false }),
240
+ (0, swagger_1.ApiQuery)({ name: 'status', enum: community_status_enum_1.default, required: false }),
241
+ openapi.ApiResponse({ status: 200 }),
242
+ __param(0, (0, common_1.Query)('community')),
243
+ __param(1, (0, common_1.Query)('limit')),
244
+ __param(2, (0, common_1.Query)('offset')),
245
+ __param(3, (0, common_1.Query)('status')),
246
+ __metadata("design:type", Function),
247
+ __metadata("design:paramtypes", [String, Number, Number, String]),
248
+ __metadata("design:returntype", Promise)
249
+ ], CommunityController.prototype, "members", null);
250
+ __decorate([
251
+ (0, swagger_1.ApiOperation)({
252
+ summary: 'Lists communities',
253
+ description: `This Community API method lists communities. It can be filter to show only communities
254
+ a user is a member of`,
255
+ }),
256
+ (0, common_1.Get)('community.list'),
257
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
258
+ (0, swagger_1.ApiQuery)({ name: 'limit', required: false }),
259
+ (0, swagger_1.ApiQuery)({ name: 'offset', required: false }),
260
+ (0, swagger_1.ApiQuery)({ name: 'member', required: false }),
261
+ (0, api_paginated_response_1.ApiPaginatedResponse)(community_response_dto_1.CommunityResponseDto),
262
+ openapi.ApiResponse({ status: 200 }),
263
+ __param(0, (0, common_1.Query)('limit')),
264
+ __param(0, (0, common_1.Optional)()),
265
+ __param(1, (0, common_1.Query)('offset')),
266
+ __param(2, (0, common_1.Query)('member')),
267
+ __param(3, (0, common_1.Req)()),
268
+ __metadata("design:type", Function),
269
+ __metadata("design:paramtypes", [Number, Number, Boolean, Object]),
270
+ __metadata("design:returntype", Promise)
271
+ ], CommunityController.prototype, "listCommunities", null);
272
+ exports.CommunityController = CommunityController = __decorate([
273
+ (0, common_1.Controller)(),
274
+ __metadata("design:paramtypes", [community_service_1.CommunityService,
275
+ user_service_1.UserService])
276
+ ], CommunityController);
277
+ //# sourceMappingURL=community.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community.controller.js","sourceRoot":"","sources":["../../src/community/community.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,2CAawB;AACxB,2DAAuD;AACvD,qEAAgE;AAEhE,mDAA8C;AAG9C,6CAAsE;AAEtE,yEAGsC;AAEtC,yDAAoD;AACpD,wFAAkF;AAClF,yFAA8F;AAC9F,0FAAkE;AAClE,qDAAiD;AACjD,+BAAgE;AAChE,uDAAkD;AAG3C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAEX;IACA;IAFnB,YACmB,OAAyB,EACzB,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAkB;QACzB,gBAAW,GAAX,WAAW,CAAa;IACxC,CAAC;IAQE,AAAN,KAAK,CAAC,MAAM,CAAS,GAAuB;QAC1C,OAAO,IAAA,mCAAe,EACpB,6CAAoB,EACpB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAC/B,CAAC;IACJ,CAAC;IAOK,AAAN,KAAK,CAAC,IAAI,CAAqB,EAAU;QACvC,OAAO,IAAA,mCAAe,EAAC,6CAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAeD,MAAM,CAAS,EAAE,SAAS,EAAE,EAAE,EAAkB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IASK,AAAN,KAAK,CAAC,IAAI,CAAS,GAAmB;QACpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,0BAAiB,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,GAAG,iBAAO,CAAC,OAAO,EAAU,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,OAAO,IAAA,mCAAe,EAAC,uDAA8B,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAQK,AAAN,KAAK,CAAC,KAAK,CAAS,EAAE,SAAS,EAAE,EAAE,EAAkB;QACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,0BAAiB,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,GAAG,iBAAO,CAAC,OAAO,EAAU,CAAC;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAQK,AAAN,KAAK,CAAC,YAAY,CACR,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAA2B;QAEzE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;QAE3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,0BAAiB,CAAC,yBAAyB,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,oBAAoB,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACrC,SAAS;YACT,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAQK,AAAN,KAAK,CAAC,YAAY,CACR,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAA2B;QAEzE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;QAE3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,0BAAiB,CAAC,yBAAyB,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,oBAAoB,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACrC,SAAS;YACT,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAID,OAAO;QACL,OAAO,EAA4C,CAAC;IACtD,CAAC;IAgBK,AAAN,KAAK,CAAC,OAAO,CACS,WAAmB,EACvB,QAAgB,GAAG,EAClB,SAAiB,CAAC,EAClB,MAA8B;QAE/C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;QAE3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,0BAAiB,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACrD,SAAS;YACT,KAAK;YACL,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,IAAA,mCAAe,EAAC,uEAAsC,EAAE,MAAM,CAAC,CAChE;YACD,KAAK;YACL,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAgBK,AAAN,KAAK,CAAC,eAAe,CACS,QAAgB,GAAG,EAC9B,SAAiB,CAAC,EAClB,SAAkB,KAAK,EACjC,GAAY;QAEnB,IAAI,MAAmB,EACrB,KAAK,GAAG,CAAC,CAAC;QAEZ,IAAI,MAAM,EAAE,CAAC;YACX,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CACjD,GAAW,CAAC,IAAY,EACzB,KAAK,EACL,MAAM,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,6CAAoB,EAAE,CAAC,CAAC,CAAC;YACnE,KAAK;YACL,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;CACF,CAAA;AAjOY,kDAAmB;AAYxB;IANL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,wBAAwB;QACjC,WAAW,EAAE;6DAC4C;KAC1D,CAAC;IACD,IAAA,aAAI,EAAC,kBAAkB,CAAC;;IACX,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,yCAAkB;;iDAK3C;AAOK;IALL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,sBAAsB;QAC/B,WAAW,EAAE,gDAAgD;KAC9D,CAAC;IACD,IAAA,YAAG,EAAC,gBAAgB,CAAC;;IACV,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;;;;+CAE7B;AAeD;IALC,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,wEAAwE;KACtF,CAAC;IACD,IAAA,aAAI,EAAC,kBAAkB,CAAC;;IACjB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAoB,oBAAc;;iDAE/C;AASK;IAPL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,6BAA6B;QACtC,WAAW,EAAE;8DAC6C;KAC3D,CAAC;IACD,IAAA,aAAI,EAAC,wBAAwB,CAAC;IAC9B,IAAA,kBAAS,EAAC,sBAAS,CAAC;;IACT,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,oBAAc;;+CAWrC;AAQK;IANL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,+CAA+C;KAC7D,CAAC;IACD,IAAA,aAAI,EAAC,yBAAyB,CAAC;IAC/B,IAAA,kBAAS,EAAC,sBAAS,CAAC;;IACR,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAoB,oBAAc;;gDASpD;AAQK;IANL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,mCAAmC;QAC5C,WAAW,EAAE,8DAA8D;KAC5E,CAAC;IACD,IAAA,aAAI,EAAC,0BAA0B,CAAC;IAChC,IAAA,kBAAS,EAAC,sBAAS,CAAC;;IAElB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAA2C,6BAAuB;;uDAkB1E;AAQK;IANL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,kCAAkC;QAC3C,WAAW,EAAE,wEAAwE;KACtF,CAAC;IACD,IAAA,aAAI,EAAC,0BAA0B,CAAC;IAChC,IAAA,kBAAS,EAAC,sBAAS,CAAC;;IAElB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAA2C,6BAAuB;;uDAkB1E;AAID;IADC,IAAA,YAAG,EAAC,UAAU,CAAC;;;;oCACL,uEAAsC;kDAEhD;AAgBK;IAXL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,6BAA6B;QACtC,WAAW,EAAE;qDACoC;KAClD,CAAC;IACD,IAAA,YAAG,EAAC,wBAAwB,CAAC;IAC7B,IAAA,kBAAS,EAAC,sBAAS,CAAC;IACpB,IAAA,6CAAoB,EAAC,uEAAsC,CAAC;IAC5D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7C,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;IAExE,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;IACd,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;kDAuBjB;AAgBK;IAXL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE;0BACS;KACvB,CAAC;IACD,IAAA,YAAG,EAAC,gBAAgB,CAAC;IACrB,IAAA,kBAAS,EAAC,sBAAS,CAAC;IACpB,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5C,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7C,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7C,IAAA,6CAAoB,EAAC,6CAAoB,CAAC;;IAExC,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;IAAE,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAC1B,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,YAAG,GAAE,CAAA;;;;0DAqBP;8BAhOU,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAGiB,oCAAgB;QACZ,0BAAW;GAHhC,mBAAmB,CAiO/B"}
@@ -0,0 +1,2 @@
1
+ export declare class CommunityModule {
2
+ }
@@ -0,0 +1,40 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CommunityModule = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const community_service_1 = require("./community.service");
15
+ const community_controller_1 = require("./community.controller");
16
+ const typeorm_1 = require("@nestjs/typeorm");
17
+ const community_entity_1 = require("./entities/community.entity");
18
+ const user_module_1 = require("../user/user.module");
19
+ const user_entity_1 = require("../user/entities/user.entity");
20
+ const post_module_1 = require("../post/post.module");
21
+ const community_member_entity_1 = require("./entities/community-member.entity");
22
+ const acl_module_1 = require("../core/acl/acl.module");
23
+ const community_acl_1 = __importDefault(require("./community.acl"));
24
+ let CommunityModule = class CommunityModule {
25
+ };
26
+ exports.CommunityModule = CommunityModule;
27
+ exports.CommunityModule = CommunityModule = __decorate([
28
+ (0, common_1.Module)({
29
+ imports: [
30
+ typeorm_1.TypeOrmModule.forFeature([community_entity_1.Community, community_member_entity_1.CommunityMember, user_entity_1.User]),
31
+ user_module_1.UserModule,
32
+ post_module_1.PostModule,
33
+ acl_module_1.AclModule.forChild(community_acl_1.default),
34
+ ],
35
+ controllers: [community_controller_1.CommunityController],
36
+ providers: [community_service_1.CommunityService],
37
+ exports: [community_service_1.CommunityService],
38
+ })
39
+ ], CommunityModule);
40
+ //# sourceMappingURL=community.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community.module.js","sourceRoot":"","sources":["../../src/community/community.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwC;AACxC,2DAAuD;AACvD,iEAA6D;AAC7D,6CAAgD;AAChD,kEAAwD;AACxD,qDAAgD;AAChD,8DAAmD;AACnD,qDAAgD;AAChD,gFAAqE;AACrE,uDAAkD;AAClD,oEAAgD;AAazC,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAX3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,4BAAS,EAAE,yCAAe,EAAE,kBAAI,CAAC,CAAC;YAC5D,wBAAU;YACV,wBAAU;YACV,sBAAS,CAAC,QAAQ,CAAC,uBAAiB,CAAC;SACtC;QACD,WAAW,EAAE,CAAC,0CAAmB,CAAC;QAClC,SAAS,EAAE,CAAC,oCAAgB,CAAC;QAC7B,OAAO,EAAE,CAAC,oCAAgB,CAAC;KAC5B,CAAC;GACW,eAAe,CAAG"}
@@ -0,0 +1,44 @@
1
+ import { CreateCommunityDto } from './dto/create-community.dto';
2
+ import { UpdateCommunityDto } from './dto/update-community.dto';
3
+ import { DataSource, QueryRunner, Repository } from 'typeorm';
4
+ import { Community } from './entities/community.entity';
5
+ import { User } from '~/user/entities/user.entity';
6
+ import { CommunityMember } from './entities/community-member.entity';
7
+ import CommunityMemberRole from './enums/community-role.enum';
8
+ import CommunityMemberStatus from './enums/community-status.enum';
9
+ import { AclFactory } from '~/core/acl/acl.factory';
10
+ export declare class CommunityService {
11
+ private readonly repository;
12
+ private readonly userRepository;
13
+ private readonly membershipRepository;
14
+ private readonly dataSource;
15
+ private aclFactory;
16
+ constructor(repository: Repository<Community>, userRepository: Repository<User>, membershipRepository: Repository<CommunityMember>, dataSource: DataSource, aclFactory: AclFactory);
17
+ create(createCommunityDto: CreateCommunityDto): Promise<Community>;
18
+ findAll(limit?: number, offset?: number): Promise<[Community[], number]>;
19
+ findAllByMember(user: User, limit?: number, offset?: number): Promise<[Community[], number]>;
20
+ findOne(id: number): Promise<Community | null>;
21
+ update(id: number, updateCommunityDto: UpdateCommunityDto): string;
22
+ remove(id: number): string;
23
+ join({ community, user, role, status, }: {
24
+ community: Community;
25
+ user: User;
26
+ role?: CommunityMemberRole;
27
+ status?: CommunityMemberStatus;
28
+ }, queryRunner?: QueryRunner): Promise<CommunityMember>;
29
+ leave(community: Community, user: User): Promise<boolean>;
30
+ removeMember({ community, user, }: {
31
+ community: Community;
32
+ user: User;
33
+ }): Promise<boolean>;
34
+ acceptMember({ community, user, }: {
35
+ community: Community;
36
+ user: User;
37
+ }): Promise<boolean>;
38
+ findMembers({ community, limit, offset, status, }: {
39
+ community: Community;
40
+ limit: number;
41
+ offset: number;
42
+ status?: CommunityMemberStatus;
43
+ }): Promise<[CommunityMember[], number]>;
44
+ }