strapi-plugin-comments 2.0.11 → 2.1.1

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 (443) hide show
  1. package/README.md +165 -119
  2. package/admin/src/components/ActionButton/styles.ts +11 -0
  3. package/admin/src/components/Avatar/index.tsx +31 -0
  4. package/admin/src/components/ConfirmationDialog/index.tsx +88 -0
  5. package/admin/src/components/DiscussionStatus/index.tsx +36 -0
  6. package/admin/src/components/DiscussionThread/index.tsx +97 -0
  7. package/admin/src/components/DiscussionThreadItem/index.tsx +71 -0
  8. package/admin/src/components/DiscussionThreadItem/{styles.js → styles.ts} +8 -6
  9. package/admin/src/components/DiscussionThreadItemActions/index.tsx +365 -0
  10. package/admin/src/components/DiscussionThreadItemActions/styles.ts +9 -0
  11. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.tsx +99 -0
  12. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.ts +8 -0
  13. package/admin/src/components/DiscussionThreadItemFooter/index.tsx +62 -0
  14. package/admin/src/components/DiscussionThreadItemFooter/styles.ts +15 -0
  15. package/admin/src/components/DiscussionThreadItemReviewAction/index.tsx +180 -0
  16. package/admin/src/components/FormSwitch/index.tsx +35 -0
  17. package/admin/src/components/FormSwitch/styles.ts +10 -0
  18. package/admin/src/components/IconButton/styles.ts +19 -0
  19. package/admin/src/components/Initializer/{index.js → index.tsx} +8 -6
  20. package/admin/src/components/LoadingIndicatorOverlay/index.tsx +19 -0
  21. package/admin/src/components/LoadingIndicatorOverlay/styles.ts +21 -0
  22. package/admin/src/components/Nav/index.tsx +61 -0
  23. package/admin/src/components/PluginIcon/{index.js → index.tsx} +4 -2
  24. package/admin/src/components/ReportsReviewModal/index.tsx +71 -0
  25. package/admin/src/components/ReportsReviewTable/index.tsx +233 -0
  26. package/admin/src/components/StatusBadge/index.tsx +21 -0
  27. package/admin/src/components/StatusBadge/styles.ts +19 -0
  28. package/admin/src/components/TableFilters/{index.js → index.tsx} +14 -9
  29. package/admin/src/components/TablePagination/{index.js → index.tsx} +8 -6
  30. package/admin/src/components/icons/comments.tsx +15 -0
  31. package/admin/src/components/icons/index.ts +6 -0
  32. package/admin/src/components/icons/{lock.js → lock.tsx} +17 -12
  33. package/admin/src/components/icons/review.tsx +25 -0
  34. package/admin/src/components/icons/unlock.tsx +25 -0
  35. package/admin/src/hooks/useConfig.ts +58 -0
  36. package/admin/src/{index.js → index.ts} +26 -22
  37. package/admin/src/pages/App/index.tsx +67 -0
  38. package/admin/src/pages/App/reducer/actions.ts +10 -0
  39. package/admin/src/pages/App/reducer/constants.ts +4 -0
  40. package/admin/src/pages/App/reducer/{index.js → index.ts} +8 -6
  41. package/admin/src/pages/App/reducer/init.ts +9 -0
  42. package/admin/src/pages/App/reducer/selectors.ts +32 -0
  43. package/admin/src/pages/App/utils/{api.js → api.ts} +3 -1
  44. package/admin/src/pages/ComingSoonPage/index.tsx +31 -0
  45. package/admin/src/pages/Details/components/DetailsEntity/index.tsx +106 -0
  46. package/admin/src/pages/Details/components/DetailsFilters/index.tsx +43 -0
  47. package/admin/src/pages/Details/components/DetailsFilters/styles.ts +9 -0
  48. package/admin/src/pages/Details/index.tsx +169 -0
  49. package/admin/src/pages/Discover/components/DiscoverTableRow/index.tsx +252 -0
  50. package/admin/src/pages/Discover/components/DiscoverTableRow/styles.ts +9 -0
  51. package/admin/src/pages/Discover/index.tsx +230 -0
  52. package/admin/src/pages/Discover/utils/api.ts +22 -0
  53. package/admin/src/pages/Discover/utils/filtersSchema.ts +9 -0
  54. package/admin/src/pages/Settings/components/RestartAlert/styles.ts +10 -0
  55. package/admin/src/pages/Settings/index.tsx +602 -0
  56. package/admin/src/pages/Settings/utils/{api.js → api.ts} +16 -5
  57. package/admin/src/pages/utils/api.ts +70 -0
  58. package/admin/src/permissions.ts +30 -0
  59. package/admin/src/pluginId.ts +3 -0
  60. package/admin/src/reducers.ts +8 -0
  61. package/admin/src/translations/en.json +131 -131
  62. package/admin/src/translations/pt-BR.json +130 -130
  63. package/admin/src/utils/{axiosInstance.js → axiosInstance.ts} +12 -9
  64. package/admin/src/utils/constants.ts +25 -0
  65. package/admin/src/utils/getApiUrl.ts +5 -0
  66. package/admin/src/utils/getMessage.ts +29 -0
  67. package/admin/src/utils/getRelatedGroups.ts +6 -0
  68. package/admin/src/utils/getUrl.ts +5 -0
  69. package/admin/src/utils/handleAPIError.ts +21 -0
  70. package/admin/src/utils/index.ts +11 -0
  71. package/admin/src/utils/parseRegExp.ts +9 -0
  72. package/admin/src/utils/renderEntryTitle.ts +16 -0
  73. package/admin/src/utils/renderInitials.ts +10 -0
  74. package/admin/src/utils/resolveCommentStatus.ts +37 -0
  75. package/admin/src/utils/resolveCommentStatusColor.ts +22 -0
  76. package/build/README.md +41 -5
  77. package/build/admin/src/components/ActionButton/styles.d.ts +1 -1
  78. package/build/admin/src/components/ActionButton/styles.js +5 -7
  79. package/build/admin/src/components/Avatar/index.d.ts +12 -0
  80. package/build/admin/src/components/Avatar/index.js +26 -0
  81. package/build/admin/src/components/ConfirmationDialog/index.js +23 -90
  82. package/build/admin/src/components/DiscussionStatus/index.js +13 -27
  83. package/build/admin/src/components/DiscussionThread/index.js +29 -83
  84. package/build/admin/src/components/DiscussionThreadItem/index.js +20 -59
  85. package/build/admin/src/components/DiscussionThreadItem/styles.d.ts +1 -1
  86. package/build/admin/src/components/DiscussionThreadItem/styles.js +8 -17
  87. package/build/admin/src/components/DiscussionThreadItemActions/index.js +163 -383
  88. package/build/admin/src/components/DiscussionThreadItemActions/styles.d.ts +1 -1
  89. package/build/admin/src/components/DiscussionThreadItemActions/styles.js +5 -9
  90. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.js +52 -85
  91. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.d.ts +1 -1
  92. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.js +5 -8
  93. package/build/admin/src/components/DiscussionThreadItemFooter/index.js +27 -61
  94. package/build/admin/src/components/DiscussionThreadItemFooter/styles.d.ts +1 -1
  95. package/build/admin/src/components/DiscussionThreadItemFooter/styles.js +7 -14
  96. package/build/admin/src/components/DiscussionThreadItemReviewAction/index.js +91 -207
  97. package/build/admin/src/components/FormSwitch/index.d.ts +5 -9
  98. package/build/admin/src/components/FormSwitch/index.js +8 -32
  99. package/build/admin/src/components/FormSwitch/styles.d.ts +1 -1
  100. package/build/admin/src/components/FormSwitch/styles.js +5 -7
  101. package/build/admin/src/components/IconButton/styles.d.ts +1 -1
  102. package/build/admin/src/components/IconButton/styles.js +7 -13
  103. package/build/admin/src/components/Initializer/index.d.ts +4 -2
  104. package/build/admin/src/components/Initializer/index.js +7 -7
  105. package/build/admin/src/components/LoadingIndicatorOverlay/index.d.ts +1 -1
  106. package/build/admin/src/components/LoadingIndicatorOverlay/index.js +6 -12
  107. package/build/admin/src/components/LoadingIndicatorOverlay/styles.d.ts +1 -1
  108. package/build/admin/src/components/LoadingIndicatorOverlay/styles.js +7 -14
  109. package/build/admin/src/components/Nav/index.js +16 -62
  110. package/build/admin/src/components/PluginIcon/index.d.ts +1 -1
  111. package/build/admin/src/components/PluginIcon/index.js +5 -8
  112. package/build/admin/src/components/ReportsReviewModal/index.js +23 -62
  113. package/build/admin/src/components/ReportsReviewTable/index.js +112 -293
  114. package/build/admin/src/components/StatusBadge/index.d.ts +5 -9
  115. package/build/admin/src/components/StatusBadge/index.js +6 -16
  116. package/build/admin/src/components/StatusBadge/styles.d.ts +1 -1
  117. package/build/admin/src/components/StatusBadge/styles.js +5 -7
  118. package/build/admin/src/components/TableFilters/index.js +38 -91
  119. package/build/admin/src/components/TablePagination/index.d.ts +13 -11
  120. package/build/admin/src/components/TablePagination/index.js +19 -31
  121. package/build/admin/src/components/icons/comments.d.ts +4 -7
  122. package/build/admin/src/components/icons/comments.js +7 -18
  123. package/build/admin/src/components/icons/index.d.ts +1 -1
  124. package/build/admin/src/components/icons/index.js +5 -11
  125. package/build/admin/src/components/icons/lock.d.ts +5 -9
  126. package/build/admin/src/components/icons/lock.js +7 -24
  127. package/build/admin/src/components/icons/review.d.ts +5 -9
  128. package/build/admin/src/components/icons/review.js +7 -26
  129. package/build/admin/src/components/icons/unlock.d.ts +5 -9
  130. package/build/admin/src/components/icons/unlock.js +7 -24
  131. package/build/admin/src/hooks/useConfig.js +34 -42
  132. package/build/admin/src/index.js +84 -121
  133. package/build/admin/src/pages/App/index.js +23 -66
  134. package/build/admin/src/pages/App/reducer/actions.d.ts +4 -4
  135. package/build/admin/src/pages/App/reducer/actions.js +3 -3
  136. package/build/admin/src/pages/App/reducer/constants.d.ts +1 -1
  137. package/build/admin/src/pages/App/reducer/constants.js +1 -1
  138. package/build/admin/src/pages/App/reducer/index.d.ts +5 -10
  139. package/build/admin/src/pages/App/reducer/index.js +16 -19
  140. package/build/admin/src/pages/App/reducer/init.d.ts +1 -1
  141. package/build/admin/src/pages/App/reducer/init.js +4 -4
  142. package/build/admin/src/pages/App/reducer/selectors.d.ts +1 -1
  143. package/build/admin/src/pages/App/reducer/selectors.js +6 -8
  144. package/build/admin/src/pages/App/utils/api.js +8 -9
  145. package/build/admin/src/pages/ComingSoonPage/index.js +27 -62
  146. package/build/admin/src/pages/Details/components/DetailsEntity/index.js +39 -115
  147. package/build/admin/src/pages/Details/components/DetailsFilters/index.js +13 -33
  148. package/build/admin/src/pages/Details/components/DetailsFilters/styles.d.ts +1 -1
  149. package/build/admin/src/pages/Details/components/DetailsFilters/styles.js +5 -7
  150. package/build/admin/src/pages/Details/index.js +64 -183
  151. package/build/admin/src/pages/Discover/components/DiscoverTableRow/index.js +139 -314
  152. package/build/admin/src/pages/Discover/components/DiscoverTableRow/styles.d.ts +1 -1
  153. package/build/admin/src/pages/Discover/components/DiscoverTableRow/styles.js +5 -7
  154. package/build/admin/src/pages/Discover/index.js +98 -298
  155. package/build/admin/src/pages/Discover/utils/api.js +8 -15
  156. package/build/admin/src/pages/Discover/utils/filtersSchema.d.ts +8 -8
  157. package/build/admin/src/pages/Discover/utils/filtersSchema.js +6 -6
  158. package/build/admin/src/pages/Settings/components/RestartAlert/styles.d.ts +1 -1
  159. package/build/admin/src/pages/Settings/components/RestartAlert/styles.js +5 -7
  160. package/build/admin/src/pages/Settings/index.js +192 -678
  161. package/build/admin/src/pages/Settings/utils/api.js +44 -59
  162. package/build/admin/src/pages/utils/api.js +26 -51
  163. package/build/admin/src/permissions.d.ts +25 -25
  164. package/build/admin/src/permissions.js +28 -60
  165. package/build/admin/src/pluginId.d.ts +1 -1
  166. package/build/admin/src/pluginId.js +20 -41
  167. package/build/admin/src/reducers.d.ts +4 -9
  168. package/build/admin/src/reducers.js +5 -7
  169. package/build/admin/src/translations/fr.json +132 -1
  170. package/build/admin/src/utils/axiosInstance.js +15 -23
  171. package/build/admin/src/utils/constants.d.ts +17 -17
  172. package/build/admin/src/utils/constants.js +16 -20
  173. package/build/admin/src/utils/getApiUrl.d.ts +1 -1
  174. package/build/admin/src/utils/getApiUrl.js +1 -1
  175. package/build/admin/src/utils/getMessage.js +13 -17
  176. package/build/admin/src/utils/getRelatedGroups.js +2 -3
  177. package/build/admin/src/utils/getUrl.d.ts +1 -1
  178. package/build/admin/src/utils/getUrl.js +1 -1
  179. package/build/admin/src/utils/handleAPIError.js +12 -15
  180. package/build/admin/src/utils/index.js +16 -84
  181. package/build/admin/src/utils/parseRegExp.d.ts +3 -3
  182. package/build/admin/src/utils/parseRegExp.js +6 -6
  183. package/build/admin/src/utils/renderEntryTitle.js +7 -10
  184. package/build/admin/src/utils/renderInitials.d.ts +1 -1
  185. package/build/admin/src/utils/renderInitials.js +2 -3
  186. package/build/admin/src/utils/resolveCommentStatus.js +19 -25
  187. package/build/admin/src/utils/resolveCommentStatusColor.js +15 -15
  188. package/build/content-types/comment.d.ts +87 -87
  189. package/build/content-types/comment.js +87 -87
  190. package/build/content-types/index.d.ts +136 -136
  191. package/build/content-types/index.js +10 -12
  192. package/build/content-types/report.d.ts +41 -41
  193. package/build/content-types/report.js +41 -41
  194. package/build/package.json +5 -5
  195. package/build/permissions.d.ts +14 -14
  196. package/build/permissions.js +14 -14
  197. package/build/server/bootstrap.js +52 -58
  198. package/build/server/config/index.js +13 -13
  199. package/build/server/controllers/admin.js +128 -117
  200. package/build/server/controllers/client.js +15 -4
  201. package/build/server/controllers/index.js +6 -8
  202. package/build/server/controllers/utils/functions.d.ts +1 -1
  203. package/build/server/controllers/utils/parsers.d.ts +5 -10
  204. package/build/server/controllers/utils/parsers.js +46 -20
  205. package/build/server/destroy.d.ts +1 -1
  206. package/build/server/destroy.js +3 -2
  207. package/build/server/graphql/index.js +19 -29
  208. package/build/server/graphql/mutations/createAbuseReport.js +19 -23
  209. package/build/server/graphql/mutations/createComment.d.ts +1 -1
  210. package/build/server/graphql/mutations/createComment.js +19 -22
  211. package/build/server/graphql/mutations/index.js +19 -21
  212. package/build/server/graphql/mutations/removeComment.d.ts +1 -1
  213. package/build/server/graphql/mutations/removeComment.js +19 -23
  214. package/build/server/graphql/mutations/updateComment.d.ts +1 -1
  215. package/build/server/graphql/mutations/updateComment.js +19 -23
  216. package/build/server/graphql/queries/findAllFlat.d.ts +1 -1
  217. package/build/server/graphql/queries/findAllFlat.js +30 -40
  218. package/build/server/graphql/queries/findAllInHierarchy.d.ts +1 -2
  219. package/build/server/graphql/queries/findAllInHierarchy.js +25 -32
  220. package/build/server/graphql/queries/index.js +17 -19
  221. package/build/server/graphql/resolvers-config.js +10 -10
  222. package/build/server/graphql/types/comment-author.js +7 -8
  223. package/build/server/graphql/types/comment-nested.js +14 -15
  224. package/build/server/graphql/types/comment.js +13 -14
  225. package/build/server/graphql/types/create-comment-author.js +7 -8
  226. package/build/server/graphql/types/create-comment.js +7 -8
  227. package/build/server/graphql/types/create-report.js +7 -8
  228. package/build/server/graphql/types/id.js +13 -14
  229. package/build/server/graphql/types/identify-comment-author.js +4 -5
  230. package/build/server/graphql/types/index.js +21 -27
  231. package/build/server/graphql/types/remove-comment.js +6 -7
  232. package/build/server/graphql/types/report-reason.js +9 -9
  233. package/build/server/graphql/types/report.js +9 -10
  234. package/build/server/graphql/types/response-find-all.js +5 -6
  235. package/build/server/graphql/types/response-meta.js +4 -5
  236. package/build/server/graphql/types/response-pagination.js +9 -10
  237. package/build/server/graphql/types/update-comment.js +7 -8
  238. package/build/server/register.d.ts +1 -1
  239. package/build/server/register.js +3 -2
  240. package/build/server/routes/admin.d.ts +1 -1
  241. package/build/server/routes/admin.js +99 -99
  242. package/build/server/routes/client.d.ts +1 -1
  243. package/build/server/routes/client.js +79 -43
  244. package/build/server/routes/index.d.ts +4 -4
  245. package/build/server/routes/index.js +12 -14
  246. package/build/server/services/admin.js +257 -284
  247. package/build/server/services/client.js +54 -42
  248. package/build/server/services/common.js +33 -11
  249. package/build/server/services/graphql.js +113 -124
  250. package/build/server/services/utils/functions.d.ts +1 -1
  251. package/build/server/services/utils/functions.js +76 -109
  252. package/build/server/utils/constants.js +13 -14
  253. package/build/server/utils/error.d.ts +12 -16
  254. package/build/server/utils/error.js +23 -23
  255. package/build/server/utils/functions.d.ts +4 -12
  256. package/build/server/utils/functions.js +20 -34
  257. package/build/strapi-admin.js +4 -6
  258. package/build/tsconfig.tsbuildinfo +1 -1
  259. package/build/types/contentTypes.d.ts +7 -5
  260. package/content-types/comment.ts +93 -0
  261. package/content-types/index.ts +11 -0
  262. package/content-types/report.ts +50 -0
  263. package/jest.config.ts +22 -0
  264. package/package.json +45 -11
  265. package/permissions.ts +17 -0
  266. package/server/{bootstrap.js → bootstrap.ts} +12 -11
  267. package/server/config/index.ts +19 -0
  268. package/server/controllers/admin.ts +194 -0
  269. package/server/controllers/client.ts +220 -0
  270. package/server/controllers/index.ts +13 -0
  271. package/server/controllers/utils/functions.ts +27 -0
  272. package/server/controllers/utils/parsers.ts +59 -0
  273. package/server/destroy.ts +3 -0
  274. package/server/graphql/index.ts +27 -0
  275. package/server/graphql/mutations/createAbuseReport.ts +38 -0
  276. package/server/graphql/mutations/createComment.ts +41 -0
  277. package/server/graphql/mutations/index.ts +26 -0
  278. package/server/graphql/mutations/removeComment.ts +41 -0
  279. package/server/graphql/mutations/updateComment.ts +40 -0
  280. package/server/graphql/queries/findAllFlat.ts +58 -0
  281. package/server/graphql/queries/findAllInHierarchy.ts +47 -0
  282. package/server/graphql/queries/index.ts +22 -0
  283. package/server/graphql/resolvers-config.ts +13 -0
  284. package/server/graphql/types/comment-author.ts +12 -0
  285. package/server/graphql/types/comment-nested.ts +19 -0
  286. package/server/graphql/types/comment.ts +18 -0
  287. package/server/graphql/types/create-comment-author.ts +12 -0
  288. package/server/graphql/types/create-comment.ts +12 -0
  289. package/server/graphql/types/create-report.ts +12 -0
  290. package/server/graphql/types/id.ts +28 -0
  291. package/server/graphql/types/identify-comment-author.ts +9 -0
  292. package/server/graphql/types/index.ts +38 -0
  293. package/server/graphql/types/remove-comment.ts +11 -0
  294. package/server/graphql/types/report-reason.ts +12 -0
  295. package/server/graphql/types/report.ts +14 -0
  296. package/server/graphql/types/response-find-all.ts +10 -0
  297. package/server/graphql/types/response-meta.ts +9 -0
  298. package/server/graphql/types/response-pagination.ts +14 -0
  299. package/server/graphql/types/update-comment.ts +12 -0
  300. package/server/index.ts +20 -0
  301. package/server/register.ts +3 -0
  302. package/server/routes/admin.ts +118 -0
  303. package/server/routes/client.ts +95 -0
  304. package/server/routes/index.ts +25 -0
  305. package/server/services/admin.ts +406 -0
  306. package/server/services/client.ts +394 -0
  307. package/server/services/common.ts +503 -0
  308. package/server/services/{graphql.js → graphql.ts} +72 -43
  309. package/server/services/index.ts +13 -0
  310. package/server/services/utils/functions.ts +150 -0
  311. package/server/utils/constants.ts +23 -0
  312. package/server/utils/error.ts +44 -0
  313. package/server/utils/functions.ts +55 -0
  314. package/strapi-admin.ts +5 -0
  315. package/strapi-server.ts +77 -0
  316. package/tsconfig.json +38 -0
  317. package/types/common.d.ts +1 -0
  318. package/types/config.d.ts +35 -0
  319. package/types/constants.d.ts +3 -0
  320. package/types/contentTypes.ts +56 -0
  321. package/types/controllers.d.ts +125 -0
  322. package/types/graphql.d.ts +24 -0
  323. package/types/index.d.ts +7 -0
  324. package/types/services.d.ts +166 -0
  325. package/__mocks__/initSetup.js +0 -108
  326. package/admin/src/components/ActionButton/styles.js +0 -10
  327. package/admin/src/components/ConfirmationDialog/index.js +0 -56
  328. package/admin/src/components/DiscussionStatus/index.js +0 -33
  329. package/admin/src/components/DiscussionThread/index.js +0 -62
  330. package/admin/src/components/DiscussionThreadItem/index.js +0 -57
  331. package/admin/src/components/DiscussionThreadItemActions/index.js +0 -231
  332. package/admin/src/components/DiscussionThreadItemActions/styles.js +0 -7
  333. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.js +0 -80
  334. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.js +0 -6
  335. package/admin/src/components/DiscussionThreadItemFooter/index.js +0 -47
  336. package/admin/src/components/DiscussionThreadItemFooter/styles.js +0 -13
  337. package/admin/src/components/DiscussionThreadItemReviewAction/index.js +0 -131
  338. package/admin/src/components/FormSwitch/index.js +0 -18
  339. package/admin/src/components/FormSwitch/styles.js +0 -8
  340. package/admin/src/components/IconButton/styles.js +0 -14
  341. package/admin/src/components/LoadingIndicatorOverlay/index.js +0 -15
  342. package/admin/src/components/LoadingIndicatorOverlay/styles.js +0 -20
  343. package/admin/src/components/Nav/index.js +0 -49
  344. package/admin/src/components/ReportsReviewModal/index.js +0 -48
  345. package/admin/src/components/ReportsReviewTable/index.js +0 -160
  346. package/admin/src/components/StatusBadge/index.js +0 -17
  347. package/admin/src/components/StatusBadge/styles.js +0 -17
  348. package/admin/src/components/icons/comments.js +0 -9
  349. package/admin/src/components/icons/index.js +0 -6
  350. package/admin/src/components/icons/review.js +0 -18
  351. package/admin/src/components/icons/unlock.js +0 -20
  352. package/admin/src/hooks/useConfig.js +0 -49
  353. package/admin/src/pages/App/index.js +0 -71
  354. package/admin/src/pages/App/reducer/actions.js +0 -8
  355. package/admin/src/pages/App/reducer/constants.js +0 -4
  356. package/admin/src/pages/App/reducer/init.js +0 -7
  357. package/admin/src/pages/App/reducer/selectors.js +0 -35
  358. package/admin/src/pages/ComingSoonPage/index.js +0 -25
  359. package/admin/src/pages/Details/components/DetailsEntity/index.js +0 -84
  360. package/admin/src/pages/Details/components/DetailsFilters/index.js +0 -35
  361. package/admin/src/pages/Details/components/DetailsFilters/styles.js +0 -8
  362. package/admin/src/pages/Details/index.js +0 -136
  363. package/admin/src/pages/Discover/components/DiscoverTableRow/index.js +0 -180
  364. package/admin/src/pages/Discover/components/DiscoverTableRow/styles.js +0 -8
  365. package/admin/src/pages/Discover/index.js +0 -173
  366. package/admin/src/pages/Discover/utils/api.js +0 -14
  367. package/admin/src/pages/Discover/utils/filtersSchema.js +0 -9
  368. package/admin/src/pages/Settings/components/RestartAlert/styles.js +0 -8
  369. package/admin/src/pages/Settings/index.js +0 -392
  370. package/admin/src/pages/utils/api.js +0 -53
  371. package/admin/src/permissions.js +0 -19
  372. package/admin/src/pluginId.js +0 -5
  373. package/admin/src/reducers.js +0 -8
  374. package/admin/src/utils/constants.js +0 -25
  375. package/admin/src/utils/getApiUrl.js +0 -5
  376. package/admin/src/utils/getMessage.js +0 -21
  377. package/admin/src/utils/getRelatedGroups.js +0 -3
  378. package/admin/src/utils/getUrl.js +0 -5
  379. package/admin/src/utils/handleAPIError.js +0 -16
  380. package/admin/src/utils/index.js +0 -11
  381. package/admin/src/utils/parseRegExp.js +0 -10
  382. package/admin/src/utils/renderEntryTitle.js +0 -14
  383. package/admin/src/utils/renderInitials.js +0 -5
  384. package/admin/src/utils/resolveCommentStatus.js +0 -30
  385. package/admin/src/utils/resolveCommentStatusColor.js +0 -22
  386. package/content-types/comment.js +0 -93
  387. package/content-types/index.js +0 -11
  388. package/content-types/report.js +0 -54
  389. package/jest.config.js +0 -7
  390. package/permissions.js +0 -19
  391. package/server/config/index.js +0 -17
  392. package/server/controllers/admin.js +0 -168
  393. package/server/controllers/client.js +0 -114
  394. package/server/controllers/index.js +0 -9
  395. package/server/controllers/utils/__tests__/functions.test.js +0 -43
  396. package/server/controllers/utils/__tests__/parsers.test.js +0 -94
  397. package/server/controllers/utils/functions.js +0 -19
  398. package/server/controllers/utils/parsers.js +0 -23
  399. package/server/destroy.js +0 -5
  400. package/server/graphql/index.js +0 -25
  401. package/server/graphql/mutations/createAbuseReport.js +0 -25
  402. package/server/graphql/mutations/createComment.js +0 -25
  403. package/server/graphql/mutations/index.js +0 -21
  404. package/server/graphql/mutations/removeComment.js +0 -25
  405. package/server/graphql/mutations/updateComment.js +0 -25
  406. package/server/graphql/queries/findAllFlat.js +0 -35
  407. package/server/graphql/queries/findAllInHierarchy.js +0 -31
  408. package/server/graphql/queries/index.js +0 -19
  409. package/server/graphql/resolvers-config.js +0 -13
  410. package/server/graphql/types/comment-author.js +0 -9
  411. package/server/graphql/types/comment-nested.js +0 -16
  412. package/server/graphql/types/comment.js +0 -15
  413. package/server/graphql/types/create-comment-author.js +0 -9
  414. package/server/graphql/types/create-comment.js +0 -9
  415. package/server/graphql/types/create-report.js +0 -9
  416. package/server/graphql/types/id.js +0 -24
  417. package/server/graphql/types/identify-comment-author.js +0 -6
  418. package/server/graphql/types/index.js +0 -19
  419. package/server/graphql/types/remove-comment.js +0 -8
  420. package/server/graphql/types/report-reason.js +0 -10
  421. package/server/graphql/types/report.js +0 -11
  422. package/server/graphql/types/response-find-all.js +0 -7
  423. package/server/graphql/types/response-meta.js +0 -6
  424. package/server/graphql/types/response-pagination.js +0 -11
  425. package/server/graphql/types/update-comment.js +0 -9
  426. package/server/index.js +0 -22
  427. package/server/register.js +0 -5
  428. package/server/routes/admin.js +0 -124
  429. package/server/routes/client.js +0 -52
  430. package/server/routes/index.js +0 -15
  431. package/server/services/__tests__/common.test.js +0 -399
  432. package/server/services/admin.js +0 -296
  433. package/server/services/client.js +0 -263
  434. package/server/services/common.js +0 -295
  435. package/server/services/index.js +0 -13
  436. package/server/services/utils/__tests__/functions.test.js +0 -53
  437. package/server/services/utils/functions.js +0 -112
  438. package/server/utils/__tests__/functions.test.js +0 -17
  439. package/server/utils/constants.js +0 -26
  440. package/server/utils/error.js +0 -24
  441. package/server/utils/functions.js +0 -19
  442. package/strapi-admin.js +0 -3
  443. package/strapi-server.js +0 -49
