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.
- package/README.md +165 -119
- package/admin/src/components/ActionButton/styles.ts +11 -0
- package/admin/src/components/Avatar/index.tsx +31 -0
- package/admin/src/components/ConfirmationDialog/index.tsx +88 -0
- package/admin/src/components/DiscussionStatus/index.tsx +36 -0
- package/admin/src/components/DiscussionThread/index.tsx +97 -0
- package/admin/src/components/DiscussionThreadItem/index.tsx +71 -0
- package/admin/src/components/DiscussionThreadItem/{styles.js → styles.ts} +8 -6
- package/admin/src/components/DiscussionThreadItemActions/index.tsx +365 -0
- package/admin/src/components/DiscussionThreadItemActions/styles.ts +9 -0
- package/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.tsx +99 -0
- package/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.ts +8 -0
- package/admin/src/components/DiscussionThreadItemFooter/index.tsx +62 -0
- package/admin/src/components/DiscussionThreadItemFooter/styles.ts +15 -0
- package/admin/src/components/DiscussionThreadItemReviewAction/index.tsx +180 -0
- package/admin/src/components/FormSwitch/index.tsx +35 -0
- package/admin/src/components/FormSwitch/styles.ts +10 -0
- package/admin/src/components/IconButton/styles.ts +19 -0
- package/admin/src/components/Initializer/{index.js → index.tsx} +8 -6
- package/admin/src/components/LoadingIndicatorOverlay/index.tsx +19 -0
- package/admin/src/components/LoadingIndicatorOverlay/styles.ts +21 -0
- package/admin/src/components/Nav/index.tsx +61 -0
- package/admin/src/components/PluginIcon/{index.js → index.tsx} +4 -2
- package/admin/src/components/ReportsReviewModal/index.tsx +71 -0
- package/admin/src/components/ReportsReviewTable/index.tsx +233 -0
- package/admin/src/components/StatusBadge/index.tsx +21 -0
- package/admin/src/components/StatusBadge/styles.ts +19 -0
- package/admin/src/components/TableFilters/{index.js → index.tsx} +14 -9
- package/admin/src/components/TablePagination/{index.js → index.tsx} +8 -6
- package/admin/src/components/icons/comments.tsx +15 -0
- package/admin/src/components/icons/index.ts +6 -0
- package/admin/src/components/icons/{lock.js → lock.tsx} +17 -12
- package/admin/src/components/icons/review.tsx +25 -0
- package/admin/src/components/icons/unlock.tsx +25 -0
- package/admin/src/hooks/useConfig.ts +58 -0
- package/admin/src/{index.js → index.ts} +26 -22
- package/admin/src/pages/App/index.tsx +67 -0
- package/admin/src/pages/App/reducer/actions.ts +10 -0
- package/admin/src/pages/App/reducer/constants.ts +4 -0
- package/admin/src/pages/App/reducer/{index.js → index.ts} +8 -6
- package/admin/src/pages/App/reducer/init.ts +9 -0
- package/admin/src/pages/App/reducer/selectors.ts +32 -0
- package/admin/src/pages/App/utils/{api.js → api.ts} +3 -1
- package/admin/src/pages/ComingSoonPage/index.tsx +31 -0
- package/admin/src/pages/Details/components/DetailsEntity/index.tsx +106 -0
- package/admin/src/pages/Details/components/DetailsFilters/index.tsx +43 -0
- package/admin/src/pages/Details/components/DetailsFilters/styles.ts +9 -0
- package/admin/src/pages/Details/index.tsx +169 -0
- package/admin/src/pages/Discover/components/DiscoverTableRow/index.tsx +252 -0
- package/admin/src/pages/Discover/components/DiscoverTableRow/styles.ts +9 -0
- package/admin/src/pages/Discover/index.tsx +230 -0
- package/admin/src/pages/Discover/utils/api.ts +22 -0
- package/admin/src/pages/Discover/utils/filtersSchema.ts +9 -0
- package/admin/src/pages/Settings/components/RestartAlert/styles.ts +10 -0
- package/admin/src/pages/Settings/index.tsx +602 -0
- package/admin/src/pages/Settings/utils/{api.js → api.ts} +16 -5
- package/admin/src/pages/utils/api.ts +70 -0
- package/admin/src/permissions.ts +30 -0
- package/admin/src/pluginId.ts +3 -0
- package/admin/src/reducers.ts +8 -0
- package/admin/src/translations/en.json +131 -131
- package/admin/src/translations/pt-BR.json +130 -130
- package/admin/src/utils/{axiosInstance.js → axiosInstance.ts} +12 -9
- package/admin/src/utils/constants.ts +25 -0
- package/admin/src/utils/getApiUrl.ts +5 -0
- package/admin/src/utils/getMessage.ts +29 -0
- package/admin/src/utils/getRelatedGroups.ts +6 -0
- package/admin/src/utils/getUrl.ts +5 -0
- package/admin/src/utils/handleAPIError.ts +21 -0
- package/admin/src/utils/index.ts +11 -0
- package/admin/src/utils/parseRegExp.ts +9 -0
- package/admin/src/utils/renderEntryTitle.ts +16 -0
- package/admin/src/utils/renderInitials.ts +10 -0
- package/admin/src/utils/resolveCommentStatus.ts +37 -0
- package/admin/src/utils/resolveCommentStatusColor.ts +22 -0
- package/build/README.md +41 -5
- package/build/admin/src/components/ActionButton/styles.d.ts +1 -1
- package/build/admin/src/components/ActionButton/styles.js +5 -7
- package/build/admin/src/components/Avatar/index.d.ts +12 -0
- package/build/admin/src/components/Avatar/index.js +26 -0
- package/build/admin/src/components/ConfirmationDialog/index.js +23 -90
- package/build/admin/src/components/DiscussionStatus/index.js +13 -27
- package/build/admin/src/components/DiscussionThread/index.js +29 -83
- package/build/admin/src/components/DiscussionThreadItem/index.js +20 -59
- package/build/admin/src/components/DiscussionThreadItem/styles.d.ts +1 -1
- package/build/admin/src/components/DiscussionThreadItem/styles.js +8 -17
- package/build/admin/src/components/DiscussionThreadItemActions/index.js +163 -383
- package/build/admin/src/components/DiscussionThreadItemActions/styles.d.ts +1 -1
- package/build/admin/src/components/DiscussionThreadItemActions/styles.js +5 -9
- package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.js +52 -85
- package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.d.ts +1 -1
- package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.js +5 -8
- package/build/admin/src/components/DiscussionThreadItemFooter/index.js +27 -61
- package/build/admin/src/components/DiscussionThreadItemFooter/styles.d.ts +1 -1
- package/build/admin/src/components/DiscussionThreadItemFooter/styles.js +7 -14
- package/build/admin/src/components/DiscussionThreadItemReviewAction/index.js +91 -207
- package/build/admin/src/components/FormSwitch/index.d.ts +5 -9
- package/build/admin/src/components/FormSwitch/index.js +8 -32
- package/build/admin/src/components/FormSwitch/styles.d.ts +1 -1
- package/build/admin/src/components/FormSwitch/styles.js +5 -7
- package/build/admin/src/components/IconButton/styles.d.ts +1 -1
- package/build/admin/src/components/IconButton/styles.js +7 -13
- package/build/admin/src/components/Initializer/index.d.ts +4 -2
- package/build/admin/src/components/Initializer/index.js +7 -7
- package/build/admin/src/components/LoadingIndicatorOverlay/index.d.ts +1 -1
- package/build/admin/src/components/LoadingIndicatorOverlay/index.js +6 -12
- package/build/admin/src/components/LoadingIndicatorOverlay/styles.d.ts +1 -1
- package/build/admin/src/components/LoadingIndicatorOverlay/styles.js +7 -14
- package/build/admin/src/components/Nav/index.js +16 -62
- package/build/admin/src/components/PluginIcon/index.d.ts +1 -1
- package/build/admin/src/components/PluginIcon/index.js +5 -8
- package/build/admin/src/components/ReportsReviewModal/index.js +23 -62
- package/build/admin/src/components/ReportsReviewTable/index.js +112 -293
- package/build/admin/src/components/StatusBadge/index.d.ts +5 -9
- package/build/admin/src/components/StatusBadge/index.js +6 -16
- package/build/admin/src/components/StatusBadge/styles.d.ts +1 -1
- package/build/admin/src/components/StatusBadge/styles.js +5 -7
- package/build/admin/src/components/TableFilters/index.js +38 -91
- package/build/admin/src/components/TablePagination/index.d.ts +13 -11
- package/build/admin/src/components/TablePagination/index.js +19 -31
- package/build/admin/src/components/icons/comments.d.ts +4 -7
- package/build/admin/src/components/icons/comments.js +7 -18
- package/build/admin/src/components/icons/index.d.ts +1 -1
- package/build/admin/src/components/icons/index.js +5 -11
- package/build/admin/src/components/icons/lock.d.ts +5 -9
- package/build/admin/src/components/icons/lock.js +7 -24
- package/build/admin/src/components/icons/review.d.ts +5 -9
- package/build/admin/src/components/icons/review.js +7 -26
- package/build/admin/src/components/icons/unlock.d.ts +5 -9
- package/build/admin/src/components/icons/unlock.js +7 -24
- package/build/admin/src/hooks/useConfig.js +34 -42
- package/build/admin/src/index.js +84 -121
- package/build/admin/src/pages/App/index.js +23 -66
- package/build/admin/src/pages/App/reducer/actions.d.ts +4 -4
- package/build/admin/src/pages/App/reducer/actions.js +3 -3
- package/build/admin/src/pages/App/reducer/constants.d.ts +1 -1
- package/build/admin/src/pages/App/reducer/constants.js +1 -1
- package/build/admin/src/pages/App/reducer/index.d.ts +5 -10
- package/build/admin/src/pages/App/reducer/index.js +16 -19
- package/build/admin/src/pages/App/reducer/init.d.ts +1 -1
- package/build/admin/src/pages/App/reducer/init.js +4 -4
- package/build/admin/src/pages/App/reducer/selectors.d.ts +1 -1
- package/build/admin/src/pages/App/reducer/selectors.js +6 -8
- package/build/admin/src/pages/App/utils/api.js +8 -9
- package/build/admin/src/pages/ComingSoonPage/index.js +27 -62
- package/build/admin/src/pages/Details/components/DetailsEntity/index.js +39 -115
- package/build/admin/src/pages/Details/components/DetailsFilters/index.js +13 -33
- package/build/admin/src/pages/Details/components/DetailsFilters/styles.d.ts +1 -1
- package/build/admin/src/pages/Details/components/DetailsFilters/styles.js +5 -7
- package/build/admin/src/pages/Details/index.js +64 -183
- package/build/admin/src/pages/Discover/components/DiscoverTableRow/index.js +139 -314
- package/build/admin/src/pages/Discover/components/DiscoverTableRow/styles.d.ts +1 -1
- package/build/admin/src/pages/Discover/components/DiscoverTableRow/styles.js +5 -7
- package/build/admin/src/pages/Discover/index.js +98 -298
- package/build/admin/src/pages/Discover/utils/api.js +8 -15
- package/build/admin/src/pages/Discover/utils/filtersSchema.d.ts +8 -8
- package/build/admin/src/pages/Discover/utils/filtersSchema.js +6 -6
- package/build/admin/src/pages/Settings/components/RestartAlert/styles.d.ts +1 -1
- package/build/admin/src/pages/Settings/components/RestartAlert/styles.js +5 -7
- package/build/admin/src/pages/Settings/index.js +192 -678
- package/build/admin/src/pages/Settings/utils/api.js +44 -59
- package/build/admin/src/pages/utils/api.js +26 -51
- package/build/admin/src/permissions.d.ts +25 -25
- package/build/admin/src/permissions.js +28 -60
- package/build/admin/src/pluginId.d.ts +1 -1
- package/build/admin/src/pluginId.js +20 -41
- package/build/admin/src/reducers.d.ts +4 -9
- package/build/admin/src/reducers.js +5 -7
- package/build/admin/src/translations/fr.json +132 -1
- package/build/admin/src/utils/axiosInstance.js +15 -23
- package/build/admin/src/utils/constants.d.ts +17 -17
- package/build/admin/src/utils/constants.js +16 -20
- package/build/admin/src/utils/getApiUrl.d.ts +1 -1
- package/build/admin/src/utils/getApiUrl.js +1 -1
- package/build/admin/src/utils/getMessage.js +13 -17
- package/build/admin/src/utils/getRelatedGroups.js +2 -3
- package/build/admin/src/utils/getUrl.d.ts +1 -1
- package/build/admin/src/utils/getUrl.js +1 -1
- package/build/admin/src/utils/handleAPIError.js +12 -15
- package/build/admin/src/utils/index.js +16 -84
- package/build/admin/src/utils/parseRegExp.d.ts +3 -3
- package/build/admin/src/utils/parseRegExp.js +6 -6
- package/build/admin/src/utils/renderEntryTitle.js +7 -10
- package/build/admin/src/utils/renderInitials.d.ts +1 -1
- package/build/admin/src/utils/renderInitials.js +2 -3
- package/build/admin/src/utils/resolveCommentStatus.js +19 -25
- package/build/admin/src/utils/resolveCommentStatusColor.js +15 -15
- package/build/content-types/comment.d.ts +87 -87
- package/build/content-types/comment.js +87 -87
- package/build/content-types/index.d.ts +136 -136
- package/build/content-types/index.js +10 -12
- package/build/content-types/report.d.ts +41 -41
- package/build/content-types/report.js +41 -41
- package/build/package.json +5 -5
- package/build/permissions.d.ts +14 -14
- package/build/permissions.js +14 -14
- package/build/server/bootstrap.js +52 -58
- package/build/server/config/index.js +13 -13
- package/build/server/controllers/admin.js +128 -117
- package/build/server/controllers/client.js +15 -4
- package/build/server/controllers/index.js +6 -8
- package/build/server/controllers/utils/functions.d.ts +1 -1
- package/build/server/controllers/utils/parsers.d.ts +5 -10
- package/build/server/controllers/utils/parsers.js +46 -20
- package/build/server/destroy.d.ts +1 -1
- package/build/server/destroy.js +3 -2
- package/build/server/graphql/index.js +19 -29
- package/build/server/graphql/mutations/createAbuseReport.js +19 -23
- package/build/server/graphql/mutations/createComment.d.ts +1 -1
- package/build/server/graphql/mutations/createComment.js +19 -22
- package/build/server/graphql/mutations/index.js +19 -21
- package/build/server/graphql/mutations/removeComment.d.ts +1 -1
- package/build/server/graphql/mutations/removeComment.js +19 -23
- package/build/server/graphql/mutations/updateComment.d.ts +1 -1
- package/build/server/graphql/mutations/updateComment.js +19 -23
- package/build/server/graphql/queries/findAllFlat.d.ts +1 -1
- package/build/server/graphql/queries/findAllFlat.js +30 -40
- package/build/server/graphql/queries/findAllInHierarchy.d.ts +1 -2
- package/build/server/graphql/queries/findAllInHierarchy.js +25 -32
- package/build/server/graphql/queries/index.js +17 -19
- package/build/server/graphql/resolvers-config.js +10 -10
- package/build/server/graphql/types/comment-author.js +7 -8
- package/build/server/graphql/types/comment-nested.js +14 -15
- package/build/server/graphql/types/comment.js +13 -14
- package/build/server/graphql/types/create-comment-author.js +7 -8
- package/build/server/graphql/types/create-comment.js +7 -8
- package/build/server/graphql/types/create-report.js +7 -8
- package/build/server/graphql/types/id.js +13 -14
- package/build/server/graphql/types/identify-comment-author.js +4 -5
- package/build/server/graphql/types/index.js +21 -27
- package/build/server/graphql/types/remove-comment.js +6 -7
- package/build/server/graphql/types/report-reason.js +9 -9
- package/build/server/graphql/types/report.js +9 -10
- package/build/server/graphql/types/response-find-all.js +5 -6
- package/build/server/graphql/types/response-meta.js +4 -5
- package/build/server/graphql/types/response-pagination.js +9 -10
- package/build/server/graphql/types/update-comment.js +7 -8
- package/build/server/register.d.ts +1 -1
- package/build/server/register.js +3 -2
- package/build/server/routes/admin.d.ts +1 -1
- package/build/server/routes/admin.js +99 -99
- package/build/server/routes/client.d.ts +1 -1
- package/build/server/routes/client.js +79 -43
- package/build/server/routes/index.d.ts +4 -4
- package/build/server/routes/index.js +12 -14
- package/build/server/services/admin.js +257 -284
- package/build/server/services/client.js +54 -42
- package/build/server/services/common.js +33 -11
- package/build/server/services/graphql.js +113 -124
- package/build/server/services/utils/functions.d.ts +1 -1
- package/build/server/services/utils/functions.js +76 -109
- package/build/server/utils/constants.js +13 -14
- package/build/server/utils/error.d.ts +12 -16
- package/build/server/utils/error.js +23 -23
- package/build/server/utils/functions.d.ts +4 -12
- package/build/server/utils/functions.js +20 -34
- package/build/strapi-admin.js +4 -6
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/contentTypes.d.ts +7 -5
- package/content-types/comment.ts +93 -0
- package/content-types/index.ts +11 -0
- package/content-types/report.ts +50 -0
- package/jest.config.ts +22 -0
- package/package.json +45 -11
- package/permissions.ts +17 -0
- package/server/{bootstrap.js → bootstrap.ts} +12 -11
- package/server/config/index.ts +19 -0
- package/server/controllers/admin.ts +194 -0
- package/server/controllers/client.ts +220 -0
- package/server/controllers/index.ts +13 -0
- package/server/controllers/utils/functions.ts +27 -0
- package/server/controllers/utils/parsers.ts +59 -0
- package/server/destroy.ts +3 -0
- package/server/graphql/index.ts +27 -0
- package/server/graphql/mutations/createAbuseReport.ts +38 -0
- package/server/graphql/mutations/createComment.ts +41 -0
- package/server/graphql/mutations/index.ts +26 -0
- package/server/graphql/mutations/removeComment.ts +41 -0
- package/server/graphql/mutations/updateComment.ts +40 -0
- package/server/graphql/queries/findAllFlat.ts +58 -0
- package/server/graphql/queries/findAllInHierarchy.ts +47 -0
- package/server/graphql/queries/index.ts +22 -0
- package/server/graphql/resolvers-config.ts +13 -0
- package/server/graphql/types/comment-author.ts +12 -0
- package/server/graphql/types/comment-nested.ts +19 -0
- package/server/graphql/types/comment.ts +18 -0
- package/server/graphql/types/create-comment-author.ts +12 -0
- package/server/graphql/types/create-comment.ts +12 -0
- package/server/graphql/types/create-report.ts +12 -0
- package/server/graphql/types/id.ts +28 -0
- package/server/graphql/types/identify-comment-author.ts +9 -0
- package/server/graphql/types/index.ts +38 -0
- package/server/graphql/types/remove-comment.ts +11 -0
- package/server/graphql/types/report-reason.ts +12 -0
- package/server/graphql/types/report.ts +14 -0
- package/server/graphql/types/response-find-all.ts +10 -0
- package/server/graphql/types/response-meta.ts +9 -0
- package/server/graphql/types/response-pagination.ts +14 -0
- package/server/graphql/types/update-comment.ts +12 -0
- package/server/index.ts +20 -0
- package/server/register.ts +3 -0
- package/server/routes/admin.ts +118 -0
- package/server/routes/client.ts +95 -0
- package/server/routes/index.ts +25 -0
- package/server/services/admin.ts +406 -0
- package/server/services/client.ts +394 -0
- package/server/services/common.ts +503 -0
- package/server/services/{graphql.js → graphql.ts} +72 -43
- package/server/services/index.ts +13 -0
- package/server/services/utils/functions.ts +150 -0
- package/server/utils/constants.ts +23 -0
- package/server/utils/error.ts +44 -0
- package/server/utils/functions.ts +55 -0
- package/strapi-admin.ts +5 -0
- package/strapi-server.ts +77 -0
- package/tsconfig.json +38 -0
- package/types/common.d.ts +1 -0
- package/types/config.d.ts +35 -0
- package/types/constants.d.ts +3 -0
- package/types/contentTypes.ts +56 -0
- package/types/controllers.d.ts +125 -0
- package/types/graphql.d.ts +24 -0
- package/types/index.d.ts +7 -0
- package/types/services.d.ts +166 -0
- package/__mocks__/initSetup.js +0 -108
- package/admin/src/components/ActionButton/styles.js +0 -10
- package/admin/src/components/ConfirmationDialog/index.js +0 -56
- package/admin/src/components/DiscussionStatus/index.js +0 -33
- package/admin/src/components/DiscussionThread/index.js +0 -62
- package/admin/src/components/DiscussionThreadItem/index.js +0 -57
- package/admin/src/components/DiscussionThreadItemActions/index.js +0 -231
- package/admin/src/components/DiscussionThreadItemActions/styles.js +0 -7
- package/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.js +0 -80
- package/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.js +0 -6
- package/admin/src/components/DiscussionThreadItemFooter/index.js +0 -47
- package/admin/src/components/DiscussionThreadItemFooter/styles.js +0 -13
- package/admin/src/components/DiscussionThreadItemReviewAction/index.js +0 -131
- package/admin/src/components/FormSwitch/index.js +0 -18
- package/admin/src/components/FormSwitch/styles.js +0 -8
- package/admin/src/components/IconButton/styles.js +0 -14
- package/admin/src/components/LoadingIndicatorOverlay/index.js +0 -15
- package/admin/src/components/LoadingIndicatorOverlay/styles.js +0 -20
- package/admin/src/components/Nav/index.js +0 -49
- package/admin/src/components/ReportsReviewModal/index.js +0 -48
- package/admin/src/components/ReportsReviewTable/index.js +0 -160
- package/admin/src/components/StatusBadge/index.js +0 -17
- package/admin/src/components/StatusBadge/styles.js +0 -17
- package/admin/src/components/icons/comments.js +0 -9
- package/admin/src/components/icons/index.js +0 -6
- package/admin/src/components/icons/review.js +0 -18
- package/admin/src/components/icons/unlock.js +0 -20
- package/admin/src/hooks/useConfig.js +0 -49
- package/admin/src/pages/App/index.js +0 -71
- package/admin/src/pages/App/reducer/actions.js +0 -8
- package/admin/src/pages/App/reducer/constants.js +0 -4
- package/admin/src/pages/App/reducer/init.js +0 -7
- package/admin/src/pages/App/reducer/selectors.js +0 -35
- package/admin/src/pages/ComingSoonPage/index.js +0 -25
- package/admin/src/pages/Details/components/DetailsEntity/index.js +0 -84
- package/admin/src/pages/Details/components/DetailsFilters/index.js +0 -35
- package/admin/src/pages/Details/components/DetailsFilters/styles.js +0 -8
- package/admin/src/pages/Details/index.js +0 -136
- package/admin/src/pages/Discover/components/DiscoverTableRow/index.js +0 -180
- package/admin/src/pages/Discover/components/DiscoverTableRow/styles.js +0 -8
- package/admin/src/pages/Discover/index.js +0 -173
- package/admin/src/pages/Discover/utils/api.js +0 -14
- package/admin/src/pages/Discover/utils/filtersSchema.js +0 -9
- package/admin/src/pages/Settings/components/RestartAlert/styles.js +0 -8
- package/admin/src/pages/Settings/index.js +0 -392
- package/admin/src/pages/utils/api.js +0 -53
- package/admin/src/permissions.js +0 -19
- package/admin/src/pluginId.js +0 -5
- package/admin/src/reducers.js +0 -8
- package/admin/src/utils/constants.js +0 -25
- package/admin/src/utils/getApiUrl.js +0 -5
- package/admin/src/utils/getMessage.js +0 -21
- package/admin/src/utils/getRelatedGroups.js +0 -3
- package/admin/src/utils/getUrl.js +0 -5
- package/admin/src/utils/handleAPIError.js +0 -16
- package/admin/src/utils/index.js +0 -11
- package/admin/src/utils/parseRegExp.js +0 -10
- package/admin/src/utils/renderEntryTitle.js +0 -14
- package/admin/src/utils/renderInitials.js +0 -5
- package/admin/src/utils/resolveCommentStatus.js +0 -30
- package/admin/src/utils/resolveCommentStatusColor.js +0 -22
- package/content-types/comment.js +0 -93
- package/content-types/index.js +0 -11
- package/content-types/report.js +0 -54
- package/jest.config.js +0 -7
- package/permissions.js +0 -19
- package/server/config/index.js +0 -17
- package/server/controllers/admin.js +0 -168
- package/server/controllers/client.js +0 -114
- package/server/controllers/index.js +0 -9
- package/server/controllers/utils/__tests__/functions.test.js +0 -43
- package/server/controllers/utils/__tests__/parsers.test.js +0 -94
- package/server/controllers/utils/functions.js +0 -19
- package/server/controllers/utils/parsers.js +0 -23
- package/server/destroy.js +0 -5
- package/server/graphql/index.js +0 -25
- package/server/graphql/mutations/createAbuseReport.js +0 -25
- package/server/graphql/mutations/createComment.js +0 -25
- package/server/graphql/mutations/index.js +0 -21
- package/server/graphql/mutations/removeComment.js +0 -25
- package/server/graphql/mutations/updateComment.js +0 -25
- package/server/graphql/queries/findAllFlat.js +0 -35
- package/server/graphql/queries/findAllInHierarchy.js +0 -31
- package/server/graphql/queries/index.js +0 -19
- package/server/graphql/resolvers-config.js +0 -13
- package/server/graphql/types/comment-author.js +0 -9
- package/server/graphql/types/comment-nested.js +0 -16
- package/server/graphql/types/comment.js +0 -15
- package/server/graphql/types/create-comment-author.js +0 -9
- package/server/graphql/types/create-comment.js +0 -9
- package/server/graphql/types/create-report.js +0 -9
- package/server/graphql/types/id.js +0 -24
- package/server/graphql/types/identify-comment-author.js +0 -6
- package/server/graphql/types/index.js +0 -19
- package/server/graphql/types/remove-comment.js +0 -8
- package/server/graphql/types/report-reason.js +0 -10
- package/server/graphql/types/report.js +0 -11
- package/server/graphql/types/response-find-all.js +0 -7
- package/server/graphql/types/response-meta.js +0 -6
- package/server/graphql/types/response-pagination.js +0 -11
- package/server/graphql/types/update-comment.js +0 -9
- package/server/index.js +0 -22
- package/server/register.js +0 -5
- package/server/routes/admin.js +0 -124
- package/server/routes/client.js +0 -52
- package/server/routes/index.js +0 -15
- package/server/services/__tests__/common.test.js +0 -399
- package/server/services/admin.js +0 -296
- package/server/services/client.js +0 -263
- package/server/services/common.js +0 -295
- package/server/services/index.js +0 -13
- package/server/services/utils/__tests__/functions.test.js +0 -53
- package/server/services/utils/functions.js +0 -112
- package/server/utils/__tests__/functions.test.js +0 -17
- package/server/utils/constants.js +0 -26
- package/server/utils/error.js +0 -24
- package/server/utils/functions.js +0 -19
- package/strapi-admin.js +0 -3
- package/strapi-server.js +0 -49
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { StrapiGraphQLContext } from "../../types";
|
|
2
|
+
|
|
3
|
+
import getTypes from "./types";
|
|
4
|
+
import getQueries from "./queries";
|
|
5
|
+
import getMutations from "./mutations";
|
|
6
|
+
import getResolversConfig from "./resolvers-config";
|
|
7
|
+
import { getModelUid } from "../services/utils/functions";
|
|
8
|
+
|
|
9
|
+
export = async ({ strapi, config }: StrapiGraphQLContext) => {
|
|
10
|
+
const extensionService = strapi.plugin("graphql").service("extension");
|
|
11
|
+
extensionService.shadowCRUD(getModelUid("comment")).disableQueries();
|
|
12
|
+
extensionService.shadowCRUD(getModelUid("comment")).disableMutations();
|
|
13
|
+
extensionService.shadowCRUD(getModelUid("comment-report")).disableQueries();
|
|
14
|
+
extensionService.shadowCRUD(getModelUid("comment-report")).disableMutations();
|
|
15
|
+
|
|
16
|
+
extensionService.use(({ strapi, nexus }: StrapiGraphQLContext) => {
|
|
17
|
+
const types = getTypes({ strapi, nexus, config });
|
|
18
|
+
const queries = getQueries({ strapi, nexus, config });
|
|
19
|
+
const mutations = getMutations({ strapi, nexus, config });
|
|
20
|
+
const resolversConfig = getResolversConfig({ strapi, config });
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
types: [types, queries, mutations],
|
|
24
|
+
resolversConfig,
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { StrapiRequestContext } from "strapi-typed";
|
|
2
|
+
import {
|
|
3
|
+
IServiceClient,
|
|
4
|
+
NexusRequestProps,
|
|
5
|
+
StrapiGraphQLContext,
|
|
6
|
+
ToBeFixed,
|
|
7
|
+
} from "../../../types";
|
|
8
|
+
import { getPluginService } from "../../utils/functions";
|
|
9
|
+
|
|
10
|
+
export = ({ nexus }: StrapiGraphQLContext) => {
|
|
11
|
+
const { nonNull } = nexus;
|
|
12
|
+
|
|
13
|
+
return {
|
|
14
|
+
type: nonNull("Report"),
|
|
15
|
+
args: {
|
|
16
|
+
input: nonNull("CreateReport"),
|
|
17
|
+
},
|
|
18
|
+
async resolve(
|
|
19
|
+
_: Object,
|
|
20
|
+
args: NexusRequestProps,
|
|
21
|
+
ctx: StrapiRequestContext<never> & ToBeFixed
|
|
22
|
+
) {
|
|
23
|
+
const { input } = args;
|
|
24
|
+
const { state: { user = undefined } = {} } = ctx;
|
|
25
|
+
const { commentId, relation, ...body } = input;
|
|
26
|
+
try {
|
|
27
|
+
return await getPluginService<IServiceClient>("client").reportAbuse(
|
|
28
|
+
commentId,
|
|
29
|
+
relation,
|
|
30
|
+
body,
|
|
31
|
+
user
|
|
32
|
+
);
|
|
33
|
+
} catch (e: ToBeFixed) {
|
|
34
|
+
throw new Error(e);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { StrapiRequestContext } from "strapi-typed";
|
|
2
|
+
import {
|
|
3
|
+
IServiceClient,
|
|
4
|
+
StrapiGraphQLContext,
|
|
5
|
+
ToBeFixed,
|
|
6
|
+
} from "../../../types";
|
|
7
|
+
|
|
8
|
+
import { getPluginService } from "../../utils/functions";
|
|
9
|
+
|
|
10
|
+
type CreateCommentProps = {
|
|
11
|
+
input: ToBeFixed;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export = ({ nexus }: StrapiGraphQLContext) => {
|
|
15
|
+
const { nonNull } = nexus;
|
|
16
|
+
|
|
17
|
+
return {
|
|
18
|
+
type: nonNull("CommentSingle"),
|
|
19
|
+
args: {
|
|
20
|
+
input: nonNull("CreateComment"),
|
|
21
|
+
},
|
|
22
|
+
async resolve(
|
|
23
|
+
_: Object,
|
|
24
|
+
args: CreateCommentProps,
|
|
25
|
+
ctx: StrapiRequestContext<never> & ToBeFixed
|
|
26
|
+
) {
|
|
27
|
+
const { input } = args;
|
|
28
|
+
const { state: { user = undefined } = {} } = ctx;
|
|
29
|
+
const { relation, ...body } = input;
|
|
30
|
+
try {
|
|
31
|
+
return await getPluginService<IServiceClient>("client").create(
|
|
32
|
+
relation,
|
|
33
|
+
body,
|
|
34
|
+
user
|
|
35
|
+
);
|
|
36
|
+
} catch (e: ToBeFixed) {
|
|
37
|
+
throw new Error(e);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
import createComment from "./createComment";
|
|
4
|
+
import updateComment from "./updateComment";
|
|
5
|
+
import removeComment from "./removeComment";
|
|
6
|
+
import createAbuseReport from "./createAbuseReport";
|
|
7
|
+
|
|
8
|
+
export = (context: StrapiGraphQLContext) => {
|
|
9
|
+
const mutations = {
|
|
10
|
+
createComment,
|
|
11
|
+
updateComment,
|
|
12
|
+
removeComment,
|
|
13
|
+
createAbuseReport,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
return context.nexus.extendType({
|
|
17
|
+
type: "Mutation",
|
|
18
|
+
definition(t: INexusType) {
|
|
19
|
+
for (const [name, configFactory] of Object.entries(mutations)) {
|
|
20
|
+
const config = configFactory(context);
|
|
21
|
+
|
|
22
|
+
t.field(name, config);
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StrapiRequestContext } from "strapi-typed";
|
|
4
|
+
import {
|
|
5
|
+
IServiceClient,
|
|
6
|
+
NexusRequestProps,
|
|
7
|
+
StrapiGraphQLContext,
|
|
8
|
+
ToBeFixed,
|
|
9
|
+
} from "../../../types";
|
|
10
|
+
|
|
11
|
+
import { getPluginService } from "../../utils/functions";
|
|
12
|
+
|
|
13
|
+
export = ({ nexus }: StrapiGraphQLContext) => {
|
|
14
|
+
const { nonNull } = nexus;
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
type: nonNull("CommentSingle"),
|
|
18
|
+
args: {
|
|
19
|
+
input: nonNull("RemoveComment"),
|
|
20
|
+
},
|
|
21
|
+
async resolve(
|
|
22
|
+
_: Object,
|
|
23
|
+
args: NexusRequestProps,
|
|
24
|
+
ctx: StrapiRequestContext<never> & ToBeFixed
|
|
25
|
+
) {
|
|
26
|
+
const { input } = args;
|
|
27
|
+
const { state: { user = undefined } = {} } = ctx;
|
|
28
|
+
const { id, relation, author } = input;
|
|
29
|
+
try {
|
|
30
|
+
return await getPluginService<IServiceClient>("client").markAsRemoved(
|
|
31
|
+
id,
|
|
32
|
+
relation,
|
|
33
|
+
author?.id,
|
|
34
|
+
user
|
|
35
|
+
);
|
|
36
|
+
} catch (e: ToBeFixed) {
|
|
37
|
+
throw new Error(e);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StrapiRequestContext } from "strapi-typed";
|
|
4
|
+
import {
|
|
5
|
+
IServiceClient,
|
|
6
|
+
NexusRequestProps,
|
|
7
|
+
StrapiGraphQLContext,
|
|
8
|
+
ToBeFixed,
|
|
9
|
+
} from "../../../types";
|
|
10
|
+
import { getPluginService } from "../../utils/functions";
|
|
11
|
+
|
|
12
|
+
export = ({ nexus }: StrapiGraphQLContext) => {
|
|
13
|
+
const { nonNull } = nexus;
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
type: nonNull("CommentSingle"),
|
|
17
|
+
args: {
|
|
18
|
+
input: nonNull("UpdateComment"),
|
|
19
|
+
},
|
|
20
|
+
async resolve(
|
|
21
|
+
_: Object,
|
|
22
|
+
args: NexusRequestProps,
|
|
23
|
+
ctx: StrapiRequestContext<never> & ToBeFixed
|
|
24
|
+
) {
|
|
25
|
+
const { input } = args;
|
|
26
|
+
const { state: { user = undefined } = {} } = ctx;
|
|
27
|
+
const { id, relation, ...body } = input;
|
|
28
|
+
try {
|
|
29
|
+
return await getPluginService<IServiceClient>("client").update(
|
|
30
|
+
id,
|
|
31
|
+
relation,
|
|
32
|
+
body,
|
|
33
|
+
user
|
|
34
|
+
);
|
|
35
|
+
} catch (e: ToBeFixed) {
|
|
36
|
+
throw new Error(e);
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Id,
|
|
3
|
+
IServiceCommon,
|
|
4
|
+
IServiceGraphQL,
|
|
5
|
+
StrapiGraphQLContext,
|
|
6
|
+
ToBeFixed,
|
|
7
|
+
} from "../../../types";
|
|
8
|
+
|
|
9
|
+
import { isEmpty } from "lodash";
|
|
10
|
+
import contentType from "../../../content-types/comment";
|
|
11
|
+
import { flatInput } from "../../controllers/utils/parsers";
|
|
12
|
+
import { getPluginService } from "../../utils/functions";
|
|
13
|
+
|
|
14
|
+
type ResponseFindAllResolverProps = {
|
|
15
|
+
relation: Id;
|
|
16
|
+
filters: ToBeFixed;
|
|
17
|
+
sort: ToBeFixed;
|
|
18
|
+
pagination: ToBeFixed;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export = ({ strapi, nexus }: StrapiGraphQLContext) => {
|
|
22
|
+
const { nonNull, stringArg } = nexus;
|
|
23
|
+
const { service: getService } = strapi.plugin("graphql");
|
|
24
|
+
const { args } = getService("internals");
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
type: "ResponseFindAll",
|
|
28
|
+
args: {
|
|
29
|
+
relation: nonNull(stringArg()),
|
|
30
|
+
filters:
|
|
31
|
+
getPluginService<IServiceGraphQL>("gql").buildContentTypeFilters(
|
|
32
|
+
contentType
|
|
33
|
+
),
|
|
34
|
+
pagination: args.PaginationArg,
|
|
35
|
+
sort: args.SortArg,
|
|
36
|
+
},
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
async resolve(obj: Object, args: ResponseFindAllResolverProps) {
|
|
39
|
+
const { relation, filters, sort, pagination } = args;
|
|
40
|
+
return await getPluginService<IServiceCommon>("common").findAllFlat(
|
|
41
|
+
flatInput({
|
|
42
|
+
relation,
|
|
43
|
+
query: getPluginService<IServiceGraphQL>(
|
|
44
|
+
"gql"
|
|
45
|
+
).graphQLFiltersToStrapiQuery(filters, contentType),
|
|
46
|
+
sort,
|
|
47
|
+
pagination: pagination
|
|
48
|
+
? {
|
|
49
|
+
...pagination,
|
|
50
|
+
withCount: !isEmpty(pagination),
|
|
51
|
+
}
|
|
52
|
+
: undefined,
|
|
53
|
+
}),
|
|
54
|
+
undefined
|
|
55
|
+
);
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Id } from "strapi-typed";
|
|
2
|
+
import {
|
|
3
|
+
IServiceCommon,
|
|
4
|
+
IServiceGraphQL,
|
|
5
|
+
StrapiGraphQLContext,
|
|
6
|
+
ToBeFixed,
|
|
7
|
+
} from "../../../types";
|
|
8
|
+
|
|
9
|
+
import contentType from "../../../content-types/comment";
|
|
10
|
+
import { flatInput } from "../../controllers/utils/parsers";
|
|
11
|
+
import { getPluginService } from "../../utils/functions";
|
|
12
|
+
|
|
13
|
+
type findAllInHierarchyProps = {
|
|
14
|
+
relation: Id;
|
|
15
|
+
filters: ToBeFixed;
|
|
16
|
+
sort: ToBeFixed;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export = ({ strapi, nexus }: StrapiGraphQLContext) => {
|
|
20
|
+
const { nonNull, list, stringArg } = nexus;
|
|
21
|
+
const { service: getService } = strapi.plugin("graphql");
|
|
22
|
+
const { args } = getService("internals");
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
type: nonNull(list("CommentNested")),
|
|
26
|
+
args: {
|
|
27
|
+
relation: nonNull(stringArg()),
|
|
28
|
+
sort: args.SortArg,
|
|
29
|
+
},
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
async resolve(obj: Object, args: findAllInHierarchyProps) {
|
|
32
|
+
const { relation, filters, sort } = args;
|
|
33
|
+
return await getPluginService<IServiceCommon>(
|
|
34
|
+
"common"
|
|
35
|
+
).findAllInHierarchy({
|
|
36
|
+
...flatInput({
|
|
37
|
+
relation,
|
|
38
|
+
query: getPluginService<IServiceGraphQL>(
|
|
39
|
+
"gql"
|
|
40
|
+
).graphQLFiltersToStrapiQuery(filters, contentType),
|
|
41
|
+
sort,
|
|
42
|
+
}),
|
|
43
|
+
dropBlockedThreads: true,
|
|
44
|
+
});
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
import findAllFlat from "./findAllFlat";
|
|
4
|
+
import findAllInHierarchy from "./findAllInHierarchy";
|
|
5
|
+
|
|
6
|
+
export = (context: StrapiGraphQLContext) => {
|
|
7
|
+
const queries = {
|
|
8
|
+
findAllFlat,
|
|
9
|
+
findAllInHierarchy,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
return context.nexus.extendType({
|
|
13
|
+
type: "Query",
|
|
14
|
+
definition(t: INexusType) {
|
|
15
|
+
for (const [name, configFactory] of Object.entries(queries)) {
|
|
16
|
+
const config = configFactory(context);
|
|
17
|
+
|
|
18
|
+
t.field(name, config);
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { StrapiGraphQLContext } from "../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ config }: StrapiGraphQLContext) => {
|
|
4
|
+
const { gql: { auth = false } = {} } = config;
|
|
5
|
+
return {
|
|
6
|
+
"Query.findAllFlat": { auth },
|
|
7
|
+
"Query.findAllInHierarchy": { auth },
|
|
8
|
+
"Mutation.createComment": { auth },
|
|
9
|
+
"Mutation.updateComment": { auth },
|
|
10
|
+
"Mutation.removeComment": { auth },
|
|
11
|
+
"Mutation.createAbuseReport": { auth },
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.objectType({
|
|
5
|
+
name: "CommentAuthor",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.id("id");
|
|
8
|
+
t.nonNull.string("name");
|
|
9
|
+
t.string("email");
|
|
10
|
+
t.string("avatar");
|
|
11
|
+
},
|
|
12
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.objectType({
|
|
5
|
+
name: "CommentNested",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.id("id");
|
|
8
|
+
t.nonNull.string("content");
|
|
9
|
+
t.boolean("blocked");
|
|
10
|
+
t.boolean("blockedThread");
|
|
11
|
+
t.string("approvalStatus");
|
|
12
|
+
t.boolean("removed");
|
|
13
|
+
t.field("threadOf", { type: "CommentSingle" });
|
|
14
|
+
t.list.field("children", { type: "CommentNested" });
|
|
15
|
+
t.field("author", { type: "CommentAuthor" });
|
|
16
|
+
t.string("createdAt");
|
|
17
|
+
t.string("updatedAt");
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.objectType({
|
|
5
|
+
name: "CommentSingle",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.id("id");
|
|
8
|
+
t.nonNull.string("content");
|
|
9
|
+
t.boolean("blocked");
|
|
10
|
+
t.boolean("blockedThread");
|
|
11
|
+
t.boolean("removed");
|
|
12
|
+
t.string("approvalStatus");
|
|
13
|
+
t.field("threadOf", { type: "CommentSingle" });
|
|
14
|
+
t.field("author", { type: "CommentAuthor" });
|
|
15
|
+
t.string("createdAt");
|
|
16
|
+
t.string("updatedAt");
|
|
17
|
+
},
|
|
18
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.inputObjectType({
|
|
5
|
+
name: "CreateCommentAuthor",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.nonNull.id("id");
|
|
8
|
+
t.nonNull.string("name");
|
|
9
|
+
t.string("email");
|
|
10
|
+
t.string("avatar");
|
|
11
|
+
},
|
|
12
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.inputObjectType({
|
|
5
|
+
name: "CreateComment",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.nonNull.string("content");
|
|
8
|
+
t.nonNull.string("relation");
|
|
9
|
+
t.id("threadOf");
|
|
10
|
+
t.field("author", { type: "CreateCommentAuthor" });
|
|
11
|
+
},
|
|
12
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.inputObjectType({
|
|
5
|
+
name: "CreateReport",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.id("commentId");
|
|
8
|
+
t.nonNull.string("relation");
|
|
9
|
+
t.nonNull.string("content");
|
|
10
|
+
t.field("reason", { type: "ReportReason" });
|
|
11
|
+
},
|
|
12
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Primitive } from "strapi-typed";
|
|
2
|
+
import { NexusAst, StrapiGraphQLContext } from "../../../types";
|
|
3
|
+
|
|
4
|
+
const { isNumber, parseInt } = require("lodash");
|
|
5
|
+
const { Kind } = require("graphql");
|
|
6
|
+
|
|
7
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
8
|
+
nexus.scalarType({
|
|
9
|
+
name: "Id",
|
|
10
|
+
asNexusMethod: "id",
|
|
11
|
+
description: "Id as string or int",
|
|
12
|
+
parseValue(value: Primitive) {
|
|
13
|
+
const parsedValue = parseInt(value);
|
|
14
|
+
if (isNumber(parsedValue)) {
|
|
15
|
+
return parsedValue;
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
},
|
|
19
|
+
serialize(value: Primitive) {
|
|
20
|
+
return value;
|
|
21
|
+
},
|
|
22
|
+
parseLiteral(ast: NexusAst) {
|
|
23
|
+
if ([Kind.INT, Kind.STRING].includes(ast.kind)) {
|
|
24
|
+
return ast.value;
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
},
|
|
28
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
import Id from "./id";
|
|
4
|
+
import Comment from "./comment";
|
|
5
|
+
import CommentNested from "./comment-nested";
|
|
6
|
+
import CommentAuthor from "./comment-author";
|
|
7
|
+
import CreateComment from "./create-comment";
|
|
8
|
+
import CreateCommentAuthor from "./create-comment-author";
|
|
9
|
+
import UpdateComment from "./update-comment";
|
|
10
|
+
import RemoveComment from "./remove-comment";
|
|
11
|
+
import IdentifyCommentAuthor from "./identify-comment-author";
|
|
12
|
+
import Report from "./report";
|
|
13
|
+
import ReportReason from "./report-reason";
|
|
14
|
+
import CreateReport from "./create-report";
|
|
15
|
+
import ResponsePagination from "./response-pagination";
|
|
16
|
+
import ResponseMeta from "./response-meta";
|
|
17
|
+
import ResponseFindAll from "./response-find-all";
|
|
18
|
+
|
|
19
|
+
const typesFactories = [
|
|
20
|
+
Id,
|
|
21
|
+
Comment,
|
|
22
|
+
CommentNested,
|
|
23
|
+
CommentAuthor,
|
|
24
|
+
CreateComment,
|
|
25
|
+
CreateCommentAuthor,
|
|
26
|
+
UpdateComment,
|
|
27
|
+
RemoveComment,
|
|
28
|
+
IdentifyCommentAuthor,
|
|
29
|
+
Report,
|
|
30
|
+
ReportReason,
|
|
31
|
+
CreateReport,
|
|
32
|
+
ResponsePagination,
|
|
33
|
+
ResponseMeta,
|
|
34
|
+
ResponseFindAll,
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
export = (context: StrapiGraphQLContext) =>
|
|
38
|
+
typesFactories.map((factory) => factory(context));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.inputObjectType({
|
|
5
|
+
name: "RemoveComment",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.id("id");
|
|
8
|
+
t.nonNull.string("relation");
|
|
9
|
+
t.field("author", { type: "IdentifyCommentAuthor" });
|
|
10
|
+
},
|
|
11
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus, config }: StrapiGraphQLContext) => {
|
|
4
|
+
const { reportReasons } = config;
|
|
5
|
+
return nexus.enumType({
|
|
6
|
+
name: "ReportReason",
|
|
7
|
+
description: "Reason of abuse report",
|
|
8
|
+
members: {
|
|
9
|
+
...reportReasons,
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.objectType({
|
|
5
|
+
name: "Report",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.id("id");
|
|
8
|
+
t.nonNull.string("content");
|
|
9
|
+
t.field("reason", { type: "ReportReason" });
|
|
10
|
+
t.field("related", { type: "CommentSingle" });
|
|
11
|
+
t.string("createdAt");
|
|
12
|
+
t.string("updatedAt");
|
|
13
|
+
},
|
|
14
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.objectType({
|
|
5
|
+
name: "ResponseFindAll",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.list.field("data", { type: "CommentSingle" });
|
|
8
|
+
t.field("meta", { type: "ResponseMeta" });
|
|
9
|
+
},
|
|
10
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.objectType({
|
|
5
|
+
name: "ResponsePagination",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.int("page");
|
|
8
|
+
t.int("pageSize");
|
|
9
|
+
t.int("pageCount");
|
|
10
|
+
t.int("total");
|
|
11
|
+
t.int("start");
|
|
12
|
+
t.int("limit");
|
|
13
|
+
},
|
|
14
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { INexusType, StrapiGraphQLContext } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export = ({ nexus }: StrapiGraphQLContext) =>
|
|
4
|
+
nexus.inputObjectType({
|
|
5
|
+
name: "UpdateComment",
|
|
6
|
+
definition(t: INexusType) {
|
|
7
|
+
t.id("id");
|
|
8
|
+
t.nonNull.string("content");
|
|
9
|
+
t.nonNull.string("relation");
|
|
10
|
+
t.field("author", { type: "IdentifyCommentAuthor" });
|
|
11
|
+
},
|
|
12
|
+
});
|
package/server/index.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import register from "./register";
|
|
2
|
+
import bootstrap from "./bootstrap";
|
|
3
|
+
import destroy from "./destroy";
|
|
4
|
+
import config from "./config";
|
|
5
|
+
import controllers from "./controllers";
|
|
6
|
+
import routes from "./routes";
|
|
7
|
+
import services from "./services";
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
register,
|
|
11
|
+
bootstrap,
|
|
12
|
+
destroy,
|
|
13
|
+
config,
|
|
14
|
+
controllers,
|
|
15
|
+
routes,
|
|
16
|
+
services,
|
|
17
|
+
contentTypes: {},
|
|
18
|
+
policies: {},
|
|
19
|
+
middlewares: {},
|
|
20
|
+
};
|