strapi-plugin-comments 2.1.0-beta.1 → 2.1.0

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.
@@ -1,132 +1,132 @@
1
1
  {
2
- "plugin.name": "Comentários",
3
- "plugin.section": "plugin de comentários",
4
- "plugin.section.item": "Configurações",
5
- "common.button.back": "Voltar",
6
- "nav.header.moderation": "Moderação",
7
- "nav.header.settings": "Configurações",
8
- "nav.item.updates": "Updates",
9
- "nav.item.discover": "Descobrir",
10
- "nav.item.reports": "Reports",
11
- "nav.item.settings": "Configurações",
12
- "page.common.item.status.OPEN": "Abrir",
13
- "page.common.item.status.PENDING": "Pendente",
14
- "page.common.item.status.BLOCKED": "Bloqueado",
15
- "page.common.item.status.APPROVED": "Aprovado",
16
- "page.common.item.status.TO_REVIEW": "Para revisar ({count, number})",
17
- "page.common.item.status.REJECTED": "Rejeitado",
18
- "page.common.item.status.REMOVED": "Removido pelo autor",
19
- "page.updates.header": "Atualizações recentes",
20
- "page.discover.header": "Descubra tópicos",
21
- "page.discover.header.count": "entries found",
22
- "page.discover.table.header.id": "ID",
23
- "page.discover.table.header.author": "Autor",
24
- "page.discover.table.header.message": "Messagem",
25
- "page.discover.table.header.thread": "Thread of",
26
- "page.discover.table.header.entry": "Entry",
27
- "page.discover.table.header.lastUpdate": "Ultima atualização",
28
- "page.discover.table.header.status": "Status",
29
- "page.discover.table.header.actions": "Actions",
30
- "page.discover.table.cell.thread": "Comentário #{id}",
31
- "page.discover.table.action.display": "Display",
32
- "page.discover.table.action.reports": "Reports",
33
- "page.discover.table.empty": "Você ainda não tem comentários.",
34
- "page.discover.table.empty.search": "Nenhum comentário corresponde à pesquisa.",
35
- "page.discover.table.filters": "Filtrando",
36
- "page.discover.table.reports.review": "Review reports",
37
- "page.details.header": "Painel de discussão",
38
- "page.details.header.description": "Pesquise e gerencie a discussão relacionada à entidade",
39
- "page.details.panel.discussion": "Discussão",
40
- "page.details.panel.discussion.nav.drilldown": "Pesquisa detalhada",
41
- "page.details.panel.discussion.nav.back": "Ir para o topo",
42
- "page.details.panel.discussion.warnings.reports.description": "Abrir reports",
43
- "page.details.panel.discussion.warnings.reports.review": "Review",
44
- "page.details.panel.discussion.warnings.reports.dialog.list": "Reports",
45
- "page.details.panel.discussion.warnings.reports.dialog.header": "Moderation: Review open reports",
46
- "page.details.panel.discussion.warnings.reports.dialog.reason": "Razão",
47
- "page.details.panel.discussion.warnings.reports.dialog.reason.BAD_LANGUAGE": "Linguagem imprópria",
48
- "page.details.panel.discussion.warnings.reports.dialog.reason.DISCRIMINATION": "Discrimination",
49
- "page.details.panel.discussion.warnings.reports.dialog.reason.OTHER": "Outros",
50
- "page.details.panel.discussion.warnings.reports.dialog.content": "Conteúdo",
51
- "page.details.panel.discussion.warnings.reports.dialog.createdAt": "Issue date",
52
- "page.details.panel.discussion.warnings.reports.dialog.status": "Status",
53
- "page.details.panel.discussion.warnings.reports.dialog.status.OPEN": "Aberto",
54
- "page.details.panel.discussion.warnings.reports.dialog.status.RESOLVED": "Resolvido",
55
- "page.details.panel.discussion.warnings.reports.dialog.actions": "Ações",
56
- "page.details.panel.discussion.warnings.reports.dialog.actions.resolve": "Resolver",
57
- "page.details.panel.discussion.warnings.reports.dialog.confirmation.success": "Open report has been resolved",
58
- "page.details.panel.discussion.status.blocked": "Bloqueado",
59
- "page.details.panel.entity": "Entity details",
60
- "page.details.panel.status": "Discussion is",
61
- "page.details.panel.status.open": "Open",
62
- "page.details.panel.status.blocked": "Bloqueado",
63
- "page.details.panel.status.pending": "Pendente",
64
- "page.details.panel.loading": "Fetching entity...",
65
- "page.details.actions.comment.block": "Bloquear comentário",
66
- "page.details.actions.comment.block.confirmation.header": "Moderação: Bloquear comentário",
67
- "page.details.actions.comment.block.confirmation.description": "Deseja mesmo bloquear este comentário?",
68
- "page.details.actions.comment.block.confirmation.button.confirm": "Sim, bloqueie",
69
- "page.details.actions.comment.block.confirmation.success": "O comentário foi bloqueado",
70
- "page.details.actions.comment.unblock": "Desbloquear comentário",
71
- "page.details.actions.comment.unblock.confirmation.success": "O comentário foi desbloqueado",
72
- "page.details.actions.comment.reports.review": "Análise",
73
- "page.details.actions.thread.block": "Bloquear thread",
74
- "page.details.actions.thread.block.confirmation.header": "Moderação: Bloquear thread",
75
- "page.details.actions.thread.block.confirmation.description": "Você realmente quer bloquear todo o thread? Nenhuma outra discussão será permitida.",
76
- "page.details.actions.thread.block.confirmation.button.confirm": "Sim, bloqueie",
77
- "page.details.actions.thread.block.confirmation.success": "A thread foi bloqueada",
78
- "page.details.actions.thread.unblock": "Desbloquear thread",
79
- "page.details.actions.thread.unblock.confirmation.success": "A Thread foi desbloqueado",
80
- "page.details.actions.comment.approve.confirmation.success": "O comentário foi aprovado",
81
- "page.details.actions.comment.reject.confirmation.success": "O comentário foi rejeitado",
82
- "page.details.filters.label": "View",
83
- "page.details.filters.removed.visibility": "Mostrar comentários removidos",
84
- "page.coming.soon": "Aguarde o que está por vir...",
85
- "page.settings": "Configurações",
86
- "page.settings.header.title": "Comentários",
87
- "page.settings.header.description": "Configure seus recursos de moderação de comentários",
88
- "page.settings.actions.submit": "Salvar",
89
- "page.settings.actions.restore": "Restaurar configurações originais",
90
- "page.settings.actions.restart": "Restart Strapi",
91
- "page.settings.section.general": "Configurações gerais",
92
- "page.settings.section.additional": "Configurações adicionais",
93
- "page.settings.section.restore": "Restaurar configurações originais",
94
- "page.settings.section.restore.subtitle": "Descartando todas as configurações aplicadas e voltando para as configurações padrão do plugin. Use razoável.",
95
- "page.settings.form.enabledCollections.label": "Ativar comentários apenas para",
96
- "page.settings.form.enabledCollections.placeholder": "Selecione uma ou mais collection",
97
- "page.settings.form.enabledCollections.hint": "Se nenhum for selecionado, todos os tipos de conteúdo serão habilitados",
98
- "page.settings.form.contentTypesSettings.label": "Tipos de conteúdo",
99
- "page.settings.form.contentTypesSettings.tooltip": "Configuração personalizada por tipo de conteúdo",
100
- "page.settings.form.moderatorRoles.label": "Envie notificações importantes para",
101
- "page.settings.form.moderatorRoles.placeholder": "Selecione um ou mais Roles",
102
- "page.settings.form.moderatorRoles.hint": "Roles que serão notificadas pelo plugin sobre ações significativas a serem executadas",
103
- "page.settings.form.badWords.label": "Filtragem de palavrões",
104
- "page.settings.form.badWords.hint": "Se ativado, todas as postagens/atualizações de comentários serão verificadas em relação a palavras impróprias",
105
- "page.settings.form.gqlAuth.label": "GraphQL queries authorization",
106
- "page.settings.form.gqlAuth.hint": "Se ativado, as queries e mutations da API GraphQL podem ser acionadas apenas por usuários autenticados do Strapi. Caso contrário, a API permanece aberta.",
107
- "page.settings.form.approvalFlow.label": "Fluxo de aprovação",
108
- "page.settings.form.approvalFlow.hint": "Os comentários associados ao tipo de conteúdo \"{name}\" passarão pelo fluxo de aprovação manual",
109
- "page.settings.form.entryLabel.label": "Campos de título",
110
- "page.settings.form.entryLabel.placeholder": "Selecione pelo menos um ou deixe em branco para aplicar os padrões",
111
- "page.settings.form.entryLabel.hint": "Se deixado em branco, a renderização do título terá os seguintes campos ordenados: \"Title\", \"Subject\" & \"Name\"",
112
- "page.settings.actions.restore.confirmation.header": "Restaurar a configuração padrão",
113
- "page.settings.actions.restore.confirmation.description": "Você está prestes a restaurar a configuração do plug-in para seus valores padrão. Pode ter um impacto destrutivo no conteúdo já coletado. Você realmente quer continuar?",
114
- "page.settings.actions.restore.confirmation.button.confirm": "Sim, quero restaurar",
115
- "page.settings.actions.restart.alert.title": "Strapi requer reinicialização",
116
- "page.settings.actions.restart.alert.description": "Você fez uma alteração de configuração que exige que seu aplicativo Strapi seja reiniciado para ter efeito no schema do GraphQL. Faça isso manualmente ou usando o trigger abaixo.",
117
- "page.settings.actions.restart.alert.close": "Descartar",
118
- "page.settings.notification.fetch.error": "Falha ao buscar a configuração. Tentando novamente...",
119
- "page.settings.notification.submit.success": "A configuração foi salva com sucesso",
120
- "page.settings.notification.submit.error": "Falha ao salvar a configuração. Tente novamente.",
121
- "page.settings.notification.restore.success": "A configuração foi restaurada com sucesso",
122
- "page.settings.notification.restore.error": "Falha ao restaurar a configuração. Tente novamente.",
123
- "page.settings.notification.restart.success": "O aplicativo foi reiniciado com sucesso",
124
- "page.settings.notification.restart.error": "Falha ao reiniciar seu aplicativo. Tente fazer manualmente.",
125
- "page.settings.loading": "Buscando configuração...",
126
- "compontents.confirmation.dialog.header": "Confirmação",
127
- "compontents.confirmation.dialog.description": "Você realmente deseja realizar esta ação?",
128
- "compontents.confirmation.dialog.button.confirm": "Sim eu quero",
129
- "compontents.confirmation.dialog.button.cancel": "Cancelar",
130
- "compontents.toogle.enabled": "Habilitado",
131
- "compontents.toogle.disabled": "Desabilitado"
2
+ "plugin.name": "Comentários",
3
+ "plugin.section": "plugin de comentários",
4
+ "plugin.section.item": "Configurações",
5
+ "common.button.back": "Voltar",
6
+ "nav.header.moderation": "Moderação",
7
+ "nav.header.settings": "Configurações",
8
+ "nav.item.updates": "Updates",
9
+ "nav.item.discover": "Descobrir",
10
+ "nav.item.reports": "Reports",
11
+ "nav.item.settings": "Configurações",
12
+ "page.common.item.status.OPEN": "Abrir",
13
+ "page.common.item.status.PENDING": "Pendente",
14
+ "page.common.item.status.BLOCKED": "Bloqueado",
15
+ "page.common.item.status.APPROVED": "Aprovado",
16
+ "page.common.item.status.TO_REVIEW": "Para revisar ({count, number})",
17
+ "page.common.item.status.REJECTED": "Rejeitado",
18
+ "page.common.item.status.REMOVED": "Removido pelo autor",
19
+ "page.updates.header": "Atualizações recentes",
20
+ "page.discover.header": "Descubra tópicos",
21
+ "page.discover.header.count": "entries found",
22
+ "page.discover.table.header.id": "ID",
23
+ "page.discover.table.header.author": "Autor",
24
+ "page.discover.table.header.message": "Messagem",
25
+ "page.discover.table.header.thread": "Thread of",
26
+ "page.discover.table.header.entry": "Entry",
27
+ "page.discover.table.header.lastUpdate": "Ultima atualização",
28
+ "page.discover.table.header.status": "Status",
29
+ "page.discover.table.header.actions": "Actions",
30
+ "page.discover.table.cell.thread": "Comentário #{id}",
31
+ "page.discover.table.action.display": "Display",
32
+ "page.discover.table.action.reports": "Reports",
33
+ "page.discover.table.empty": "Você ainda não tem comentários.",
34
+ "page.discover.table.empty.search": "Nenhum comentário corresponde à pesquisa.",
35
+ "page.discover.table.filters": "Filtrando",
36
+ "page.discover.table.reports.review": "Review reports",
37
+ "page.details.header": "Painel de discussão",
38
+ "page.details.header.description": "Pesquise e gerencie a discussão relacionada à entidade",
39
+ "page.details.panel.discussion": "Discussão",
40
+ "page.details.panel.discussion.nav.drilldown": "Pesquisa detalhada",
41
+ "page.details.panel.discussion.nav.back": "Ir para o topo",
42
+ "page.details.panel.discussion.warnings.reports.description": "Abrir reports",
43
+ "page.details.panel.discussion.warnings.reports.review": "Review",
44
+ "page.details.panel.discussion.warnings.reports.dialog.list": "Reports",
45
+ "page.details.panel.discussion.warnings.reports.dialog.header": "Moderation: Review open reports",
46
+ "page.details.panel.discussion.warnings.reports.dialog.reason": "Razão",
47
+ "page.details.panel.discussion.warnings.reports.dialog.reason.BAD_LANGUAGE": "Linguagem imprópria",
48
+ "page.details.panel.discussion.warnings.reports.dialog.reason.DISCRIMINATION": "Discrimination",
49
+ "page.details.panel.discussion.warnings.reports.dialog.reason.OTHER": "Outros",
50
+ "page.details.panel.discussion.warnings.reports.dialog.content": "Conteúdo",
51
+ "page.details.panel.discussion.warnings.reports.dialog.createdAt": "Issue date",
52
+ "page.details.panel.discussion.warnings.reports.dialog.status": "Status",
53
+ "page.details.panel.discussion.warnings.reports.dialog.status.OPEN": "Aberto",
54
+ "page.details.panel.discussion.warnings.reports.dialog.status.RESOLVED": "Resolvido",
55
+ "page.details.panel.discussion.warnings.reports.dialog.actions": "Ações",
56
+ "page.details.panel.discussion.warnings.reports.dialog.actions.resolve": "Resolver",
57
+ "page.details.panel.discussion.warnings.reports.dialog.confirmation.success": "Open report has been resolved",
58
+ "page.details.panel.discussion.status.blocked": "Bloqueado",
59
+ "page.details.panel.entity": "Entity details",
60
+ "page.details.panel.status": "Discussion is",
61
+ "page.details.panel.status.open": "Open",
62
+ "page.details.panel.status.blocked": "Bloqueado",
63
+ "page.details.panel.status.pending": "Pendente",
64
+ "page.details.panel.loading": "Fetching entity...",
65
+ "page.details.actions.comment.block": "Bloquear comentário",
66
+ "page.details.actions.comment.block.confirmation.header": "Moderação: Bloquear comentário",
67
+ "page.details.actions.comment.block.confirmation.description": "Deseja mesmo bloquear este comentário?",
68
+ "page.details.actions.comment.block.confirmation.button.confirm": "Sim, bloqueie",
69
+ "page.details.actions.comment.block.confirmation.success": "O comentário foi bloqueado",
70
+ "page.details.actions.comment.unblock": "Desbloquear comentário",
71
+ "page.details.actions.comment.unblock.confirmation.success": "O comentário foi desbloqueado",
72
+ "page.details.actions.comment.reports.review": "Análise",
73
+ "page.details.actions.thread.block": "Bloquear thread",
74
+ "page.details.actions.thread.block.confirmation.header": "Moderação: Bloquear thread",
75
+ "page.details.actions.thread.block.confirmation.description": "Você realmente quer bloquear todo o thread? Nenhuma outra discussão será permitida.",
76
+ "page.details.actions.thread.block.confirmation.button.confirm": "Sim, bloqueie",
77
+ "page.details.actions.thread.block.confirmation.success": "A thread foi bloqueada",
78
+ "page.details.actions.thread.unblock": "Desbloquear thread",
79
+ "page.details.actions.thread.unblock.confirmation.success": "A Thread foi desbloqueado",
80
+ "page.details.actions.comment.approve.confirmation.success": "O comentário foi aprovado",
81
+ "page.details.actions.comment.reject.confirmation.success": "O comentário foi rejeitado",
82
+ "page.details.filters.label": "View",
83
+ "page.details.filters.removed.visibility": "Mostrar comentários removidos",
84
+ "page.coming.soon": "Aguarde o que está por vir...",
85
+ "page.settings": "Configurações",
86
+ "page.settings.header.title": "Comentários",
87
+ "page.settings.header.description": "Configure seus recursos de moderação de comentários",
88
+ "page.settings.actions.submit": "Salvar",
89
+ "page.settings.actions.restore": "Restaurar configurações originais",
90
+ "page.settings.actions.restart": "Restart Strapi",
91
+ "page.settings.section.general": "Configurações gerais",
92
+ "page.settings.section.additional": "Configurações adicionais",
93
+ "page.settings.section.restore": "Restaurar configurações originais",
94
+ "page.settings.section.restore.subtitle": "Descartando todas as configurações aplicadas e voltando para as configurações padrão do plugin. Use razoável.",
95
+ "page.settings.form.enabledCollections.label": "Ativar comentários apenas para",
96
+ "page.settings.form.enabledCollections.placeholder": "Selecione uma ou mais collection",
97
+ "page.settings.form.enabledCollections.hint": "Se nenhum for selecionado, todos os tipos de conteúdo serão habilitados",
98
+ "page.settings.form.contentTypesSettings.label": "Tipos de conteúdo",
99
+ "page.settings.form.contentTypesSettings.tooltip": "Configuração personalizada por tipo de conteúdo",
100
+ "page.settings.form.moderatorRoles.label": "Envie notificações importantes para",
101
+ "page.settings.form.moderatorRoles.placeholder": "Selecione um ou mais Roles",
102
+ "page.settings.form.moderatorRoles.hint": "Roles que serão notificadas pelo plugin sobre ações significativas a serem executadas",
103
+ "page.settings.form.badWords.label": "Filtragem de palavrões",
104
+ "page.settings.form.badWords.hint": "Se ativado, todas as postagens/atualizações de comentários serão verificadas em relação a palavras impróprias",
105
+ "page.settings.form.gqlAuth.label": "GraphQL queries authorization",
106
+ "page.settings.form.gqlAuth.hint": "Se ativado, as queries e mutations da API GraphQL podem ser acionadas apenas por usuários autenticados do Strapi. Caso contrário, a API permanece aberta.",
107
+ "page.settings.form.approvalFlow.label": "Fluxo de aprovação",
108
+ "page.settings.form.approvalFlow.hint": "Os comentários associados ao tipo de conteúdo \"{name}\" passarão pelo fluxo de aprovação manual",
109
+ "page.settings.form.entryLabel.label": "Campos de título",
110
+ "page.settings.form.entryLabel.placeholder": "Selecione pelo menos um ou deixe em branco para aplicar os padrões",
111
+ "page.settings.form.entryLabel.hint": "Se deixado em branco, a renderização do título terá os seguintes campos ordenados: \"Title\", \"Subject\" & \"Name\"",
112
+ "page.settings.actions.restore.confirmation.header": "Restaurar a configuração padrão",
113
+ "page.settings.actions.restore.confirmation.description": "Você está prestes a restaurar a configuração do plug-in para seus valores padrão. Pode ter um impacto destrutivo no conteúdo já coletado. Você realmente quer continuar?",
114
+ "page.settings.actions.restore.confirmation.button.confirm": "Sim, quero restaurar",
115
+ "page.settings.actions.restart.alert.title": "Strapi requer reinicialização",
116
+ "page.settings.actions.restart.alert.description": "Você fez uma alteração de configuração que exige que seu aplicativo Strapi seja reiniciado para ter efeito no schema do GraphQL. Faça isso manualmente ou usando o trigger abaixo.",
117
+ "page.settings.actions.restart.alert.close": "Descartar",
118
+ "page.settings.notification.fetch.error": "Falha ao buscar a configuração. Tentando novamente...",
119
+ "page.settings.notification.submit.success": "A configuração foi salva com sucesso",
120
+ "page.settings.notification.submit.error": "Falha ao salvar a configuração. Tente novamente.",
121
+ "page.settings.notification.restore.success": "A configuração foi restaurada com sucesso",
122
+ "page.settings.notification.restore.error": "Falha ao restaurar a configuração. Tente novamente.",
123
+ "page.settings.notification.restart.success": "O aplicativo foi reiniciado com sucesso",
124
+ "page.settings.notification.restart.error": "Falha ao reiniciar seu aplicativo. Tente fazer manualmente.",
125
+ "page.settings.loading": "Buscando configuração...",
126
+ "compontents.confirmation.dialog.header": "Confirmação",
127
+ "compontents.confirmation.dialog.description": "Você realmente deseja realizar esta ação?",
128
+ "compontents.confirmation.dialog.button.confirm": "Sim eu quero",
129
+ "compontents.confirmation.dialog.button.cancel": "Cancelar",
130
+ "compontents.toogle.enabled": "Habilitado",
131
+ "compontents.toogle.disabled": "Desabilitado"
132
132
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "strapi-plugin-comments",
3
- "version": "2.1.0-beta.1",
3
+ "version": "2.1.0",
4
4
  "description": "Strapi - Comments plugin",
5
5
  "strapi": {
6
6
  "name": "comments",
@@ -14,8 +14,8 @@
14
14
  "url": "https://github.com/VirtusLab-Open-Source/strapi-plugin-comments"
15
15
  },
16
16
  "dependencies": {
17
- "@strapi/plugin-graphql": "^4.1.6",
18
- "@strapi/utils": "^4.1.6",
17
+ "@strapi/utils": "^4.1.8",
18
+ "@strapi/plugin-graphql": "^4.1.8",
19
19
  "bad-words": "^3.0.4"
20
20
  },
21
21
  "devDependencies": {},
@@ -1,4 +1,4 @@
1
- import { ToBeFixed } from "../../types";
2
- declare const controllers: ToBeFixed;
1
+ import { IControllerClient } from "../../types";
2
+ declare const controllers: IControllerClient;
3
3
  export default controllers;
4
4
  //# sourceMappingURL=client.d.ts.map
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const functions_1 = require("./../utils/functions");
4
7
  const functions_2 = require("./utils/functions");
5
8
  const parsers_1 = require("./utils/parsers");
9
+ const error_1 = __importDefault(require("../utils/error"));
6
10
  const controllers = {
7
11
  getService(name = "client") {
8
12
  return (0, functions_1.getPluginService)(name);
@@ -10,35 +14,46 @@ const controllers = {
10
14
  async findAllFlat(ctx) {
11
15
  const { params = {}, query, sort, pagination } = ctx;
12
16
  const { relation } = (0, functions_2.parseParams)(params);
13
- const { sort: querySort, pagination: queryPagination, ...filterQuery } = query || {};
17
+ const { sort: querySort, pagination: queryPagination, fields, ...filterQuery } = query || {};
14
18
  try {
15
19
  (0, functions_1.assertParamsPresent)(params, ["relation"]);
16
- return this.getService("common").findAllFlat((0, parsers_1.flatInput)(relation, filterQuery, sort || querySort, pagination || queryPagination));
20
+ return this.getService("common").findAllFlat((0, parsers_1.flatInput)({
21
+ relation,
22
+ query: filterQuery,
23
+ sort: sort || querySort,
24
+ pagination: pagination || queryPagination,
25
+ fields,
26
+ }));
17
27
  }
18
28
  catch (e) {
19
- (0, functions_2.throwError)(ctx, e);
29
+ throw (0, functions_2.throwError)(ctx, e);
20
30
  }
21
31
  },
22
32
  async findAllInHierarchy(ctx) {
23
- const { params = {}, query, sort } = ctx;
33
+ const { params, query, sort } = ctx;
24
34
  const { relation } = (0, functions_2.parseParams)(params);
25
- const { sort: querySort, ...filterQuery } = query || {};
35
+ const { sort: querySort, fields, ...filterQuery } = query || {};
26
36
  try {
27
37
  (0, functions_1.assertParamsPresent)(params, ["relation"]);
28
38
  return await this.getService("common").findAllInHierarchy({
29
- ...(0, parsers_1.flatInput)(relation, filterQuery, sort || querySort),
39
+ ...(0, parsers_1.flatInput)({
40
+ relation,
41
+ query: filterQuery,
42
+ sort: sort || querySort,
43
+ fields,
44
+ }),
30
45
  dropBlockedThreads: true,
31
46
  });
32
47
  }
33
48
  catch (e) {
34
- (0, functions_2.throwError)(ctx, e);
49
+ throw (0, functions_2.throwError)(ctx, e);
35
50
  }
36
51
  },
37
52
  async post(ctx) {
38
- const { request, params = {}, state = {} } = ctx;
53
+ const { request, params, state = {} } = ctx;
39
54
  const { relation } = (0, functions_2.parseParams)(params);
40
55
  const { user } = state;
41
- const { body = {} } = request;
56
+ const { body } = request;
42
57
  try {
43
58
  (0, functions_1.assertParamsPresent)(params, ["relation"]);
44
59
  (0, functions_1.assertNotEmpty)(body);
@@ -46,14 +61,15 @@ const controllers = {
46
61
  if (entity) {
47
62
  return entity;
48
63
  }
64
+ throw new error_1.default(400, "Comment hasn't been created");
49
65
  }
50
66
  catch (e) {
51
- (0, functions_2.throwError)(ctx, e);
67
+ throw (0, functions_2.throwError)(ctx, e);
52
68
  }
53
69
  },
54
70
  async put(ctx) {
55
71
  const { request, state, params = {} } = ctx;
56
- const { body = {} } = request;
72
+ const { body } = request;
57
73
  const { user } = state;
58
74
  const { commentId, relation } = (0, functions_2.parseParams)(params);
59
75
  try {
@@ -62,37 +78,37 @@ const controllers = {
62
78
  return await this.getService().update(commentId, relation, body, user);
63
79
  }
64
80
  catch (e) {
65
- (0, functions_2.throwError)(ctx, e);
81
+ throw (0, functions_2.throwError)(ctx, e);
66
82
  }
67
83
  },
68
84
  async reportAbuse(ctx) {
69
85
  const { request, state, params = {} } = ctx;
70
- const { body = {} } = request;
71
- (0, functions_1.assertNotEmpty)(body);
72
- if (!body.content) {
73
- return ctx.badRequest(null, "Content field is required");
74
- }
86
+ const { body } = request;
75
87
  const { user } = state;
76
88
  const { relation, commentId } = (0, functions_2.parseParams)(params);
77
89
  try {
78
90
  (0, functions_1.assertParamsPresent)(params, ["commentId", "relation"]);
91
+ (0, functions_1.assertNotEmpty)(body);
92
+ if (!body.content) {
93
+ throw new error_1.default(400, "Content field is required");
94
+ }
79
95
  return await this.getService().reportAbuse(commentId, relation, body, user);
80
96
  }
81
97
  catch (e) {
82
- (0, functions_2.throwError)(ctx, e);
98
+ throw (0, functions_2.throwError)(ctx, e);
83
99
  }
84
100
  },
85
101
  async removeComment(ctx) {
86
102
  const { params, query, state: { user }, } = ctx;
87
- const { relationId, commentId } = (0, functions_2.parseParams)(params);
103
+ const { relation, commentId } = (0, functions_2.parseParams)(params);
88
104
  const { authorId } = (0, functions_2.parseParams)(query);
89
105
  try {
90
- (0, functions_1.assertParamsPresent)(params, ["commentId", "relationId"]);
106
+ (0, functions_1.assertParamsPresent)(params, ["commentId", "relation"]);
91
107
  (0, functions_1.assertParamsPresent)(query, ["authorId"]);
92
108
  if (authorId || user?.id) {
93
- return await this.getService().markAsRemoved(commentId, relationId, authorId, user);
109
+ return await this.getService().markAsRemoved(commentId, relation, authorId, user);
94
110
  }
95
- return ctx.badRequest("Not provided authorId");
111
+ return new error_1.default(400, "Not provided authorId");
96
112
  }
97
113
  catch (e) {
98
114
  if (!e.isBoom) {
@@ -1,7 +1,7 @@
1
1
  import { Id, StringMap, StrapiRequestContext } from "strapi-typed";
2
2
  import PluginError from "../../utils/error";
3
3
  declare type ParseResponse = StringMap<string | number | Id>;
4
- export declare const parseParams: (params: StringMap<string | number>) => ParseResponse;
5
- export declare const throwError: <T extends {} = never>(ctx: StrapiRequestContext<T, {}>, e: PluginError | Error | unknown) => PluginError | Error | unknown | never;
4
+ export declare const parseParams: <T extends ParseResponse>(params: StringMap<string | number>) => T;
5
+ export declare const throwError: <T extends {} = never>(ctx: StrapiRequestContext<T, StringMap<string | number>, StringMap<string | number>>, e: PluginError | Error | unknown) => PluginError | Error | unknown | never;
6
6
  export {};
7
7
  //# sourceMappingURL=functions.d.ts.map
@@ -1,15 +1,10 @@
1
- import { Id } from "strapi-typed";
2
- import { ToBeFixed } from "../../../types";
3
- export declare const flatInput: (relation: Id, query: ToBeFixed, sort: ToBeFixed, pagination?: ToBeFixed) => {
1
+ import { OnlyStrings } from "strapi-typed";
2
+ import { FlatInput } from "../../../types";
3
+ export declare const flatInput: <T, TKeys = keyof T>(payload: FlatInput<OnlyStrings<TKeys>>) => {
4
4
  query: any;
5
- populate: {
6
- threadOf: {
7
- populate: {
8
- authorUser: boolean;
9
- };
10
- };
11
- };
5
+ populate: any;
12
6
  pagination: any;
13
7
  sort: any;
8
+ fields: import("strapi-typed").StrapiRequestQueryFieldsClause<OnlyStrings<TKeys>> | undefined;
14
9
  };
15
10
  //# sourceMappingURL=parsers.d.ts.map
@@ -1,9 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.flatInput = void 0;
4
- const flatInput = (relation, query, sort, pagination) => {
5
- const filters = query?.filters || query;
4
+ const flatInput = (payload) => {
5
+ const { relation, query, sort, pagination, fields } = payload;
6
+ const { populate = {}, ...restQuery } = query;
7
+ const filters = restQuery?.filters || restQuery;
6
8
  const orOperator = (filters?.$or || []).filter((_) => !Object.keys(_).includes("removed"));
9
+ let basePopulate = {
10
+ ...populate,
11
+ };
12
+ let threadOfPopulate = {
13
+ threadOf: {
14
+ populate: {
15
+ authorUser: true,
16
+ ...populate,
17
+ },
18
+ },
19
+ };
20
+ if (populate.author) {
21
+ const { author, ...restPopulate } = populate;
22
+ basePopulate = {
23
+ ...restPopulate,
24
+ authorUser: author,
25
+ };
26
+ threadOfPopulate = {
27
+ threadOf: {
28
+ populate: {
29
+ authorUser: author,
30
+ ...restPopulate,
31
+ },
32
+ },
33
+ };
34
+ }
7
35
  return {
8
36
  query: {
9
37
  ...filters,
@@ -11,12 +39,12 @@ const flatInput = (relation, query, sort, pagination) => {
11
39
  related: relation,
12
40
  },
13
41
  populate: {
14
- threadOf: {
15
- populate: { authorUser: true },
16
- },
42
+ ...basePopulate,
43
+ ...threadOfPopulate,
17
44
  },
18
45
  pagination,
19
46
  sort,
47
+ fields,
20
48
  };
21
49
  };
22
50
  exports.flatInput = flatInput;
@@ -8,7 +8,7 @@ declare const _default: ({ nexus }: StrapiGraphQLContext) => {
8
8
  args: {
9
9
  input: any;
10
10
  };
11
- resolve(_: Object, args: CreateCommentProps, ctx: StrapiRequestContext<never> & ToBeFixed): Promise<import("../../../types").Comment>;
11
+ resolve(_: Object, args: CreateCommentProps, ctx: StrapiRequestContext<never> & ToBeFixed): Promise<import("../../../types").Comment<import("../../../types").CommentAuthor>>;
12
12
  };
13
13
  export = _default;
14
14
  //# sourceMappingURL=createComment.d.ts.map
@@ -5,7 +5,7 @@ declare const _default: ({ nexus }: StrapiGraphQLContext) => {
5
5
  args: {
6
6
  input: any;
7
7
  };
8
- resolve(_: Object, args: NexusRequestProps, ctx: StrapiRequestContext<never> & ToBeFixed): Promise<import("../../../types").Comment>;
8
+ resolve(_: Object, args: NexusRequestProps, ctx: StrapiRequestContext<never> & ToBeFixed): Promise<import("../../../types").Comment<import("../../../types").CommentAuthor>>;
9
9
  };
10
10
  export = _default;
11
11
  //# sourceMappingURL=removeComment.d.ts.map
@@ -5,7 +5,7 @@ declare const _default: ({ nexus }: StrapiGraphQLContext) => {
5
5
  args: {
6
6
  input: any;
7
7
  };
8
- resolve(_: Object, args: NexusRequestProps, ctx: StrapiRequestContext<never> & ToBeFixed): Promise<import("../../../types").Comment>;
8
+ resolve(_: Object, args: NexusRequestProps, ctx: StrapiRequestContext<never> & ToBeFixed): Promise<import("../../../types").Comment<import("../../../types").CommentAuthor>>;
9
9
  };
10
10
  export = _default;
11
11
  //# sourceMappingURL=updateComment.d.ts.map
@@ -13,7 +13,7 @@ declare const _default: ({ strapi, nexus }: StrapiGraphQLContext) => {
13
13
  pagination: any;
14
14
  sort: any;
15
15
  };
16
- resolve(obj: Object, args: ResponseFindAllResolverProps): Promise<import("strapi-typed").StrapiPaginatedResponse<import("../../../types").Comment>>;
16
+ resolve(obj: Object, args: ResponseFindAllResolverProps): Promise<import("strapi-typed").StrapiPaginatedResponse<import("../../../types").Comment<import("../../../types").CommentAuthor>>>;
17
17
  };
18
18
  export = _default;
19
19
  //# sourceMappingURL=findAllFlat.d.ts.map
@@ -20,12 +20,17 @@ module.exports = ({ strapi, nexus }) => {
20
20
  },
21
21
  async resolve(obj, args) {
22
22
  const { relation, filters, sort, pagination } = args;
23
- return await (0, functions_1.getPluginService)("common").findAllFlat((0, parsers_1.flatInput)(relation, (0, functions_1.getPluginService)("gql").graphQLFiltersToStrapiQuery(filters, comment_1.default), sort, pagination
24
- ? {
25
- ...pagination,
26
- withCount: !(0, lodash_1.isEmpty)(pagination),
27
- }
28
- : undefined), undefined);
23
+ return await (0, functions_1.getPluginService)("common").findAllFlat((0, parsers_1.flatInput)({
24
+ relation,
25
+ query: (0, functions_1.getPluginService)("gql").graphQLFiltersToStrapiQuery(filters, comment_1.default),
26
+ sort,
27
+ pagination: pagination
28
+ ? {
29
+ ...pagination,
30
+ withCount: !(0, lodash_1.isEmpty)(pagination),
31
+ }
32
+ : undefined,
33
+ }), undefined);
29
34
  },
30
35
  };
31
36
  };
@@ -4,7 +4,6 @@ declare type findAllInHierarchyProps = {
4
4
  relation: Id;
5
5
  filters: ToBeFixed;
6
6
  sort: ToBeFixed;
7
- pagination: ToBeFixed;
8
7
  };
9
8
  declare const _default: ({ strapi, nexus }: StrapiGraphQLContext) => {
10
9
  type: any;
@@ -12,7 +11,7 @@ declare const _default: ({ strapi, nexus }: StrapiGraphQLContext) => {
12
11
  relation: any;
13
12
  sort: any;
14
13
  };
15
- resolve(obj: Object, args: findAllInHierarchyProps): Promise<import("../../../types").Comment[]>;
14
+ resolve(obj: Object, args: findAllInHierarchyProps): Promise<import("../../../types").Comment<import("../../../types").CommentAuthor>[]>;
16
15
  };
17
16
  export = _default;
18
17
  //# sourceMappingURL=findAllInHierarchy.d.ts.map
@@ -18,7 +18,11 @@ module.exports = ({ strapi, nexus }) => {
18
18
  async resolve(obj, args) {
19
19
  const { relation, filters, sort } = args;
20
20
  return await (0, functions_1.getPluginService)("common").findAllInHierarchy({
21
- ...(0, parsers_1.flatInput)(relation, (0, functions_1.getPluginService)("gql").graphQLFiltersToStrapiQuery(filters, comment_1.default), sort),
21
+ ...(0, parsers_1.flatInput)({
22
+ relation,
23
+ query: (0, functions_1.getPluginService)("gql").graphQLFiltersToStrapiQuery(filters, comment_1.default),
24
+ sort,
25
+ }),
22
26
  dropBlockedThreads: true,
23
27
  });
24
28
  },