@@ -11,13 +11,17 @@ module.exports = ({ strapi }) => ({
11
11
  getCommonService() {
12
12
  return (0, functions_1.getPluginService)("common");
13
13
  },
14
- async create(relation, data, user = undefined) {
14
+ async create(relation, data, user) {
15
15
  const { content, threadOf } = data;
16
16
  const singleRelationFulfilled = relation && constants_1.REGEX.relatedUid.test(relation);
17
17
  if (!singleRelationFulfilled) {
18
18
  throw new error_1.default(400, `Field "related" got incorrect format, use format like "api::<collection name>.<content type name>:<entity id>"`);
19
19
  }
20
20
  const [uid, relatedId] = await this.getCommonService().parseRelationString(relation);
21
+ const isEnabledCollection = await this.getCommonService().isEnabledCollection(uid);
22
+ if (!isEnabledCollection) {
23
+ throw new error_1.default(400, `Field "related" refer to not enabled collection. Please amend the plugin settings and try again`);
24
+ }
21
25
  const relatedEntity = await strapi.db
22
26
  .query(uid)
23
27
  .findOne(relatedId);
@@ -26,16 +30,19 @@ module.exports = ({ strapi }) => ({
26
30
  }
27
31
  const approvalFlow = await this.getCommonService().getConfig(constants_1.CONFIG_PARAMS.APPROVAL_FLOW, []);
28
32
  const isApprovalFlowEnabled = approvalFlow.includes(uid) || relatedEntity.requireCommentsApproval;
29
- const linkToThread = !(0, lodash_1.isNil)(threadOf)
30
- ? await this.getCommonService().findOne({
31
- id: threadOf,
32
- related: relation,
33
- })
34
- : null;
35
- const validContext = this.getCommonService().isValidUserContext(user);
36
- if (linkToThread === null && !(0, lodash_1.isNil)(threadOf)) {
33
+ let linkToThread;
34
+ try {
35
+ linkToThread = !(0, lodash_1.isNil)(threadOf)
36
+ ? await this.getCommonService().findOne({
37
+ id: threadOf,
38
+ related: relation,
39
+ })
40
+ : null;
41
+ }
42
+ catch (e) {
37
43
  throw new error_1.default(400, "Thread does not exist");
38
44
  }
45
+ const validContext = this.getCommonService().isValidUserContext(user);
39
46
  if (!validContext) {
40
47
  throw (0, functions_2.resolveUserContextError)(user);
41
48
  }
@@ -56,11 +63,11 @@ module.exports = ({ strapi }) => ({
56
63
  authorId: author.id,
57
64
  authorName: author.name,
58
65
  authorEmail: author.email,
59
- authorAvatar: author.avatar,
66
+ authorAvatar: (0, lodash_1.isString)(author.avatar) ? author.avatar : undefined,
60
67
  };
61
68
  }
62
- if (!(0, lodash_1.isEmpty)(authorData) &&
63
- !(authorData.authorId || authorData.authorUser)) {
69
+ const authorNotProperlyProvided = !(0, lodash_1.isEmpty)(authorData) && !(authorData.authorId || authorData.authorUser);
70
+ if ((0, lodash_1.isEmpty)(authorData) || authorNotProperlyProvided) {
64
71
  throw new error_1.default(400, `Not able to recognise author of a comment. Make sure you've provided "author" property in a payload or authenticated your request properly.`);
65
72
  }
66
73
  if (isApprovalFlowEnabled &&
@@ -90,7 +97,7 @@ module.exports = ({ strapi }) => ({
90
97
  }
91
98
  throw new error_1.default(400, "No content received");
92
99
  },
93
- async update(id, relation, data, user = undefined) {
100
+ async update(id, relation, data, user) {
94
101
  const { content } = data;
95
102
  const singleRelationFulfilled = relation && constants_1.REGEX.relatedUid.test(relation);
96
103
  if (!singleRelationFulfilled) {
@@ -119,45 +126,50 @@ module.exports = ({ strapi }) => ({
119
126
  }
120
127
  throw new error_1.default(403, `You're not allowed to take an action on that entity. Make sure you've provided "author" property in a payload or authenticated your request properly.`);
121
128
  },
122
- async reportAbuse(id, relation, payload, user = undefined) {
129
+ async reportAbuse(id, relation, payload, user) {
123
130
  if (!this.getCommonService().isValidUserContext(user)) {
124
131
  throw (0, functions_2.resolveUserContextError)(user);
125
132
  }
126
133
  await this.getCommonService().parseRelationString(relation);
127
- const reportAgainstEntity = await this.getCommonService().findOne({
128
- id,
129
- related: relation,
130
- });
131
- if (reportAgainstEntity) {
132
- const entity = await strapi.db
133
- .query((0, functions_2.getModelUid)("comment-report"))
134
- .create({
135
- data: {
136
- ...payload,
137
- resolved: false,
138
- related: id,
139
- },
134
+ try {
135
+ const reportAgainstEntity = await this.getCommonService().findOne({
136
+ id,
137
+ related: relation,
140
138
  });
141
- if (entity) {
142
- const response = {
143
- ...entity,
144
- related: reportAgainstEntity,
145
- };
146
- try {
147
- await this.sendAbuseReportEmail(entity.reason, entity.content);
148
- return response;
139
+ if (reportAgainstEntity) {
140
+ const entity = await strapi.db
141
+ .query((0, functions_2.getModelUid)("comment-report"))
142
+ .create({
143
+ data: {
144
+ ...payload,
145
+ resolved: false,
146
+ related: id,
147
+ },
148
+ });
149
+ if (entity) {
150
+ const response = {
151
+ ...entity,
152
+ related: reportAgainstEntity,
153
+ };
154
+ try {
155
+ await this.sendAbuseReportEmail(entity.reason, entity.content);
156
+ return response;
157
+ }
158
+ catch (err) {
159
+ return response;
160
+ }
149
161
  }
150
- catch (err) {
151
- return response;
162
+ else {
163
+ throw new error_1.default(500, "Report cannot be created");
152
164
  }
153
165
  }
154
- else {
155
- throw new error_1.default(500, "Report cannot be created");
156
- }
166
+ throw new error_1.default(403, `You're not allowed to take an action on that entity. Make sure that comment exist or you've authenticated your request properly.`);
167
+ }
168
+ catch (e) {
169
+ throw new error_1.default(403, `You're not allowed to take an action on that entity. Make sure that comment exist or you've authenticated your request properly.`);
157
170
  }
158
- throw new error_1.default(403, `You're not allowed to take an action on that entity. Make sure that comment exist or you've authenticated your request properly.`);
159
171
  },
160
- async markAsRemoved(id, relation, authorId, user = undefined) {
172
+ async markAsRemoved(id, relation, authorId, user) {
161
173
  if (!this.getCommonService().isValidUserContext(user)) {
162
174
  throw (0, functions_2.resolveUserContextError)(user);
163
175
  }
@@ -32,9 +32,11 @@ module.exports = ({ strapi }) => ({
32
32
  const result = strapi.config.get(`plugin.comments${queryProp ? "." + queryProp : ""}`);
33
33
  return (0, lodash_1.isNil)(result) ? defaultValue : result;
34
34
  },
35
- async findAllFlat({ query = {}, populate = {}, sort, pagination }, relatedEntity = null) {
36
- const defaultPopulate = {
35
+ async findAllFlat({ query = {}, populate = {}, sort, pagination, fields, }, relatedEntity = null) {
36
+ const defaultSelect = ["id", "related"];
37
+ const populateClause = {
37
38
  authorUser: true,
39
+ ...((0, lodash_1.isObject)(populate) ? populate : {}),
38
40
  };
39
41
  let queryExtension = {};
40
42
  if (sort && ((0, lodash_1.isString)(sort) || (0, lodash_1.isArray)(sort))) {
@@ -48,6 +50,12 @@ module.exports = ({ strapi }) => ({
48
50
  }, {}),
49
51
  };
50
52
  }
53
+ if (!(0, lodash_1.isNil)(fields)) {
54
+ queryExtension = {
55
+ ...queryExtension,
56
+ select: (0, lodash_1.isArray)(fields) ? (0, lodash_1.uniq)([...fields, ...defaultSelect]) : fields,
57
+ };
58
+ }
51
59
  let meta = {};
52
60
  if (pagination && (0, lodash_1.isObject)(pagination)) {
53
61
  const parsedpagination = Object.keys(pagination).reduce((prev, curr) => ({
@@ -85,8 +93,7 @@ module.exports = ({ strapi }) => ({
85
93
  ...query,
86
94
  },
87
95
  populate: {
88
- ...defaultPopulate,
89
- ...populate,
96
+ ...populateClause,
90
97
  },
91
98
  ...queryExtension,
92
99
  });
@@ -137,12 +144,18 @@ module.exports = ({ strapi }) => ({
137
144
  const parsedThreadOf = (0, lodash_1.isString)(query.threadOf)
138
145
  ? (0, lodash_1.parseInt)(query.threadOf)
139
146
  : query.threadOf;
147
+ let authorUserPopulate = {};
148
+ if ((0, lodash_1.isObject)(populateClause?.authorUser)) {
149
+ authorUserPopulate = 'populate' in populateClause.authorUser ?
150
+ populateClause.authorUser.populate :
151
+ populateClause.authorUser;
152
+ }
140
153
  return this.sanitizeCommentEntity({
141
154
  ..._,
142
155
  threadOf: parsedThreadOf || _.threadOf || null,
143
156
  gotThread: (threadedItem?.itemsInTread || 0) > 0,
144
157
  threadFirstItemId: threadedItem?.firstThreadItemId,
145
- });
158
+ }, authorUserPopulate);
146
159
  });
147
160
  return {
148
161
  data: hasRelatedEntitiesToMap
@@ -151,8 +164,8 @@ module.exports = ({ strapi }) => ({
151
164
  ...((0, lodash_1.isEmpty)(meta) ? {} : { meta }),
152
165
  };
153
166
  },
154
- async findAllInHierarchy({ query, populate = {}, sort, startingFromId = null, dropBlockedThreads = false, }, relatedEntity) {
155
- const entities = await this.findAllFlat({ query, populate, sort }, relatedEntity);
167
+ async findAllInHierarchy({ query, populate = {}, sort, fields, startingFromId = null, dropBlockedThreads = false, }, relatedEntity) {
168
+ const entities = await this.findAllFlat({ query, populate, sort, fields }, relatedEntity);
156
169
  return (0, functions_1.buildNestedStructure)(entities?.data, startingFromId, "threadOf", dropBlockedThreads, false);
157
170
  },
158
171
  async findOne(criteria) {
@@ -222,14 +235,18 @@ module.exports = ({ strapi }) => ({
222
235
  return false;
223
236
  }
224
237
  },
225
- sanitizeCommentEntity(entity) {
238
+ sanitizeCommentEntity(entity, populate) {
239
+ const fieldsToPopulate = (0, lodash_1.isArray)(populate)
240
+ ? populate
241
+ : Object.keys(populate || {});
242
+ console.log(fieldsToPopulate);
226
243
  return {
227
244
  ...(0, functions_1.buildAuthorModel)({
228
245
  ...entity,
229
246
  threadOf: (0, lodash_1.isObject)(entity.threadOf)
230
- ? (0, functions_1.buildAuthorModel)(entity.threadOf)
247
+ ? (0, functions_1.buildAuthorModel)(entity.threadOf, fieldsToPopulate)
231
248
  : entity.threadOf,
232
- }),
249
+ }, fieldsToPopulate),
233
250
  };
234
251
  },
235
252
  isValidUserContext(user) {
@@ -241,8 +258,9 @@ module.exports = ({ strapi }) => ({
241
258
  const relatedId = (0, lodash_1.isNumber)(parsedRelatedId)
242
259
  ? parsedRelatedId
243
260
  : relatedStringId;
261
+ const isEnabledCollection = await this.isEnabledCollection(uid);
244
262
  const enabledCollections = await this.getConfig(constants_1.CONFIG_PARAMS.ENABLED_COLLECTIONS, []);
245
- if (!enabledCollections.includes(uid)) {
263
+ if (!isEnabledCollection) {
246
264
  throw new error_1.default(403, `Action not allowed for collection '${uid}'. Use one of: ${enabledCollections.join(", ")}`);
247
265
  }
248
266
  return [uid, relatedId];
@@ -262,5 +280,9 @@ module.exports = ({ strapi }) => ({
262
280
  }
263
281
  return content;
264
282
  },
283
+ async isEnabledCollection(uid) {
284
+ const enabledCollections = await this.getConfig("enabledCollections", []);
285
+ return enabledCollections.includes(uid);
286
+ },
265
287
  });
266
288
  //# sourceMappingURL=common.js.map
@@ -3,134 +3,123 @@ const fp_1 = require("lodash/fp");
3
3
  const nexus_1 = require("nexus");
4
4
  const virtualScalarAttributes = ["id"];
5
5
  module.exports = ({ strapi }) => {
6
- const { service: getService } = strapi.plugin("graphql");
7
- const rootLevelOperators = () => {
8
- const { operators } = strapi.plugin("graphql").service("builders").filters;
9
- return [operators.and, operators.or, operators.not];
10
- };
11
- const buildContentTypeFilters = (contentType) => {
12
- const utils = strapi.plugin("graphql").service("utils");
13
- const extension = strapi.plugin("graphql").service("extension");
14
- const { getFiltersInputTypeName, getScalarFilterInputTypeName } =
15
- utils.naming;
16
- const { isStrapiScalar, isRelation } = utils.attributes;
17
- const { attributes } = contentType;
18
- const filtersTypeName = getFiltersInputTypeName(contentType);
19
- return (0, nexus_1.inputObjectType)({
20
- name: filtersTypeName,
21
- definition(t) {
22
- const validAttributes = Object.entries(attributes).filter(
23
- ([attributeName]) =>
24
- extension
25
- .shadowCRUD(contentType.uid)
26
- .field(attributeName)
27
- .hasFiltersEnabeld()
28
- );
29
- const isIDFilterEnabled = extension
30
- .shadowCRUD(contentType.uid)
31
- .field("id")
32
- .hasFiltersEnabeld();
33
- if (contentType.kind === "collectionType" && isIDFilterEnabled) {
34
- t.field("id", { type: getScalarFilterInputTypeName("ID") });
6
+ const { service: getService } = strapi.plugin("graphql");
7
+ const rootLevelOperators = () => {
8
+ const { operators } = strapi.plugin("graphql").service("builders").filters;
9
+ return [operators.and, operators.or, operators.not];
10
+ };
11
+ const buildContentTypeFilters = (contentType) => {
12
+ const utils = strapi.plugin("graphql").service("utils");
13
+ const extension = strapi.plugin("graphql").service("extension");
14
+ const { getFiltersInputTypeName, getScalarFilterInputTypeName } = utils.naming;
15
+ const { isStrapiScalar, isRelation } = utils.attributes;
16
+ const { attributes } = contentType;
17
+ const filtersTypeName = getFiltersInputTypeName(contentType);
18
+ return (0, nexus_1.inputObjectType)({
19
+ name: filtersTypeName,
20
+ definition(t) {
21
+ const validAttributes = Object.entries(attributes).filter(([attributeName]) => extension
22
+ .shadowCRUD(contentType.uid)
23
+ .field(attributeName)
24
+ .hasFiltersEnabeld());
25
+ const isIDFilterEnabled = extension
26
+ .shadowCRUD(contentType.uid)
27
+ .field("id")
28
+ .hasFiltersEnabeld();
29
+ if (contentType.kind === "collectionType" && isIDFilterEnabled) {
30
+ t.field("id", { type: getScalarFilterInputTypeName("ID") });
31
+ }
32
+ for (const [attributeName, attribute] of validAttributes) {
33
+ if (isStrapiScalar(attribute)) {
34
+ addScalarAttribute(t, attributeName, attribute);
35
+ }
36
+ else if (isRelation(attribute)) {
37
+ addRelationalAttribute(t, attributeName, attribute);
38
+ }
39
+ }
40
+ for (const operator of rootLevelOperators()) {
41
+ operator.add(t, filtersTypeName);
42
+ }
43
+ },
44
+ });
45
+ };
46
+ const addScalarAttribute = (builder, attributeName, attribute) => {
47
+ const { naming, mappers } = strapi.plugin("graphql").service("utils");
48
+ const gqlType = mappers.strapiScalarToGraphQLScalar(attribute.type);
49
+ builder.field(attributeName, {
50
+ type: naming.getScalarFilterInputTypeName(gqlType),
51
+ });
52
+ };
53
+ const addRelationalAttribute = (builder, attributeName, attribute) => {
54
+ const utils = strapi.plugin("graphql").service("utils");
55
+ const extension = strapi.plugin("graphql").service("extension");
56
+ const { getFiltersInputTypeName } = utils.naming;
57
+ const { isMorphRelation } = utils.attributes;
58
+ const model = strapi.getModel(attribute.target);
59
+ if (!model || isMorphRelation(attribute))
60
+ return;
61
+ if (extension.shadowCRUD(model.uid).isDisabled())
62
+ return;
63
+ builder.field(attributeName, { type: getFiltersInputTypeName(model) });
64
+ };
65
+ const recursivelyReplaceScalarOperators = (data) => {
66
+ const { operators } = getService("builders").filters;
67
+ if (Array.isArray(data)) {
68
+ return data.map(recursivelyReplaceScalarOperators);
35
69
  }
36
- for (const [attributeName, attribute] of validAttributes) {
37
- if (isStrapiScalar(attribute)) {
38
- addScalarAttribute(t, attributeName, attribute);
39
- } else if (isRelation(attribute)) {
40
- addRelationalAttribute(t, attributeName, attribute);
41
- }
70
+ if ((0, fp_1.isDate)(data) || !(0, fp_1.isObject)(data)) {
71
+ return data;
42
72
  }
43
- for (const operator of rootLevelOperators()) {
44
- operator.add(t, filtersTypeName);
73
+ const result = {};
74
+ for (const [key, value] of Object.entries(data)) {
75
+ const isOperator = !!operators[key];
76
+ const newKey = isOperator ? operators[key].strapiOperator : key;
77
+ result[newKey] = recursivelyReplaceScalarOperators(value);
45
78
  }
46
- },
47
- });
48
- };
49
- const addScalarAttribute = (builder, attributeName, attribute) => {
50
- const { naming, mappers } = strapi.plugin("graphql").service("utils");
51
- const gqlType = mappers.strapiScalarToGraphQLScalar(attribute.type);
52
- builder.field(attributeName, {
53
- type: naming.getScalarFilterInputTypeName(gqlType),
54
- });
55
- };
56
- const addRelationalAttribute = (builder, attributeName, attribute) => {
57
- const utils = strapi.plugin("graphql").service("utils");
58
- const extension = strapi.plugin("graphql").service("extension");
59
- const { getFiltersInputTypeName } = utils.naming;
60
- const { isMorphRelation } = utils.attributes;
61
- const model = strapi.getModel(attribute.target);
62
- if (!model || isMorphRelation(attribute)) return;
63
- if (extension.shadowCRUD(model.uid).isDisabled()) return;
64
- builder.field(attributeName, { type: getFiltersInputTypeName(model) });
65
- };
66
- const recursivelyReplaceScalarOperators = (data) => {
67
- const { operators } = getService("builders").filters;
68
- if (Array.isArray(data)) {
69
- return data.map(recursivelyReplaceScalarOperators);
70
- }
71
- if ((0, fp_1.isDate)(data) || !(0, fp_1.isObject)(data)) {
72
- return data;
73
- }
74
- const result = {};
75
- for (const [key, value] of Object.entries(data)) {
76
- const isOperator = !!operators[key];
77
- const newKey = isOperator ? operators[key].strapiOperator : key;
78
- result[newKey] = recursivelyReplaceScalarOperators(value);
79
- }
80
- return result;
81
- };
82
- const graphQLFiltersToStrapiQuery = (filters, contentType = {}) => {
83
- const { isStrapiScalar, isMedia, isRelation } =
84
- getService("utils").attributes;
85
- const { operators } = getService("builders").filters;
86
- const ROOT_LEVEL_OPERATORS = [operators.and, operators.or, operators.not];
87
- if ((0, fp_1.isNil)(filters)) {
88
- return {};
89
- }
90
- if (Array.isArray(filters)) {
91
- return filters.map((filtersItem) =>
92
- graphQLFiltersToStrapiQuery(filtersItem, contentType)
93
- );
94
- }
95
- const resultMap = {};
96
- const { attributes } = contentType;
97
- const isAttribute = (attributeName) => {
98
- return (
99
- virtualScalarAttributes.includes(attributeName) ||
100
- (0, fp_1.has)(attributeName, attributes)
101
- );
79
+ return result;
102
80
  };
103
- for (const [key, value] of Object.entries(filters)) {
104
- if (isAttribute(key)) {
105
- const attribute = attributes[key];
106
- if (
107
- virtualScalarAttributes.includes(key) ||
108
- isStrapiScalar(attribute)
109
- ) {
110
- resultMap[key] = recursivelyReplaceScalarOperators(value);
111
- } else if (isRelation(attribute) || isMedia(attribute)) {
112
- const relModel = strapi.getModel(attribute.target);
113
- resultMap[key] = graphQLFiltersToStrapiQuery(value, relModel);
81
+ const graphQLFiltersToStrapiQuery = (filters, contentType = {}) => {
82
+ const { isStrapiScalar, isMedia, isRelation } = getService("utils").attributes;
83
+ const { operators } = getService("builders").filters;
84
+ const ROOT_LEVEL_OPERATORS = [operators.and, operators.or, operators.not];
85
+ if ((0, fp_1.isNil)(filters)) {
86
+ return {};
114
87
  }
115
- } else {
116
- const rootLevelOperator = ROOT_LEVEL_OPERATORS.find(
117
- (0, fp_1.propEq)("fieldName", key)
118
- );
119
- if (rootLevelOperator) {
120
- const { strapiOperator } = rootLevelOperator;
121
- resultMap[strapiOperator] = graphQLFiltersToStrapiQuery(
122
- value,
123
- contentType
124
- );
88
+ if (Array.isArray(filters)) {
89
+ return filters.map((filtersItem) => graphQLFiltersToStrapiQuery(filtersItem, contentType));
125
90
  }
126
- }
127
- }
128
- return resultMap;
129
- };
130
- const serviceMethods = {
131
- buildContentTypeFilters,
132
- graphQLFiltersToStrapiQuery,
133
- };
134
- return serviceMethods;
91
+ const resultMap = {};
92
+ const { attributes } = contentType;
93
+ const isAttribute = (attributeName) => {
94
+ return (virtualScalarAttributes.includes(attributeName) ||
95
+ (0, fp_1.has)(attributeName, attributes));
96
+ };
97
+ for (const [key, value] of Object.entries(filters)) {
98
+ if (isAttribute(key)) {
99
+ const attribute = attributes[key];
100
+ if (virtualScalarAttributes.includes(key) ||
101
+ isStrapiScalar(attribute)) {
102
+ resultMap[key] = recursivelyReplaceScalarOperators(value);
103
+ }
104
+ else if (isRelation(attribute) || isMedia(attribute)) {
105
+ const relModel = strapi.getModel(attribute.target);
106
+ resultMap[key] = graphQLFiltersToStrapiQuery(value, relModel);
107
+ }
108
+ }
109
+ else {
110
+ const rootLevelOperator = ROOT_LEVEL_OPERATORS.find((0, fp_1.propEq)("fieldName", key));
111
+ if (rootLevelOperator) {
112
+ const { strapiOperator } = rootLevelOperator;
113
+ resultMap[strapiOperator] = graphQLFiltersToStrapiQuery(value, contentType);
114
+ }
115
+ }
116
+ }
117
+ return resultMap;
118
+ };
119
+ const serviceMethods = {
120
+ buildContentTypeFilters,
121
+ graphQLFiltersToStrapiQuery,
122
+ };
123
+ return serviceMethods;
135
124
  };
136
- //# sourceMappingURL=graphql.js.map
125
+ //# sourceMappingURL=graphql.js.map
@@ -7,7 +7,7 @@ export declare const getRelatedGroups: (related: string) => Array<string>;
7
7
  export declare const getModelUid: (name: string) => string;
8
8
  export declare const filterOurResolvedReports: (item: Comment) => Comment;
9
9
  export declare const convertContentTypeNameToSlug: (str: string) => string;
10
- export declare const buildAuthorModel: (item: Comment) => Comment;
10
+ export declare const buildAuthorModel: (item: Comment, fieldsToPopulate?: Array<string>) => Comment;
11
11
  export declare const buildConfigQueryProp: (prop?: undefined | string | Array<string>) => string;
12
12
  export declare const resolveUserContextError: (user: StrapiUser) => PluginError;
13
13
  //# sourceMappingURL=functions.d.ts.map