@greatapps/common 1.1.656 → 1.1.657
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/dist/components/account/sections/TokenSection.mjs +1 -1
- package/dist/components/account/sections/TokenSection.mjs.map +1 -1
- package/dist/handlers.mjs +33 -0
- package/dist/handlers.mjs.map +1 -0
- package/dist/http.mjs +5 -0
- package/dist/http.mjs.map +1 -0
- package/dist/infra/http/api-fetch.mjs +30 -0
- package/dist/infra/http/api-fetch.mjs.map +1 -0
- package/dist/infra/route/parse-id.mjs +12 -0
- package/dist/infra/route/parse-id.mjs.map +1 -0
- package/dist/infra/route/safe-route-handler.mjs +18 -0
- package/dist/infra/route/safe-route-handler.mjs.map +1 -0
- package/dist/infra/route/search-params.mjs +11 -0
- package/dist/infra/route/search-params.mjs.map +1 -0
- package/dist/modules/cards/handlers/find-card-by-id.handler.mjs +16 -0
- package/dist/modules/cards/handlers/find-card-by-id.handler.mjs.map +1 -0
- package/dist/modules/cards/handlers/list-cards.handler.mjs +12 -0
- package/dist/modules/cards/handlers/list-cards.handler.mjs.map +1 -0
- package/dist/modules/cards/hooks/card-by-id.hook.mjs +2 -5
- package/dist/modules/cards/hooks/card-by-id.hook.mjs.map +1 -1
- package/dist/modules/cards/hooks/cards.hook.mjs +2 -5
- package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
- package/dist/modules/charges/handlers/find-charge-by-id.handler.mjs +15 -0
- package/dist/modules/charges/handlers/find-charge-by-id.handler.mjs.map +1 -0
- package/dist/modules/charges/handlers/list-charges.handler.mjs +15 -0
- package/dist/modules/charges/handlers/list-charges.handler.mjs.map +1 -0
- package/dist/modules/charges/hooks/charge-by-id.hook.mjs +2 -3
- package/dist/modules/charges/hooks/charge-by-id.hook.mjs.map +1 -1
- package/dist/modules/charges/hooks/charges.hook.mjs +2 -3
- package/dist/modules/charges/hooks/charges.hook.mjs.map +1 -1
- package/dist/modules/ia-credits/handlers/list-ia-credits.handler.mjs +15 -0
- package/dist/modules/ia-credits/handlers/list-ia-credits.handler.mjs.map +1 -0
- package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs +5 -3
- package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs.map +1 -1
- package/dist/modules/pages/handlers/count-pages.handler.mjs +14 -0
- package/dist/modules/pages/handlers/count-pages.handler.mjs.map +1 -0
- package/dist/modules/pages/hooks/count-pages.hook.mjs +3 -4
- package/dist/modules/pages/hooks/count-pages.hook.mjs.map +1 -1
- package/dist/modules/plans/handlers/find-plan-by-id.handler.mjs +15 -0
- package/dist/modules/plans/handlers/find-plan-by-id.handler.mjs.map +1 -0
- package/dist/modules/plans/handlers/list-plans.handler.mjs +20 -0
- package/dist/modules/plans/handlers/list-plans.handler.mjs.map +1 -0
- package/dist/modules/plans/hooks/list-plans.hook.mjs +2 -3
- package/dist/modules/plans/hooks/list-plans.hook.mjs.map +1 -1
- package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs +2 -3
- package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
- package/dist/modules/projects/handlers/find-project.handler.mjs +16 -0
- package/dist/modules/projects/handlers/find-project.handler.mjs.map +1 -0
- package/dist/modules/projects/handlers/list-all-account-users.handler.mjs +17 -0
- package/dist/modules/projects/handlers/list-all-account-users.handler.mjs.map +1 -0
- package/dist/modules/projects/handlers/list-available-users.handler.mjs +20 -0
- package/dist/modules/projects/handlers/list-available-users.handler.mjs.map +1 -0
- package/dist/modules/projects/handlers/list-project-users.handler.mjs +20 -0
- package/dist/modules/projects/handlers/list-project-users.handler.mjs.map +1 -0
- package/dist/modules/projects/handlers/list-projects.handler.mjs +17 -0
- package/dist/modules/projects/handlers/list-projects.handler.mjs.map +1 -0
- package/dist/modules/projects/hooks/find-project.hook.mjs +2 -3
- package/dist/modules/projects/hooks/find-project.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-all-account-users.hook.mjs +6 -6
- package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-available-users.hook.mjs +6 -6
- package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-infinite-projects.hook.mjs +6 -6
- package/dist/modules/projects/hooks/list-infinite-projects.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-project-users.hook.mjs +6 -6
- package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-projects.hook.mjs +2 -3
- package/dist/modules/projects/hooks/list-projects.hook.mjs.map +1 -1
- package/dist/modules/subscriptions/handlers/list-subscriptions.handler.mjs +17 -0
- package/dist/modules/subscriptions/handlers/list-subscriptions.handler.mjs.map +1 -0
- package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs +5 -5
- package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
- package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs +5 -3
- package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
- package/dist/modules/users/handlers/list-messages.handler.mjs +36 -0
- package/dist/modules/users/handlers/list-messages.handler.mjs.map +1 -0
- package/dist/modules/users/hooks/messages.hook.mjs +7 -6
- package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
- package/dist/route.mjs +9 -0
- package/dist/route.mjs.map +1 -0
- package/package.json +15 -4
- package/src/components/account/sections/TokenSection.tsx +1 -1
- package/src/handlers.ts +22 -0
- package/src/http.ts +1 -0
- package/src/infra/http/api-fetch.ts +39 -0
- package/src/infra/route/parse-id.ts +9 -0
- package/src/infra/route/safe-route-handler.ts +16 -0
- package/src/infra/route/search-params.ts +9 -0
- package/src/modules/cards/handlers/find-card-by-id.handler.ts +15 -0
- package/src/modules/cards/handlers/list-cards.handler.ts +10 -0
- package/src/modules/cards/hooks/card-by-id.hook.ts +4 -5
- package/src/modules/cards/hooks/cards.hook.ts +4 -5
- package/src/modules/charges/handlers/find-charge-by-id.handler.ts +14 -0
- package/src/modules/charges/handlers/list-charges.handler.ts +15 -0
- package/src/modules/charges/hooks/charge-by-id.hook.ts +5 -3
- package/src/modules/charges/hooks/charges.hook.ts +5 -4
- package/src/modules/ia-credits/handlers/list-ia-credits.handler.ts +14 -0
- package/src/modules/ia-credits/hooks/ia-credits.hook.ts +7 -3
- package/src/modules/pages/handlers/count-pages.handler.ts +12 -0
- package/src/modules/pages/hooks/count-pages.hook.ts +3 -4
- package/src/modules/plans/handlers/find-plan-by-id.handler.ts +14 -0
- package/src/modules/plans/handlers/list-plans.handler.ts +20 -0
- package/src/modules/plans/hooks/list-plans.hook.ts +2 -3
- package/src/modules/plans/hooks/use-plan-by-id.hook.ts +4 -3
- package/src/modules/projects/handlers/find-project.handler.ts +15 -0
- package/src/modules/projects/handlers/list-all-account-users.handler.ts +17 -0
- package/src/modules/projects/handlers/list-available-users.handler.ts +20 -0
- package/src/modules/projects/handlers/list-project-users.handler.ts +20 -0
- package/src/modules/projects/handlers/list-projects.handler.ts +17 -0
- package/src/modules/projects/hooks/find-project.hook.ts +3 -3
- package/src/modules/projects/hooks/list-all-account-users.hook.ts +8 -7
- package/src/modules/projects/hooks/list-available-users.hook.ts +8 -7
- package/src/modules/projects/hooks/list-infinite-projects.hook.ts +8 -7
- package/src/modules/projects/hooks/list-project-users.hook.ts +8 -7
- package/src/modules/projects/hooks/list-projects.hook.ts +3 -3
- package/src/modules/subscriptions/handlers/list-subscriptions.handler.ts +17 -0
- package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +8 -5
- package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +8 -5
- package/src/modules/users/handlers/list-messages.handler.ts +39 -0
- package/src/modules/users/hooks/messages.hook.ts +10 -8
- package/src/route.ts +3 -0
|
@@ -56,7 +56,7 @@ function TokenSection() {
|
|
|
56
56
|
/* @__PURE__ */ jsx(
|
|
57
57
|
"a",
|
|
58
58
|
{
|
|
59
|
-
href: "https://documenter.getpostman.com/view/4861938/
|
|
59
|
+
href: "https://documenter.getpostman.com/view/4861938/2sAYdoDmj4",
|
|
60
60
|
target: "_blank",
|
|
61
61
|
rel: "noopener noreferrer",
|
|
62
62
|
className: "paragraph-small-medium text-gray-500 underline hover:text-gray-700 transition-colors w-fit",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/account/sections/TokenSection.tsx"],"sourcesContent":["'use client';\n\nimport { IconCheck, IconCopy, IconInfoCircle } from '@tabler/icons-react';\nimport { toast } from 'sonner';\nimport { Toast } from '../../ui/feedback/Toast';\nimport { Button } from '../../ui/buttons/Button';\nimport { FormField } from '../../ui/form/FormField';\nimport useCopyToClipboard from '../../../hooks/copy-to-clipboard.hook';\nimport { useAccountToken } from '../../../modules/accounts/hooks/use-account-token.hook';\nimport { useIsDefaultWhitelabel } from '../../../providers/whitelabel.provider';\n\nexport function TokenSection() {\n const { data: token = '', isLoading } = useAccountToken();\n const isDefaultWl = useIsDefaultWhitelabel();\n\n const { isCopied, copy } = useCopyToClipboard({\n onSuccess: () => {\n toast.custom((t) => (\n <Toast variant=\"success\" message=\"Token copiado com sucesso\" toastId={t} />\n ));\n },\n onError: () => {\n toast.custom((t) => (\n <Toast variant=\"error\" message=\"Não foi possível copiar o token\" toastId={t} />\n ));\n },\n });\n\n return (\n <div className=\"h-full overflow-y-auto overscroll-contain px-4 pb-20 lg:p-5 lg:pt-5 flex flex-col gap-5 lg:gap-6 lg:pb-31 lg:overscroll-auto\">\n <span className=\"paragraph-medium-semibold text-gray-950\">Token da conta</span>\n\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-end gap-3\">\n <FormField\n label=\"Token\"\n value={isLoading ? 'Carregando...' : token}\n disabled\n readOnly\n classnameContainer=\"bg-gray-50 cursor-default opacity-100!\"\n className=\"text-gray-950/50\"\n />\n <Button\n type=\"button\"\n variant=\"secondary\"\n className=\"h-10! shrink-0 gap-2\"\n onClick={() => copy(token)}\n disabled={isLoading || !token}\n >\n {isCopied ? <IconCheck size={16} /> : <IconCopy size={16} />}\n {isCopied ? 'Copiado' : 'Copiar'}\n </Button>\n </div>\n\n <div className={`flex items-center gap-3 p-4 rounded-lg ${isDefaultWl ? 'bg-cyan-50' : 'bg-zinc-50'}`}>\n <IconInfoCircle className=\"size-4 text-zinc-950 shrink-0\" />\n <span className=\"paragraph-small-regular text-zinc-950 max-w-[420px]\">\n Este token é exclusivo da sua conta e permite acesso à API. Não compartilhe com terceiros.\n </span>\n </div>\n\n <a\n href=\"https://documenter.getpostman.com/view/4861938/
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/account/sections/TokenSection.tsx"],"sourcesContent":["'use client';\n\nimport { IconCheck, IconCopy, IconInfoCircle } from '@tabler/icons-react';\nimport { toast } from 'sonner';\nimport { Toast } from '../../ui/feedback/Toast';\nimport { Button } from '../../ui/buttons/Button';\nimport { FormField } from '../../ui/form/FormField';\nimport useCopyToClipboard from '../../../hooks/copy-to-clipboard.hook';\nimport { useAccountToken } from '../../../modules/accounts/hooks/use-account-token.hook';\nimport { useIsDefaultWhitelabel } from '../../../providers/whitelabel.provider';\n\nexport function TokenSection() {\n const { data: token = '', isLoading } = useAccountToken();\n const isDefaultWl = useIsDefaultWhitelabel();\n\n const { isCopied, copy } = useCopyToClipboard({\n onSuccess: () => {\n toast.custom((t) => (\n <Toast variant=\"success\" message=\"Token copiado com sucesso\" toastId={t} />\n ));\n },\n onError: () => {\n toast.custom((t) => (\n <Toast variant=\"error\" message=\"Não foi possível copiar o token\" toastId={t} />\n ));\n },\n });\n\n return (\n <div className=\"h-full overflow-y-auto overscroll-contain px-4 pb-20 lg:p-5 lg:pt-5 flex flex-col gap-5 lg:gap-6 lg:pb-31 lg:overscroll-auto\">\n <span className=\"paragraph-medium-semibold text-gray-950\">Token da conta</span>\n\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-end gap-3\">\n <FormField\n label=\"Token\"\n value={isLoading ? 'Carregando...' : token}\n disabled\n readOnly\n classnameContainer=\"bg-gray-50 cursor-default opacity-100!\"\n className=\"text-gray-950/50\"\n />\n <Button\n type=\"button\"\n variant=\"secondary\"\n className=\"h-10! shrink-0 gap-2\"\n onClick={() => copy(token)}\n disabled={isLoading || !token}\n >\n {isCopied ? <IconCheck size={16} /> : <IconCopy size={16} />}\n {isCopied ? 'Copiado' : 'Copiar'}\n </Button>\n </div>\n\n <div className={`flex items-center gap-3 p-4 rounded-lg ${isDefaultWl ? 'bg-cyan-50' : 'bg-zinc-50'}`}>\n <IconInfoCircle className=\"size-4 text-zinc-950 shrink-0\" />\n <span className=\"paragraph-small-regular text-zinc-950 max-w-[420px]\">\n Este token é exclusivo da sua conta e permite acesso à API. Não compartilhe com terceiros.\n </span>\n </div>\n\n <a\n href=\"https://documenter.getpostman.com/view/4861938/2sAYdoDmj4\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"paragraph-small-medium text-gray-500 underline hover:text-gray-700 transition-colors w-fit\"\n >\n Acessar a documentação\n </a>\n </div>\n </div>\n );\n}\n"],"mappings":";AAkBQ,cAwBE,YAxBF;AAhBR,SAAS,WAAW,UAAU,sBAAsB;AACpD,SAAS,aAAa;AACtB,SAAS,aAAa;AACtB,SAAS,cAAc;AACvB,SAAS,iBAAiB;AAC1B,OAAO,wBAAwB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AAEhC,SAAS,eAAe;AAC7B,QAAM,EAAE,MAAM,QAAQ,IAAI,UAAU,IAAI,gBAAgB;AACxD,QAAM,cAAc,uBAAuB;AAE3C,QAAM,EAAE,UAAU,KAAK,IAAI,mBAAmB;AAAA,IAC5C,WAAW,MAAM;AACf,YAAM,OAAO,CAAC,MACZ,oBAAC,SAAM,SAAQ,WAAU,SAAQ,6BAA4B,SAAS,GAAG,CAC1E;AAAA,IACH;AAAA,IACA,SAAS,MAAM;AACb,YAAM,OAAO,CAAC,MACZ,oBAAC,SAAM,SAAQ,SAAQ,SAAQ,yCAAkC,SAAS,GAAG,CAC9E;AAAA,IACH;AAAA,EACF,CAAC;AAED,SACE,qBAAC,SAAI,WAAU,gIACb;AAAA,wBAAC,UAAK,WAAU,2CAA0C,4BAAc;AAAA,IAExE,qBAAC,SAAI,WAAU,uBACb;AAAA,2BAAC,SAAI,WAAU,wBACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,OAAO,YAAY,kBAAkB;AAAA,YACrC,UAAQ;AAAA,YACR,UAAQ;AAAA,YACR,oBAAmB;AAAA,YACnB,WAAU;AAAA;AAAA,QACZ;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,SAAS,MAAM,KAAK,KAAK;AAAA,YACzB,UAAU,aAAa,CAAC;AAAA,YAEvB;AAAA,yBAAW,oBAAC,aAAU,MAAM,IAAI,IAAK,oBAAC,YAAS,MAAM,IAAI;AAAA,cACzD,WAAW,YAAY;AAAA;AAAA;AAAA,QAC1B;AAAA,SACF;AAAA,MAEA,qBAAC,SAAI,WAAW,0CAA0C,cAAc,eAAe,YAAY,IACjG;AAAA,4BAAC,kBAAe,WAAU,iCAAgC;AAAA,QAC1D,oBAAC,UAAK,WAAU,uDAAsD,iHAEtE;AAAA,SACF;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { createListCardsHandler } from "./modules/cards/handlers/list-cards.handler";
|
|
2
|
+
import { createFindCardByIdHandler } from "./modules/cards/handlers/find-card-by-id.handler";
|
|
3
|
+
import { createListChargesHandler } from "./modules/charges/handlers/list-charges.handler";
|
|
4
|
+
import { createFindChargeByIdHandler } from "./modules/charges/handlers/find-charge-by-id.handler";
|
|
5
|
+
import { createListIaCreditsHandler } from "./modules/ia-credits/handlers/list-ia-credits.handler";
|
|
6
|
+
import { createCountPagesHandler } from "./modules/pages/handlers/count-pages.handler";
|
|
7
|
+
import { createListPlansHandler } from "./modules/plans/handlers/list-plans.handler";
|
|
8
|
+
import { createFindPlanByIdHandler } from "./modules/plans/handlers/find-plan-by-id.handler";
|
|
9
|
+
import { createListProjectsHandler } from "./modules/projects/handlers/list-projects.handler";
|
|
10
|
+
import { createFindProjectHandler } from "./modules/projects/handlers/find-project.handler";
|
|
11
|
+
import { createListProjectUsersHandler } from "./modules/projects/handlers/list-project-users.handler";
|
|
12
|
+
import { createListAvailableUsersHandler } from "./modules/projects/handlers/list-available-users.handler";
|
|
13
|
+
import { createListAllAccountUsersHandler } from "./modules/projects/handlers/list-all-account-users.handler";
|
|
14
|
+
import { createListSubscriptionsHandler } from "./modules/subscriptions/handlers/list-subscriptions.handler";
|
|
15
|
+
import { createListMessagesHandler } from "./modules/users/handlers/list-messages.handler";
|
|
16
|
+
export {
|
|
17
|
+
createCountPagesHandler,
|
|
18
|
+
createFindCardByIdHandler,
|
|
19
|
+
createFindChargeByIdHandler,
|
|
20
|
+
createFindPlanByIdHandler,
|
|
21
|
+
createFindProjectHandler,
|
|
22
|
+
createListAllAccountUsersHandler,
|
|
23
|
+
createListAvailableUsersHandler,
|
|
24
|
+
createListCardsHandler,
|
|
25
|
+
createListChargesHandler,
|
|
26
|
+
createListIaCreditsHandler,
|
|
27
|
+
createListMessagesHandler,
|
|
28
|
+
createListPlansHandler,
|
|
29
|
+
createListProjectUsersHandler,
|
|
30
|
+
createListProjectsHandler,
|
|
31
|
+
createListSubscriptionsHandler
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=handlers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/handlers.ts"],"sourcesContent":["export { createListCardsHandler } from './modules/cards/handlers/list-cards.handler';\nexport { createFindCardByIdHandler } from './modules/cards/handlers/find-card-by-id.handler';\n\nexport { createListChargesHandler } from './modules/charges/handlers/list-charges.handler';\nexport { createFindChargeByIdHandler } from './modules/charges/handlers/find-charge-by-id.handler';\n\nexport { createListIaCreditsHandler } from './modules/ia-credits/handlers/list-ia-credits.handler';\n\nexport { createCountPagesHandler } from './modules/pages/handlers/count-pages.handler';\n\nexport { createListPlansHandler } from './modules/plans/handlers/list-plans.handler';\nexport { createFindPlanByIdHandler } from './modules/plans/handlers/find-plan-by-id.handler';\n\nexport { createListProjectsHandler } from './modules/projects/handlers/list-projects.handler';\nexport { createFindProjectHandler } from './modules/projects/handlers/find-project.handler';\nexport { createListProjectUsersHandler } from './modules/projects/handlers/list-project-users.handler';\nexport { createListAvailableUsersHandler } from './modules/projects/handlers/list-available-users.handler';\nexport { createListAllAccountUsersHandler } from './modules/projects/handlers/list-all-account-users.handler';\n\nexport { createListSubscriptionsHandler } from './modules/subscriptions/handlers/list-subscriptions.handler';\n\nexport { createListMessagesHandler } from './modules/users/handlers/list-messages.handler';\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAE1C,SAAS,gCAAgC;AACzC,SAAS,mCAAmC;AAE5C,SAAS,kCAAkC;AAE3C,SAAS,+BAA+B;AAExC,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAE1C,SAAS,iCAAiC;AAC1C,SAAS,gCAAgC;AACzC,SAAS,qCAAqC;AAC9C,SAAS,uCAAuC;AAChD,SAAS,wCAAwC;AAEjD,SAAS,sCAAsC;AAE/C,SAAS,iCAAiC;","names":[]}
|
package/dist/http.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/http.ts"],"sourcesContent":["export { apiFetch } from './infra/http/api-fetch';\n"],"mappings":"AAAA,SAAS,gBAAgB;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { buildQueryParams } from "../utils/params";
|
|
2
|
+
async function apiFetch(path, options = {}) {
|
|
3
|
+
const { params, signal } = options;
|
|
4
|
+
const qs = params ? buildQueryParams(params) : "";
|
|
5
|
+
const url = qs ? `${path}?${qs}` : path;
|
|
6
|
+
const response = await fetch(url, {
|
|
7
|
+
method: "GET",
|
|
8
|
+
credentials: "same-origin",
|
|
9
|
+
headers: { Accept: "application/json" },
|
|
10
|
+
signal
|
|
11
|
+
});
|
|
12
|
+
if (!response.ok) {
|
|
13
|
+
let message = `Erro ${response.status}`;
|
|
14
|
+
try {
|
|
15
|
+
const body2 = await response.json();
|
|
16
|
+
if (body2 && !body2.success && body2.error) message = body2.error;
|
|
17
|
+
} catch {
|
|
18
|
+
}
|
|
19
|
+
throw new Error(message);
|
|
20
|
+
}
|
|
21
|
+
const body = await response.json();
|
|
22
|
+
if (!body.success) {
|
|
23
|
+
throw new Error(body.error ?? "Erro desconhecido");
|
|
24
|
+
}
|
|
25
|
+
return body.data;
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
apiFetch
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=api-fetch.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/infra/http/api-fetch.ts"],"sourcesContent":["import { buildQueryParams } from '../utils/params';\nimport type { ActionResult } from '../api/types';\n\ntype QueryParams = Parameters<typeof buildQueryParams>[0];\n\ninterface ApiFetchOptions {\n params?: object;\n signal?: AbortSignal;\n}\n\nexport async function apiFetch<T>(path: string, options: ApiFetchOptions = {}): Promise<T> {\n const { params, signal } = options;\n const qs = params ? buildQueryParams(params as QueryParams) : '';\n const url = qs ? `${path}?${qs}` : path;\n\n const response = await fetch(url, {\n method: 'GET',\n credentials: 'same-origin',\n headers: { Accept: 'application/json' },\n signal,\n });\n\n if (!response.ok) {\n let message = `Erro ${response.status}`;\n try {\n const body = (await response.json()) as ActionResult<unknown>;\n if (body && !body.success && body.error) message = body.error;\n } catch {\n // corpo não-JSON — mantém a mensagem genérica\n }\n throw new Error(message);\n }\n\n const body = (await response.json()) as ActionResult<T>;\n if (!body.success) {\n throw new Error(body.error ?? 'Erro desconhecido');\n }\n return body.data as T;\n}\n"],"mappings":"AAAA,SAAS,wBAAwB;AAUjC,eAAsB,SAAY,MAAc,UAA2B,CAAC,GAAe;AACzF,QAAM,EAAE,QAAQ,OAAO,IAAI;AAC3B,QAAM,KAAK,SAAS,iBAAiB,MAAqB,IAAI;AAC9D,QAAM,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,KAAK;AAEnC,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,EAAE,QAAQ,mBAAmB;AAAA,IACtC;AAAA,EACF,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,QAAI,UAAU,QAAQ,SAAS,MAAM;AACrC,QAAI;AACF,YAAMA,QAAQ,MAAM,SAAS,KAAK;AAClC,UAAIA,SAAQ,CAACA,MAAK,WAAWA,MAAK,MAAO,WAAUA,MAAK;AAAA,IAC1D,QAAQ;AAAA,IAER;AACA,UAAM,IAAI,MAAM,OAAO;AAAA,EACzB;AAEA,QAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,MAAI,CAAC,KAAK,SAAS;AACjB,UAAM,IAAI,MAAM,KAAK,SAAS,mBAAmB;AAAA,EACnD;AACA,SAAO,KAAK;AACd;","names":["body"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ApiError } from "../api/types";
|
|
2
|
+
function parseId(value) {
|
|
3
|
+
const id = Number(value);
|
|
4
|
+
if (!Number.isFinite(id) || id <= 0) {
|
|
5
|
+
throw new ApiError("Identificador inv\xE1lido", "INVALID_ID", 400);
|
|
6
|
+
}
|
|
7
|
+
return id;
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
parseId
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=parse-id.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/infra/route/parse-id.ts"],"sourcesContent":["import { ApiError } from '../api/types';\n\nexport function parseId(value: string): number {\n const id = Number(value);\n if (!Number.isFinite(id) || id <= 0) {\n throw new ApiError('Identificador inválido', 'INVALID_ID', 400);\n }\n return id;\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAElB,SAAS,QAAQ,OAAuB;AAC7C,QAAM,KAAK,OAAO,KAAK;AACvB,MAAI,CAAC,OAAO,SAAS,EAAE,KAAK,MAAM,GAAG;AACnC,UAAM,IAAI,SAAS,6BAA0B,cAAc,GAAG;AAAA,EAChE;AACA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
import { ApiError } from "../api/types";
|
|
3
|
+
async function safeRouteHandler(fn) {
|
|
4
|
+
try {
|
|
5
|
+
const data = await fn();
|
|
6
|
+
return Response.json({ success: true, data });
|
|
7
|
+
} catch (error) {
|
|
8
|
+
if (error instanceof ApiError) {
|
|
9
|
+
return Response.json({ success: false, error: error.message }, { status: error.statusCode });
|
|
10
|
+
}
|
|
11
|
+
console.error("[safeRouteHandler] erro inesperado", error);
|
|
12
|
+
return Response.json({ success: false, error: "Erro interno do servidor" }, { status: 500 });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
safeRouteHandler
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=safe-route-handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/infra/route/safe-route-handler.ts"],"sourcesContent":["import 'server-only';\n\nimport { ApiError } from '../api/types';\n\nexport async function safeRouteHandler<T>(fn: () => Promise<T>): Promise<Response> {\n try {\n const data = await fn();\n return Response.json({ success: true, data });\n } catch (error) {\n if (error instanceof ApiError) {\n return Response.json({ success: false, error: error.message }, { status: error.statusCode });\n }\n console.error('[safeRouteHandler] erro inesperado', error);\n return Response.json({ success: false, error: 'Erro interno do servidor' }, { status: 500 });\n }\n}\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,gBAAgB;AAEzB,eAAsB,iBAAoB,IAAyC;AACjF,MAAI;AACF,UAAM,OAAO,MAAM,GAAG;AACtB,WAAO,SAAS,KAAK,EAAE,SAAS,MAAM,KAAK,CAAC;AAAA,EAC9C,SAAS,OAAO;AACd,QAAI,iBAAiB,UAAU;AAC7B,aAAO,SAAS,KAAK,EAAE,SAAS,OAAO,OAAO,MAAM,QAAQ,GAAG,EAAE,QAAQ,MAAM,WAAW,CAAC;AAAA,IAC7F;AACA,YAAQ,MAAM,sCAAsC,KAAK;AACzD,WAAO,SAAS,KAAK,EAAE,SAAS,OAAO,OAAO,2BAA2B,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC7F;AACF;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
function searchParamsToParams(searchParams) {
|
|
2
|
+
const params = /* @__PURE__ */ Object.create(null);
|
|
3
|
+
for (const [key, value] of searchParams.entries()) {
|
|
4
|
+
params[key] = value;
|
|
5
|
+
}
|
|
6
|
+
return params;
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
searchParamsToParams
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=search-params.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/infra/route/search-params.ts"],"sourcesContent":["export function searchParamsToParams<T extends object>(\n searchParams: URLSearchParams\n): Partial<T> {\n const params = Object.create(null) as Partial<Record<keyof T, string>>;\n for (const [key, value] of searchParams.entries()) {\n params[key as keyof T] = value;\n }\n return params as Partial<T>;\n}\n"],"mappings":"AAAO,SAAS,qBACd,cACY;AACZ,QAAM,SAAS,uBAAO,OAAO,IAAI;AACjC,aAAW,CAAC,KAAK,KAAK,KAAK,aAAa,QAAQ,GAAG;AACjD,WAAO,GAAc,IAAI;AAAA,EAC3B;AACA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
import { parseId } from "../../../infra/route/parse-id";
|
|
3
|
+
import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
|
|
4
|
+
import { cardsService } from "../services/cards.service";
|
|
5
|
+
function createFindCardByIdHandler() {
|
|
6
|
+
return async function GET(_req, { params }) {
|
|
7
|
+
return safeRouteHandler(async () => {
|
|
8
|
+
const { id } = await params;
|
|
9
|
+
return cardsService.findCardById(parseId(id));
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
createFindCardByIdHandler
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=find-card-by-id.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/cards/handlers/find-card-by-id.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { parseId } from '../../../infra/route/parse-id';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { cardsService } from '../services/cards.service';\n\nexport function createFindCardByIdHandler() {\n return async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {\n return safeRouteHandler(async () => {\n const { id } = await params;\n return cardsService.findCardById(parseId(id));\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,eAAe;AACxB,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,4BAA4B;AAC1C,SAAO,eAAe,IAAI,MAAmB,EAAE,OAAO,GAAwC;AAC5F,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,GAAG,IAAI,MAAM;AACrB,aAAO,aAAa,aAAa,QAAQ,EAAE,CAAC;AAAA,IAC9C,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
|
|
3
|
+
import { cardsService } from "../services/cards.service";
|
|
4
|
+
function createListCardsHandler() {
|
|
5
|
+
return async function GET() {
|
|
6
|
+
return safeRouteHandler(() => cardsService.listCards());
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
createListCardsHandler
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=list-cards.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/cards/handlers/list-cards.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { cardsService } from '../services/cards.service';\n\nexport function createListCardsHandler() {\n return async function GET() {\n return safeRouteHandler(() => cardsService.listCards());\n };\n}\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,yBAAyB;AACvC,SAAO,eAAe,MAAM;AAC1B,WAAO,iBAAiB,MAAM,aAAa,UAAU,CAAC;AAAA,EACxD;AACF;","names":[]}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
|
-
import {
|
|
3
|
+
import { apiFetch } from "../../../infra/http/api-fetch";
|
|
4
4
|
import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
|
|
5
5
|
function useCardById(id) {
|
|
6
6
|
const cardKey = useAuthQueryKey(["card", id]);
|
|
7
7
|
return useQuery({
|
|
8
8
|
queryKey: cardKey,
|
|
9
|
-
queryFn:
|
|
10
|
-
const { findCardByIdAction } = await import("../actions/find-card-by-id.action");
|
|
11
|
-
return withAction(findCardByIdAction)(id);
|
|
12
|
-
},
|
|
9
|
+
queryFn: ({ signal }) => apiFetch(`/api/cards/${id}`, { signal }),
|
|
13
10
|
enabled: id != null
|
|
14
11
|
});
|
|
15
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/cards/hooks/card-by-id.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/cards/hooks/card-by-id.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { SuccessResult } from '../../../infra/api/types';\nimport type { Card } from '../types';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport function useCardById(id: number | undefined) {\n const cardKey = useAuthQueryKey(['card', id]);\n\n return useQuery({\n queryKey: cardKey,\n queryFn: ({ signal }) => apiFetch<SuccessResult<Card>>(`/api/cards/${id}`, { signal }),\n enabled: id != null,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAGzB,SAAS,uBAAuB;AAEzB,SAAS,YAAY,IAAwB;AAClD,QAAM,UAAU,gBAAgB,CAAC,QAAQ,EAAE,CAAC;AAE5C,SAAO,SAAS;AAAA,IACd,UAAU;AAAA,IACV,SAAS,CAAC,EAAE,OAAO,MAAM,SAA8B,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC;AAAA,IACrF,SAAS,MAAM;AAAA,EACjB,CAAC;AACH;","names":[]}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
|
-
import {
|
|
3
|
+
import { apiFetch } from "../../../infra/http/api-fetch";
|
|
4
4
|
import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
|
|
5
5
|
const CARDS_QUERY_KEY = ["cards"];
|
|
6
6
|
function useCards() {
|
|
7
7
|
const queryKey = useAuthQueryKey([...CARDS_QUERY_KEY]);
|
|
8
8
|
return useQuery({
|
|
9
9
|
queryKey,
|
|
10
|
-
queryFn:
|
|
11
|
-
const { listCardsAction } = await import("../actions/list-cards.action");
|
|
12
|
-
return withAction(listCardsAction)();
|
|
13
|
-
},
|
|
10
|
+
queryFn: ({ signal }) => apiFetch("/api/cards", { signal }),
|
|
14
11
|
select: (result) => ({
|
|
15
12
|
...result,
|
|
16
13
|
data: result.data.filter((card) => !card.deleted)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/cards/hooks/cards.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/cards/hooks/cards.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { PaginatedSuccessResult } from '../../../infra/api/types';\nimport type { Card } from '../types';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport const CARDS_QUERY_KEY = ['cards'] as const;\n\nexport function useCards() {\n const queryKey = useAuthQueryKey([...CARDS_QUERY_KEY]);\n\n return useQuery({\n queryKey,\n queryFn: ({ signal }) => apiFetch<PaginatedSuccessResult<Card>>('/api/cards', { signal }),\n select: (result) => ({\n ...result,\n data: result.data.filter((card) => !card.deleted),\n }),\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAGzB,SAAS,uBAAuB;AAEzB,MAAM,kBAAkB,CAAC,OAAO;AAEhC,SAAS,WAAW;AACzB,QAAM,WAAW,gBAAgB,CAAC,GAAG,eAAe,CAAC;AAErD,SAAO,SAAS;AAAA,IACd;AAAA,IACA,SAAS,CAAC,EAAE,OAAO,MAAM,SAAuC,cAAc,EAAE,OAAO,CAAC;AAAA,IACxF,QAAQ,CAAC,YAAY;AAAA,MACnB,GAAG;AAAA,MACH,MAAM,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO;AAAA,IAClD;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
|
|
3
|
+
import { chargesService } from "../services/charges.service";
|
|
4
|
+
function createFindChargeByIdHandler() {
|
|
5
|
+
return async function GET(_req, { params }) {
|
|
6
|
+
return safeRouteHandler(async () => {
|
|
7
|
+
const { id } = await params;
|
|
8
|
+
return chargesService.findChargeById(id);
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
createFindChargeByIdHandler
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=find-charge-by-id.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/charges/handlers/find-charge-by-id.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { chargesService } from '../services/charges.service';\n\nexport function createFindChargeByIdHandler() {\n return async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {\n return safeRouteHandler(async () => {\n const { id } = await params;\n return chargesService.findChargeById(id);\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAExB,SAAS,8BAA8B;AAC5C,SAAO,eAAe,IAAI,MAAmB,EAAE,OAAO,GAAwC;AAC5F,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,GAAG,IAAI,MAAM;AACrB,aAAO,eAAe,eAAe,EAAE;AAAA,IACzC,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
|
|
3
|
+
import { searchParamsToParams } from "../../../infra/route/search-params";
|
|
4
|
+
import { chargesService } from "../services/charges.service";
|
|
5
|
+
function createListChargesHandler() {
|
|
6
|
+
return async function GET(req) {
|
|
7
|
+
return safeRouteHandler(
|
|
8
|
+
() => chargesService.listCharges(searchParamsToParams(req.nextUrl.searchParams))
|
|
9
|
+
);
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
createListChargesHandler
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=list-charges.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/charges/handlers/list-charges.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { searchParamsToParams } from '../../../infra/route/search-params';\nimport { chargesService } from '../services/charges.service';\nimport type { FindChargesParams } from '../types/charge.type';\n\nexport function createListChargesHandler() {\n return async function GET(req: NextRequest) {\n return safeRouteHandler(() =>\n chargesService.listCharges(searchParamsToParams<FindChargesParams>(req.nextUrl.searchParams))\n );\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AACrC,SAAS,sBAAsB;AAGxB,SAAS,2BAA2B;AACzC,SAAO,eAAe,IAAI,KAAkB;AAC1C,WAAO;AAAA,MAAiB,MACtB,eAAe,YAAY,qBAAwC,IAAI,QAAQ,YAAY,CAAC;AAAA,IAC9F;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
|
-
import {
|
|
3
|
+
import { apiFetch } from "../../../infra/http/api-fetch";
|
|
4
4
|
import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
|
|
5
|
-
import { findChargeByIdAction } from "../actions/find-charge-by-id.action";
|
|
6
5
|
import { CHARGES_QUERY_KEY } from "../../subscriptions/constants/query-keys.constants";
|
|
7
6
|
function useChargeById(chargeId) {
|
|
8
7
|
const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, chargeId]);
|
|
9
8
|
return useQuery({
|
|
10
9
|
queryKey: chargesKey,
|
|
11
|
-
queryFn: () =>
|
|
10
|
+
queryFn: ({ signal }) => apiFetch(`/api/charges/${chargeId}`, { signal }),
|
|
12
11
|
enabled: !!chargeId
|
|
13
12
|
});
|
|
14
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/charges/hooks/charge-by-id.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/charges/hooks/charge-by-id.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { SuccessResult } from '../../../infra/api/types';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\nimport { Charge } from '../types/charge.type';\nimport { CHARGES_QUERY_KEY } from '../../subscriptions/constants/query-keys.constants';\n\nexport function useChargeById(chargeId: string | number | null | undefined) {\n const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, chargeId]);\n\n return useQuery({\n queryKey: chargesKey,\n queryFn: ({ signal }) =>\n apiFetch<SuccessResult<Charge>>(`/api/charges/${chargeId}`, { signal }),\n enabled: !!chargeId,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,SAAS,uBAAuB;AAEhC,SAAS,yBAAyB;AAE3B,SAAS,cAAc,UAA8C;AAC1E,QAAM,aAAa,gBAAgB,CAAC,GAAG,mBAAmB,QAAQ,CAAC;AAEnE,SAAO,SAAS;AAAA,IACd,UAAU;AAAA,IACV,SAAS,CAAC,EAAE,OAAO,MACjB,SAAgC,gBAAgB,QAAQ,IAAI,EAAE,OAAO,CAAC;AAAA,IACxE,SAAS,CAAC,CAAC;AAAA,EACb,CAAC;AACH;","names":[]}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
|
-
import {
|
|
3
|
+
import { apiFetch } from "../../../infra/http/api-fetch";
|
|
4
4
|
import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
|
|
5
|
-
import { listChargesAction } from "../actions/list-charges.action";
|
|
6
5
|
import { CHARGES_QUERY_KEY } from "../../subscriptions/constants/query-keys.constants";
|
|
7
6
|
function useCharges(params) {
|
|
8
7
|
const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, params]);
|
|
9
8
|
return useQuery({
|
|
10
9
|
queryKey: chargesKey,
|
|
11
|
-
queryFn: () =>
|
|
10
|
+
queryFn: ({ signal }) => apiFetch("/api/charges", { params, signal }),
|
|
12
11
|
staleTime: 1e4
|
|
13
12
|
});
|
|
14
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/charges/hooks/charges.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/charges/hooks/charges.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { PaginatedSuccessResult } from '../../../infra/api/types';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\nimport { Charge, FindChargesParams } from '../types/charge.type';\nimport { CHARGES_QUERY_KEY } from '../../subscriptions/constants/query-keys.constants';\n\nexport function useCharges(params?: Partial<FindChargesParams>) {\n const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, params]);\n\n return useQuery({\n queryKey: chargesKey,\n queryFn: ({ signal }) =>\n apiFetch<PaginatedSuccessResult<Charge>>('/api/charges', { params, signal }),\n staleTime: 10_000,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,SAAS,uBAAuB;AAEhC,SAAS,yBAAyB;AAE3B,SAAS,WAAW,QAAqC;AAC9D,QAAM,aAAa,gBAAgB,CAAC,GAAG,mBAAmB,MAAM,CAAC;AAEjE,SAAO,SAAS;AAAA,IACd,UAAU;AAAA,IACV,SAAS,CAAC,EAAE,OAAO,MACjB,SAAyC,gBAAgB,EAAE,QAAQ,OAAO,CAAC;AAAA,IAC7E,WAAW;AAAA,EACb,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
|
|
3
|
+
import { iaCreditsService } from "../services/ia-credits.service";
|
|
4
|
+
function createListIaCreditsHandler() {
|
|
5
|
+
return async function GET(_req, { params }) {
|
|
6
|
+
return safeRouteHandler(async () => {
|
|
7
|
+
const { id } = await params;
|
|
8
|
+
return iaCreditsService.listOperations(id);
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
createListIaCreditsHandler
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=list-ia-credits.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/ia-credits/handlers/list-ia-credits.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { iaCreditsService } from '../services/ia-credits.service';\n\nexport function createListIaCreditsHandler() {\n return async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {\n return safeRouteHandler(async () => {\n const { id } = await params;\n return iaCreditsService.listOperations(id);\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AAE1B,SAAS,6BAA6B;AAC3C,SAAO,eAAe,IAAI,MAAmB,EAAE,OAAO,GAAwC;AAC5F,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,GAAG,IAAI,MAAM;AACrB,aAAO,iBAAiB,eAAe,EAAE;AAAA,IAC3C,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
import { useQuery } from "@tanstack/react-query";
|
|
4
|
-
import {
|
|
4
|
+
import { apiFetch } from "../../../infra/http/api-fetch";
|
|
5
5
|
import { useActiveSubscription } from "../../subscriptions/hooks/find-active-subscription.hook";
|
|
6
|
-
import { withAction } from "../../../utils/withAction";
|
|
7
6
|
import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
|
|
8
7
|
function calculateSummary(operations) {
|
|
9
8
|
const today = /* @__PURE__ */ new Date();
|
|
@@ -56,7 +55,10 @@ function useIaCredits() {
|
|
|
56
55
|
const queryKey = useAuthQueryKey(["ia-credits", subscriptionId]);
|
|
57
56
|
const query = useQuery({
|
|
58
57
|
queryKey,
|
|
59
|
-
queryFn:
|
|
58
|
+
queryFn: ({ signal }) => apiFetch(
|
|
59
|
+
`/api/subscriptions/${subscriptionId}/ia-credits`,
|
|
60
|
+
{ signal }
|
|
61
|
+
),
|
|
60
62
|
enabled: subscriptionId != null
|
|
61
63
|
});
|
|
62
64
|
const operations = query.data?.data ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/ia-credits/hooks/ia-credits.hook.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/ia-credits/hooks/ia-credits.hook.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { PaginatedSuccessResult } from '../../../infra/api/types';\nimport type { IaCreditOperation, IaCreditsSummary } from '../types';\nimport { useActiveSubscription } from '../../subscriptions/hooks/find-active-subscription.hook';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nfunction calculateSummary(operations: IaCreditOperation[]): IaCreditsSummary {\n const today = new Date();\n const todayDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());\n\n const adds = operations.filter((op) => op.operation === 'add');\n const subtracts = operations.filter((op) => op.operation === 'subtract');\n\n let totalCredits = 0;\n let usedCredits = 0;\n let nextExpirationInDays: number | null = null;\n let nextExpiringCredits: number | null = null;\n\n for (const add of adds) {\n const expirationRaw = add.expiration_time;\n if (!expirationRaw) continue;\n\n const expiration = new Date(expirationRaw);\n const expirationDate = new Date(\n expiration.getFullYear(),\n expiration.getMonth(),\n expiration.getDate()\n );\n\n const expiredByDate = expirationDate.getTime() < todayDate.getTime();\n const hasExpired = add.has_expired || expiredByDate;\n\n if (hasExpired) continue;\n\n const addedCredits = add.operation_value;\n\n const consumedForAdd = subtracts\n .filter((sub) => String(sub.consumed_from_add_id) === String(add.id))\n .reduce((sum, sub) => sum + sub.operation_value, 0);\n\n const remainingForAdd = Math.max(0, addedCredits - consumedForAdd);\n\n totalCredits += addedCredits;\n usedCredits += consumedForAdd;\n\n const diffMs = expirationDate.getTime() - todayDate.getTime();\n const days = Math.max(0, Math.ceil(diffMs / (1000 * 60 * 60 * 24)));\n\n if (remainingForAdd > 0) {\n if (nextExpirationInDays === null || days < nextExpirationInDays) {\n nextExpirationInDays = days;\n nextExpiringCredits = remainingForAdd;\n }\n }\n }\n\n const availableCredits = Math.max(0, totalCredits - usedCredits);\n\n return {\n totalCredits,\n usedCredits,\n availableCredits,\n nextExpiringCredits,\n nextExpirationInDays,\n };\n}\n\nexport function useIaCredits() {\n const { data: subscriptionData, isPending: isSubscriptionLoading } = useActiveSubscription();\n const subscription = subscriptionData?.data?.[0] ?? null;\n const subscriptionId = subscription?.id;\n const queryKey = useAuthQueryKey(['ia-credits', subscriptionId]);\n\n const query = useQuery({\n queryKey,\n queryFn: ({ signal }) =>\n apiFetch<PaginatedSuccessResult<IaCreditOperation>>(\n `/api/subscriptions/${subscriptionId}/ia-credits`,\n { signal }\n ),\n enabled: subscriptionId != null,\n });\n\n const operations = query.data?.data ?? [];\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const summary = useMemo(() => calculateSummary(operations), [operations]);\n\n return {\n subscription,\n operations,\n summary,\n isLoading: isSubscriptionLoading || query.isPending,\n isSubscriptionLoading,\n isCreditsLoading: query.isPending,\n isError: query.isError,\n error: query.error,\n };\n}\n"],"mappings":";AAEA,SAAS,eAAe;AACxB,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAGzB,SAAS,6BAA6B;AACtC,SAAS,uBAAuB;AAEhC,SAAS,iBAAiB,YAAmD;AAC3E,QAAM,QAAQ,oBAAI,KAAK;AACvB,QAAM,YAAY,IAAI,KAAK,MAAM,YAAY,GAAG,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC;AAEjF,QAAM,OAAO,WAAW,OAAO,CAAC,OAAO,GAAG,cAAc,KAAK;AAC7D,QAAM,YAAY,WAAW,OAAO,CAAC,OAAO,GAAG,cAAc,UAAU;AAEvE,MAAI,eAAe;AACnB,MAAI,cAAc;AAClB,MAAI,uBAAsC;AAC1C,MAAI,sBAAqC;AAEzC,aAAW,OAAO,MAAM;AACtB,UAAM,gBAAgB,IAAI;AAC1B,QAAI,CAAC,cAAe;AAEpB,UAAM,aAAa,IAAI,KAAK,aAAa;AACzC,UAAM,iBAAiB,IAAI;AAAA,MACzB,WAAW,YAAY;AAAA,MACvB,WAAW,SAAS;AAAA,MACpB,WAAW,QAAQ;AAAA,IACrB;AAEA,UAAM,gBAAgB,eAAe,QAAQ,IAAI,UAAU,QAAQ;AACnE,UAAM,aAAa,IAAI,eAAe;AAEtC,QAAI,WAAY;AAEhB,UAAM,eAAe,IAAI;AAEzB,UAAM,iBAAiB,UACpB,OAAO,CAAC,QAAQ,OAAO,IAAI,oBAAoB,MAAM,OAAO,IAAI,EAAE,CAAC,EACnE,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,iBAAiB,CAAC;AAEpD,UAAM,kBAAkB,KAAK,IAAI,GAAG,eAAe,cAAc;AAEjE,oBAAgB;AAChB,mBAAe;AAEf,UAAM,SAAS,eAAe,QAAQ,IAAI,UAAU,QAAQ;AAC5D,UAAM,OAAO,KAAK,IAAI,GAAG,KAAK,KAAK,UAAU,MAAO,KAAK,KAAK,GAAG,CAAC;AAElE,QAAI,kBAAkB,GAAG;AACvB,UAAI,yBAAyB,QAAQ,OAAO,sBAAsB;AAChE,+BAAuB;AACvB,8BAAsB;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,mBAAmB,KAAK,IAAI,GAAG,eAAe,WAAW;AAE/D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,eAAe;AAC7B,QAAM,EAAE,MAAM,kBAAkB,WAAW,sBAAsB,IAAI,sBAAsB;AAC3F,QAAM,eAAe,kBAAkB,OAAO,CAAC,KAAK;AACpD,QAAM,iBAAiB,cAAc;AACrC,QAAM,WAAW,gBAAgB,CAAC,cAAc,cAAc,CAAC;AAE/D,QAAM,QAAQ,SAAS;AAAA,IACrB;AAAA,IACA,SAAS,CAAC,EAAE,OAAO,MACjB;AAAA,MACE,sBAAsB,cAAc;AAAA,MACpC,EAAE,OAAO;AAAA,IACX;AAAA,IACF,SAAS,kBAAkB;AAAA,EAC7B,CAAC;AAED,QAAM,aAAa,MAAM,MAAM,QAAQ,CAAC;AAGxC,QAAM,UAAU,QAAQ,MAAM,iBAAiB,UAAU,GAAG,CAAC,UAAU,CAAC;AAExE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,yBAAyB,MAAM;AAAA,IAC1C;AAAA,IACA,kBAAkB,MAAM;AAAA,IACxB,SAAS,MAAM;AAAA,IACf,OAAO,MAAM;AAAA,EACf;AACF;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
|
|
3
|
+
import { pagesService } from "../services/pages.service";
|
|
4
|
+
function createCountPagesHandler() {
|
|
5
|
+
return async function GET() {
|
|
6
|
+
return safeRouteHandler(async () => ({
|
|
7
|
+
total: await pagesService.countPages()
|
|
8
|
+
}));
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
createCountPagesHandler
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=count-pages.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/pages/handlers/count-pages.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { pagesService } from '../services/pages.service';\n\nexport function createCountPagesHandler() {\n return async function GET() {\n return safeRouteHandler(async () => ({\n total: await pagesService.countPages(),\n }));\n };\n}\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,0BAA0B;AACxC,SAAO,eAAe,MAAM;AAC1B,WAAO,iBAAiB,aAAa;AAAA,MACnC,OAAO,MAAM,aAAa,WAAW;AAAA,IACvC,EAAE;AAAA,EACJ;AACF;","names":[]}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
|
-
import {
|
|
3
|
+
import { apiFetch } from "../../../infra/http/api-fetch";
|
|
4
4
|
import { PAGES_QUERY_KEY } from "../constants/query-keys.constants";
|
|
5
|
-
import { withAction } from "../../../utils/withAction";
|
|
6
5
|
import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
|
|
7
6
|
const COUNT_PAGES_QUERY_KEY = [...PAGES_QUERY_KEY, "count"];
|
|
8
7
|
function useCountPages() {
|
|
9
8
|
const queryKey = useAuthQueryKey([...COUNT_PAGES_QUERY_KEY]);
|
|
10
9
|
return useQuery({
|
|
11
10
|
queryKey,
|
|
12
|
-
queryFn: async () => {
|
|
13
|
-
const result = await
|
|
11
|
+
queryFn: async ({ signal }) => {
|
|
12
|
+
const result = await apiFetch("/api/pages/count", { signal });
|
|
14
13
|
return result.total;
|
|
15
14
|
},
|
|
16
15
|
staleTime: 3e4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/pages/hooks/count-pages.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/pages/hooks/count-pages.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport { PAGES_QUERY_KEY } from '../constants/query-keys.constants';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport const COUNT_PAGES_QUERY_KEY = [...PAGES_QUERY_KEY, 'count'] as const;\n\nexport function useCountPages() {\n const queryKey = useAuthQueryKey([...COUNT_PAGES_QUERY_KEY]);\n\n return useQuery({\n queryKey,\n queryFn: async ({ signal }) => {\n const result = await apiFetch<{ total: number }>('/api/pages/count', { signal });\n return result.total;\n },\n staleTime: 30_000,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAEzB,MAAM,wBAAwB,CAAC,GAAG,iBAAiB,OAAO;AAE1D,SAAS,gBAAgB;AAC9B,QAAM,WAAW,gBAAgB,CAAC,GAAG,qBAAqB,CAAC;AAE3D,SAAO,SAAS;AAAA,IACd;AAAA,IACA,SAAS,OAAO,EAAE,OAAO,MAAM;AAC7B,YAAM,SAAS,MAAM,SAA4B,oBAAoB,EAAE,OAAO,CAAC;AAC/E,aAAO,OAAO;AAAA,IAChB;AAAA,IACA,WAAW;AAAA,EACb,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
|
|
3
|
+
import { plansService } from "../services/plans.service";
|
|
4
|
+
function createFindPlanByIdHandler() {
|
|
5
|
+
return async function GET(_req, { params }) {
|
|
6
|
+
return safeRouteHandler(async () => {
|
|
7
|
+
const { id } = await params;
|
|
8
|
+
return plansService.findById(id);
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
createFindPlanByIdHandler
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=find-plan-by-id.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/plans/handlers/find-plan-by-id.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { plansService } from '../services/plans.service';\n\nexport function createFindPlanByIdHandler() {\n return async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {\n return safeRouteHandler(async () => {\n const { id } = await params;\n return plansService.findById(id);\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,4BAA4B;AAC1C,SAAO,eAAe,IAAI,MAAmB,EAAE,OAAO,GAAwC;AAC5F,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,GAAG,IAAI,MAAM;AACrB,aAAO,aAAa,SAAS,EAAE;AAAA,IACjC,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
|
|
3
|
+
import { plansService } from "../services/plans.service";
|
|
4
|
+
function createListPlansHandler() {
|
|
5
|
+
return async function GET() {
|
|
6
|
+
return safeRouteHandler(async () => {
|
|
7
|
+
const { data: apiPlans } = await plansService.listPlans({
|
|
8
|
+
active: true,
|
|
9
|
+
search: "client",
|
|
10
|
+
sort: "id:ASC"
|
|
11
|
+
});
|
|
12
|
+
if (!apiPlans?.length) return [];
|
|
13
|
+
return [...apiPlans].sort((a, b) => a.value - b.value);
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
createListPlansHandler
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=list-plans.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/plans/handlers/list-plans.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { plansService } from '../services/plans.service';\n\nexport function createListPlansHandler() {\n return async function GET() {\n return safeRouteHandler(async () => {\n const { data: apiPlans } = await plansService.listPlans({\n active: true,\n search: 'client',\n sort: 'id:ASC',\n });\n\n if (!apiPlans?.length) return [];\n\n return [...apiPlans].sort((a, b) => a.value - b.value);\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,yBAAyB;AACvC,SAAO,eAAe,MAAM;AAC1B,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,MAAM,SAAS,IAAI,MAAM,aAAa,UAAU;AAAA,QACtD,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,MAAM;AAAA,MACR,CAAC;AAED,UAAI,CAAC,UAAU,OAAQ,QAAO,CAAC;AAE/B,aAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK;AAAA,IACvD,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
|
-
import {
|
|
4
|
-
import { listPlansAction } from "../actions/list-plans.action";
|
|
3
|
+
import { apiFetch } from "../../../infra/http/api-fetch";
|
|
5
4
|
import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
|
|
6
5
|
const PLANS_QUERY_KEY = ["plans"];
|
|
7
6
|
function usePlans() {
|
|
8
7
|
const queryKey = useAuthQueryKey([...PLANS_QUERY_KEY]);
|
|
9
8
|
return useQuery({
|
|
10
9
|
queryKey,
|
|
11
|
-
queryFn:
|
|
10
|
+
queryFn: ({ signal }) => apiFetch("/api/plans", { signal }),
|
|
12
11
|
staleTime: Infinity,
|
|
13
12
|
gcTime: Infinity,
|
|
14
13
|
refetchOnWindowFocus: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/plans/hooks/list-plans.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/plans/hooks/list-plans.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { Plan } from '../types/plan.type';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport const PLANS_QUERY_KEY = ['plans'] as const;\n\nexport function usePlans() {\n const queryKey = useAuthQueryKey([...PLANS_QUERY_KEY]);\n\n return useQuery<Plan[]>({\n queryKey,\n queryFn: ({ signal }) => apiFetch<Plan[]>('/api/plans', { signal }),\n staleTime: Infinity,\n gcTime: Infinity,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n refetchOnMount: false,\n retry: 1,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,SAAS,uBAAuB;AAEzB,MAAM,kBAAkB,CAAC,OAAO;AAEhC,SAAS,WAAW;AACzB,QAAM,WAAW,gBAAgB,CAAC,GAAG,eAAe,CAAC;AAErD,SAAO,SAAiB;AAAA,IACtB;AAAA,IACA,SAAS,CAAC,EAAE,OAAO,MAAM,SAAiB,cAAc,EAAE,OAAO,CAAC;AAAA,IAClE,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,OAAO;AAAA,EACT,CAAC;AACH;","names":[]}
|