@assemblis/contracts 0.1.6 → 0.1.8

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/index.js CHANGED
@@ -1 +1 @@
1
- import e from"zod";var t,a,r,n,o;!function(e){e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH"}(t||(t={})),function(e){e.ID=":ID",e.NAME=":NAME"}(a||(a={})),function(e){e.ACCOUNT_REPORTS="/account/reports",e.ASSEMBLIES="/assemblies",e.FEEDBACK="/feedback",e.INTEREST_ASSEMBLIS="/interest/assemblis",e.INTEREST_MUTIRAO="/interest/mutirao",e.LOGS="/logs",e.PINS="/pins",e.SURVEYS="/surveys",e.SURVEY_RESPONSES="/assemblies/:ID/survey-responses/:NAME"}(r||(r={})),function(e){e.DISCARDED="DISCARDED",e.DRAFTED="DRAFT",e.PUBLISHED="PUBLISHED",e.CHANGED="CHANGED"}(n||(n={})),function(e){e.DELIBERATION="deliberation",e.DEMOGRAPHIC_DATA="demographic-data",e.PRE_ASSEMBLY="pre-assembly",e.POST_ASSEMBLY="post-assembly"}(o||(o={}));const i=e.coerce.date().transform(e=>e.toISOString()),s=e=>e.nullish().transform(e=>e??null),d=e.object({id:e.uuid(),created_at:i,updated_at:i,uri:e.string(),alt:e.string(),src:e.string(),sizes:e.string(),srcset:e.string()}),c=e.object({label:e.string(),value:e.coerce.number().int()}),p=e.object({published_at:s(i),title:s(e.string()),description:s(e.string()),location:s(e.string()),outputs:s(e.string().array()),initiation_type:s(e.string()),recruitment_method:s(e.string()),recruitment_description:s(e.string()),participant_count:s(e.int()),organiser_reflections:s(e.string()),organiser_report_url:s(e.string()),location_details:s(e.string()),date:s(e.string()),duration:s(e.int()),contact_information_url:s(e.string()),cover_image_id:s(e.string())}),u=e.object({id:e.uuid(),created_at:i,updated_at:i,published_at:s(i),state:e.enum(["DISCARDED","DRAFTED","PUBLISHED","CHANGED"]),viewer_password:e.string(),draft_content:s(p),published_content:s(p),media:e.object({images:d.array()})});e.object({id:e.uuid(),created_at:i,updated_at:i,sub:e.string(),is_mutirao:e.boolean()});const _={endpoint:()=>r.ACCOUNT_REPORTS,method:t.GET,payload:e.never(),response:e.object({reports:u.array()})},l={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}`,method:t.GET,payload:e.never(),response:u},b={endpoint:()=>r.ACCOUNT_REPORTS,method:t.POST,payload:s(p.omit({cover_image_id:!0})),response:u},g={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/content`,method:t.PUT,payload:p.omit({cover_image_id:!0}),response:u},m={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/discard`,method:t.PATCH,payload:e.never(),response:s(u)},y={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/publish`,method:t.PATCH,payload:e.object({published_at:i}),response:u},S={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/unpublish`,method:t.PATCH,payload:e.never(),response:u},E={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/cover-image`,method:t.POST,payload:d.pick({alt:!0}),response:u},T={payload:e.object({route:e.string(),text:e.string(),metadata:e.unknown()}),response:e.string()},f={payload:e.object({message:e.string().optional(),data:e.record(e.string(),e.string().optional()).optional(),metadata:e.object({origin:e.string(),route:e.string(),status:e.number()})}),response:e.string()},j={payload:e.object({type:e.literal("user.created"),object:e.literal("event"),data:e.object({id:e.string(),email_addresses:e.object({email_address:e.string()}).array()})}),response:e.string()},O=e.object({id:e.uuid(),text:e.string()}),A={payload:e.undefined(),response:e.object({id:e.uuid(),created_at:i,updated_at:i,name:e.string(),sections:e.object({primary:O,secondary:O.array(),options:c.array()}).array()})},R={payload:e.object({answers:e.object({question_id:e.uuid(),answer_value:e.coerce.number().int()}).array()}),response:e.object({total:e.number().int()})},C=e.object({visible_on_profile:e.boolean(),description:s(e.string())}),I=e.object({text:e.string(),agreed:s(e.coerce.number().int()),against:s(e.coerce.number().int()),abstained:s(e.coerce.number().int()),include_in_action_plan:e.boolean().default(!0),assembly_id:e.uuid()}),v=e.object({text:e.string(),complete:e.boolean().default(!1),action_id:e.uuid(),assembly_id:e.uuid()}),P=e.object({published_at:s(i),name:e.string(),about:s(e.string()),topics:e.string().array(),country:s(e.string()),hide:e.boolean().default(!1)}),x={payload:P,response:P.extend({id:e.uuid(),created_at:i,updated_at:i,image_src:s(e.string()),has_image:e.boolean().meta({deprecated:!0}),user_id:e.uuid().meta({deprecated:!0})})},D={payload:e.undefined(),response:e.object({assemblies:x.response.array()})},h=e.object({visible_on_profile:e.boolean(),name:s(e.string()),description:s(e.string()),type:s(e.string())}),N=e.object({visible_on_profile:e.boolean(),registration_link:s(e.string()),start_date:s(i)}),U=e.object({visible_on_profile:e.boolean(),background:s(e.string())}),H=e.object({visible_on_profile:e.boolean(),organisation_types:e.string().array(),description:s(e.string())}),$=e.object({visible_on_profile:e.boolean(),organisation_types:e.string().array(),description:s(e.string())}),k=e.object({visible_on_profile:e.boolean(),decision_method:s(e.string())}),w=e.object({visible_on_profile:e.boolean(),recruitment_method:s(e.string()),community:s(e.string())}),B=e.object({visible_on_profile:e.boolean(),support_options:e.string().array()}),G=e.object({visible_on_profile:e.boolean()}),L={payload:x.payload.extend({organisation:s(h.extend({id:e.uuid().optional()})),event_details:s(N),story:s(U),supporters:s(H),funders:s($),facilitation:s(k),participants:s(w),support:s(B),action_plan:s(C.extend({actions:I.omit({assembly_id:!0}).extend({id:e.uuid().optional(),tasks:v.omit({action_id:!0,assembly_id:!0}).extend({id:e.uuid().optional()}).array(),updates:e.unknown().array()}).array(),updates:e.unknown().array()})),surveys:s(G)}),response:x.response.omit({user_id:!0}).extend({is_own:e.boolean(),organisation:s(h.extend({id:e.uuid(),created_at:i,updated_at:i})),event_details:s(N.extend({created_at:i,updated_at:i})),story:s(U.extend({created_at:i,updated_at:i})),supporters:s(H.extend({created_at:i,updated_at:i})),funders:s($.extend({created_at:i,updated_at:i})),facilitation:s(k.extend({created_at:i,updated_at:i})),participants:s(w.extend({created_at:i,updated_at:i})),support:s(B.extend({created_at:i,updated_at:i})),action_plan:s(C.extend({actions:I.omit({assembly_id:!0}).extend({id:e.uuid(),created_at:i,updated_at:e.coerce.date().transform(e=>e.toISOString()),tasks:v.omit({action_id:!0,assembly_id:!0}).extend({id:e.uuid(),created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString())}).array(),updates:e.unknown().array()}).extend({created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString())}).array(),updates:e.unknown().array()}).and(e.object({created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString())}))),surveys:s(G.extend({created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString())}).extend({data:e.record(e.string(),e.object({total:e.number().int(),responses:e.record(e.string(),c.array())}))}))})},M={payload:e.object({country:e.string(),email:e.string(),text:s(e.string())}),response:e.object({id:e.uuid(),created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString()),country:e.string(),text:s(e.string()),hide:e.boolean(),image_src:s(e.string()),has_image:e.boolean().meta({deprecated:!0})})},F={payload:e.undefined(),response:e.object({assemblies:x.response.array(),pins:M.response.array()})};export{r as ApiEndpoint,t as ApiRestMethod,a as ApiRouteParameter,D as AssembliesListSchema,L as AssemblyDetailSchema,x as AssemblyOverviewSchema,T as FeedbackSchema,l as GetAccountReportsIdSchema,_ as GetAccountReportsSchema,f as LogSchema,m as PatchAccountReportsIdDiscardSchema,y as PatchAccountReportsIdPublishSchema,S as PatchAccountReportsIdUnpublishSchema,F as PinListSchema,M as PinSchema,E as PostAccountReportsIdCoverImageSchema,b as PostAccountReportsSchema,g as PutAccountReportsIdContentSchema,j as RegisterSchema,n as ReportState,o as SurveyName,R as SurveyResponseSchema,A as SurveySchema};
1
+ import e from"zod";var t,a,r,n;!function(e){e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH"}(t||(t={})),function(e){e.ID=":ID",e.NAME=":NAME"}(a||(a={})),function(e){e.ACCOUNT_REPORTS="/account/reports",e.ASSEMBLIES="/assemblies",e.FEEDBACK="/feedback",e.INTEREST_ASSEMBLIS="/interest/assemblis",e.INTEREST_MUTIRAO="/interest/mutirao",e.LOGS="/logs",e.PINS="/pins",e.SURVEYS="/surveys",e.SURVEY_RESPONSES="/assemblies/:ID/survey-responses/:NAME"}(r||(r={})),function(e){e.DELIBERATION="deliberation",e.DEMOGRAPHIC_DATA="demographic-data",e.PRE_ASSEMBLY="pre-assembly",e.POST_ASSEMBLY="post-assembly"}(n||(n={}));const o=e.coerce.date().transform(e=>e.toISOString()),i=e=>e.nullish().transform(e=>e??null),s=e.object({id:e.uuid(),created_at:o,updated_at:o,uri:e.string(),alt:e.string(),src:e.string(),sizes:e.string(),srcset:e.string()}),d=e.object({label:e.string(),value:e.coerce.number().int()}),c=e.object({published_at:i(o),title:i(e.string()),description:i(e.string()),location:i(e.string()),outputs:i(e.string().array()),initiation_type:i(e.string()),recruitment_method:i(e.string()),recruitment_description:i(e.string()),participant_count:i(e.int()),organiser_reflections:i(e.string()),organiser_report_url:i(e.string()),location_details:i(e.string()),date:i(e.string()),duration:i(e.int()),contact_information_url:i(e.string()),cover_image_id:i(e.string())}),p=e.object({id:e.uuid(),created_at:o,updated_at:o,published_at:i(o),state:e.enum(["DISCARDED","DRAFTED","PUBLISHED","CHANGED"]),viewer_password:e.string(),draft_content:i(c),published_content:i(c),media:e.object({images:s.array()})});e.object({id:e.uuid(),created_at:o,updated_at:o,sub:e.string(),is_mutirao:e.boolean()});const u={endpoint:()=>r.ACCOUNT_REPORTS,method:t.GET,payload:e.never(),response:e.object({reports:p.array()})},_={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}`,method:t.GET,payload:e.never(),response:p},l={endpoint:()=>r.ACCOUNT_REPORTS,method:t.POST,payload:i(c.omit({cover_image_id:!0})),response:p},b={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/content`,method:t.PUT,payload:c.omit({cover_image_id:!0}),response:p},g={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/discard`,method:t.PATCH,payload:e.never(),response:i(p)},m={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/publish`,method:t.PATCH,payload:e.object({published_at:o}),response:p},y={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/unpublish`,method:t.PATCH,payload:e.never(),response:p},S={endpoint:e=>`${r.ACCOUNT_REPORTS}/${e}/cover-image`,method:t.POST,payload:s.pick({alt:!0}),response:p},T={payload:e.object({route:e.string(),text:e.string(),metadata:e.unknown()}),response:e.string()},f={payload:e.object({message:e.string().optional(),data:e.record(e.string(),e.string().optional()).optional(),metadata:e.object({origin:e.string(),route:e.string(),status:e.number()})}),response:e.string()},j={payload:e.object({type:e.literal("user.created"),object:e.literal("event"),data:e.object({id:e.string(),email_addresses:e.object({email_address:e.string()}).array()})}),response:e.string()},O=e.object({id:e.uuid(),text:e.string()}),E={payload:e.undefined(),response:e.object({id:e.uuid(),created_at:o,updated_at:o,name:e.string(),sections:e.object({primary:O,secondary:O.array(),options:d.array()}).array()})},A={payload:e.object({answers:e.object({question_id:e.uuid(),answer_value:e.coerce.number().int()}).array()}),response:e.object({total:e.number().int()})},v=e.object({visible_on_profile:e.boolean(),description:i(e.string())}),R=e.object({text:e.string(),agreed:i(e.coerce.number().int()),against:i(e.coerce.number().int()),abstained:i(e.coerce.number().int()),include_in_action_plan:e.boolean().default(!0),assembly_id:e.uuid()}),x=e.object({text:e.string(),complete:e.boolean().default(!1),action_id:e.uuid(),assembly_id:e.uuid()}),C=e.object({published_at:i(o),name:e.string(),about:i(e.string()),topics:e.string().array(),country:i(e.string()),hide:e.boolean().default(!1)}),P={payload:C,response:C.extend({id:e.uuid(),created_at:o,updated_at:o,image_src:i(e.string()),has_image:e.boolean().meta({deprecated:!0}),user_id:e.uuid().meta({deprecated:!0})})},I={payload:e.undefined(),response:e.object({assemblies:P.response.array()})},h=e.object({visible_on_profile:e.boolean(),name:i(e.string()),description:i(e.string()),type:i(e.string())}),N=e.object({visible_on_profile:e.boolean(),registration_link:i(e.string()),start_date:i(o)}),U=e.object({visible_on_profile:e.boolean(),background:i(e.string())}),D=e.object({visible_on_profile:e.boolean(),organisation_types:e.string().array(),description:i(e.string())}),$=e.object({visible_on_profile:e.boolean(),organisation_types:e.string().array(),description:i(e.string())}),k=e.object({visible_on_profile:e.boolean(),decision_method:i(e.string())}),w=e.object({visible_on_profile:e.boolean(),recruitment_method:i(e.string()),community:i(e.string())}),M=e.object({visible_on_profile:e.boolean(),support_options:e.string().array()}),H=e.object({visible_on_profile:e.boolean()}),B={payload:P.payload.extend({organisation:i(h.extend({id:e.uuid().optional()})),event_details:i(N),story:i(U),supporters:i(D),funders:i($),facilitation:i(k),participants:i(w),support:i(M),action_plan:i(v.extend({actions:R.omit({assembly_id:!0}).extend({id:e.uuid().optional(),tasks:x.omit({action_id:!0,assembly_id:!0}).extend({id:e.uuid().optional()}).array(),updates:e.unknown().array()}).array(),updates:e.unknown().array()})),surveys:i(H)}),response:P.response.omit({user_id:!0}).extend({is_own:e.boolean(),organisation:i(h.extend({id:e.uuid(),created_at:o,updated_at:o})),event_details:i(N.extend({created_at:o,updated_at:o})),story:i(U.extend({created_at:o,updated_at:o})),supporters:i(D.extend({created_at:o,updated_at:o})),funders:i($.extend({created_at:o,updated_at:o})),facilitation:i(k.extend({created_at:o,updated_at:o})),participants:i(w.extend({created_at:o,updated_at:o})),support:i(M.extend({created_at:o,updated_at:o})),action_plan:i(v.extend({actions:R.omit({assembly_id:!0}).extend({id:e.uuid(),created_at:o,updated_at:e.coerce.date().transform(e=>e.toISOString()),tasks:x.omit({action_id:!0,assembly_id:!0}).extend({id:e.uuid(),created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString())}).array(),updates:e.unknown().array()}).extend({created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString())}).array(),updates:e.unknown().array()}).and(e.object({created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString())}))),surveys:i(H.extend({created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString())}).extend({data:e.record(e.string(),e.object({total:e.number().int(),responses:e.record(e.string(),d.array())}))}))})},G={payload:e.object({country:e.string(),email:e.string(),text:i(e.string())}),response:e.object({id:e.uuid(),created_at:e.coerce.date().transform(e=>e.toISOString()),updated_at:e.coerce.date().transform(e=>e.toISOString()),country:e.string(),text:i(e.string()),hide:e.boolean(),image_src:i(e.string()),has_image:e.boolean().meta({deprecated:!0})})},L={payload:e.undefined(),response:e.object({assemblies:P.response.array(),pins:G.response.array()})};export{r as ApiEndpoint,t as ApiRestMethod,a as ApiRouteParameter,I as AssembliesListSchema,B as AssemblyDetailSchema,P as AssemblyOverviewSchema,T as FeedbackSchema,_ as GetAccountReportsIdSchema,u as GetAccountReportsSchema,f as LogSchema,g as PatchAccountReportsIdDiscardSchema,m as PatchAccountReportsIdPublishSchema,y as PatchAccountReportsIdUnpublishSchema,L as PinListSchema,G as PinSchema,S as PostAccountReportsIdCoverImageSchema,l as PostAccountReportsSchema,b as PutAccountReportsIdContentSchema,j as RegisterSchema,n as SurveyName,A as SurveyResponseSchema,E as SurveySchema};
@@ -1,7 +1,8 @@
1
1
  import z from 'zod';
2
- import { ApiEndpoint, ApiRestMethod } from '../types';
2
+ import { ApiRestMethod } from '../types';
3
+ type AccountEndpoint = `/account/${string}`;
3
4
  export declare const GetAccountReportsSchema: {
4
- endpoint: () => ApiEndpoint;
5
+ endpoint: () => AccountEndpoint;
5
6
  method: ApiRestMethod;
6
7
  payload: z.ZodNever;
7
8
  response: z.ZodObject<{
@@ -137,7 +138,7 @@ export declare const GetAccountReportsSchema: {
137
138
  }, z.core.$strip>;
138
139
  };
139
140
  export declare const GetAccountReportsIdSchema: {
140
- endpoint: (reportId: string) => string;
141
+ endpoint: (reportId: string) => AccountEndpoint;
141
142
  method: ApiRestMethod;
142
143
  payload: z.ZodNever;
143
144
  response: z.ZodObject<{
@@ -271,7 +272,7 @@ export declare const GetAccountReportsIdSchema: {
271
272
  }, z.core.$strip>;
272
273
  };
273
274
  export declare const PostAccountReportsSchema: {
274
- endpoint: () => ApiEndpoint;
275
+ endpoint: () => AccountEndpoint;
275
276
  method: ApiRestMethod;
276
277
  payload: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodObject<{
277
278
  published_at: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>>, z.ZodTransform<string | null, string | null | undefined>>;
@@ -453,7 +454,7 @@ export declare const PostAccountReportsSchema: {
453
454
  }, z.core.$strip>;
454
455
  };
455
456
  export declare const PutAccountReportsIdContentSchema: {
456
- endpoint: (reportId: string) => string;
457
+ endpoint: (reportId: string) => AccountEndpoint;
457
458
  method: ApiRestMethod;
458
459
  payload: z.ZodObject<{
459
460
  published_at: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>>, z.ZodTransform<string | null, string | null | undefined>>;
@@ -603,7 +604,7 @@ export declare const PutAccountReportsIdContentSchema: {
603
604
  }, z.core.$strip>;
604
605
  };
605
606
  export declare const PatchAccountReportsIdDiscardSchema: {
606
- endpoint: (reportId: string) => string;
607
+ endpoint: (reportId: string) => AccountEndpoint;
607
608
  method: ApiRestMethod;
608
609
  payload: z.ZodNever;
609
610
  response: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodObject<{
@@ -847,7 +848,7 @@ export declare const PatchAccountReportsIdDiscardSchema: {
847
848
  } | null | undefined>>;
848
849
  };
849
850
  export declare const PatchAccountReportsIdPublishSchema: {
850
- endpoint: (reportId: string) => string;
851
+ endpoint: (reportId: string) => AccountEndpoint;
851
852
  method: ApiRestMethod;
852
853
  payload: z.ZodObject<{
853
854
  published_at: z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>;
@@ -983,7 +984,7 @@ export declare const PatchAccountReportsIdPublishSchema: {
983
984
  }, z.core.$strip>;
984
985
  };
985
986
  export declare const PatchAccountReportsIdUnpublishSchema: {
986
- endpoint: (reportId: string) => string;
987
+ endpoint: (reportId: string) => AccountEndpoint;
987
988
  method: ApiRestMethod;
988
989
  payload: z.ZodNever;
989
990
  response: z.ZodObject<{
@@ -1117,7 +1118,7 @@ export declare const PatchAccountReportsIdUnpublishSchema: {
1117
1118
  }, z.core.$strip>;
1118
1119
  };
1119
1120
  export declare const PostAccountReportsIdCoverImageSchema: {
1120
- endpoint: (reportId: string) => string;
1121
+ endpoint: (reportId: string) => AccountEndpoint;
1121
1122
  method: ApiRestMethod;
1122
1123
  payload: z.ZodObject<{
1123
1124
  alt: z.ZodString;
@@ -1252,3 +1253,4 @@ export declare const PostAccountReportsIdCoverImageSchema: {
1252
1253
  }, z.core.$strip>;
1253
1254
  }, z.core.$strip>;
1254
1255
  };
1256
+ export {};
@@ -19,12 +19,6 @@ export declare enum ApiEndpoint {
19
19
  SURVEYS = "/surveys",
20
20
  SURVEY_RESPONSES = "/assemblies/:ID/survey-responses/:NAME"
21
21
  }
22
- export declare enum ReportState {
23
- DISCARDED = "DISCARDED",
24
- DRAFTED = "DRAFT",
25
- PUBLISHED = "PUBLISHED",
26
- CHANGED = "CHANGED"
27
- }
28
22
  export declare enum SurveyName {
29
23
  DELIBERATION = "deliberation",
30
24
  DEMOGRAPHIC_DATA = "demographic-data",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assemblis/contracts",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -5,45 +5,51 @@ import { ApiEndpoint, ApiRestMethod } from '../types';
5
5
  import { ImageSchema, ReportContentSchema, ReportSchema } from './base';
6
6
  import { isoDateString, maybe } from './utils';
7
7
 
8
+ type AccountEndpoint = `/account/${string}`;
9
+
8
10
  export const GetAccountReportsSchema = {
9
- endpoint: () => ApiEndpoint.ACCOUNT_REPORTS,
11
+ endpoint: (): AccountEndpoint => ApiEndpoint.ACCOUNT_REPORTS,
10
12
  method: ApiRestMethod.GET,
11
13
  payload: z.never(),
12
14
  response: z.object({ reports: ReportSchema.array() })
13
15
  };
14
16
 
15
17
  export const GetAccountReportsIdSchema = {
16
- endpoint: (reportId: string) => `${ApiEndpoint.ACCOUNT_REPORTS}/${reportId}`,
18
+ endpoint: (reportId: string): AccountEndpoint =>
19
+ `${ApiEndpoint.ACCOUNT_REPORTS}/${reportId}`,
17
20
  method: ApiRestMethod.GET,
18
21
  payload: z.never(),
19
22
  response: ReportSchema
20
23
  };
21
24
 
22
25
  export const PostAccountReportsSchema = {
23
- endpoint: () => ApiEndpoint.ACCOUNT_REPORTS,
26
+ endpoint: (): AccountEndpoint => ApiEndpoint.ACCOUNT_REPORTS,
24
27
  method: ApiRestMethod.POST,
25
28
  payload: maybe(ReportContentSchema.omit({ cover_image_id: true })),
26
29
  response: ReportSchema
27
30
  };
28
31
 
29
32
  export const PutAccountReportsIdContentSchema = {
30
- endpoint: (reportId: string) =>
33
+ endpoint: (reportId: string): AccountEndpoint =>
31
34
  `${ApiEndpoint.ACCOUNT_REPORTS}/${reportId}/content`,
32
35
  method: ApiRestMethod.PUT,
33
- payload: ReportContentSchema.omit({ cover_image_id: true }),
36
+ payload: ReportContentSchema.omit({
37
+ published_at: true,
38
+ cover_image_id: true
39
+ }),
34
40
  response: ReportSchema
35
41
  };
36
42
 
37
43
  export const PatchAccountReportsIdDiscardSchema = {
38
- endpoint: (reportId: string) =>
44
+ endpoint: (reportId: string): AccountEndpoint =>
39
45
  `${ApiEndpoint.ACCOUNT_REPORTS}/${reportId}/discard`,
40
46
  method: ApiRestMethod.PATCH,
41
- payload: z.never(),
47
+ payload: z.nullish(z.object()),
42
48
  response: maybe(ReportSchema)
43
49
  };
44
50
 
45
51
  export const PatchAccountReportsIdPublishSchema = {
46
- endpoint: (reportId: string) =>
52
+ endpoint: (reportId: string): AccountEndpoint =>
47
53
  `${ApiEndpoint.ACCOUNT_REPORTS}/${reportId}/publish`,
48
54
  method: ApiRestMethod.PATCH,
49
55
  payload: z.object({ published_at: isoDateString }),
@@ -51,15 +57,15 @@ export const PatchAccountReportsIdPublishSchema = {
51
57
  };
52
58
 
53
59
  export const PatchAccountReportsIdUnpublishSchema = {
54
- endpoint: (reportId: string) =>
60
+ endpoint: (reportId: string): AccountEndpoint =>
55
61
  `${ApiEndpoint.ACCOUNT_REPORTS}/${reportId}/unpublish`,
56
62
  method: ApiRestMethod.PATCH,
57
- payload: z.never(),
63
+ payload: z.nullish(z.object()),
58
64
  response: ReportSchema
59
65
  };
60
66
 
61
67
  export const PostAccountReportsIdCoverImageSchema = {
62
- endpoint: (reportId: string) =>
68
+ endpoint: (reportId: string): AccountEndpoint =>
63
69
  `${ApiEndpoint.ACCOUNT_REPORTS}/${reportId}/cover-image`,
64
70
  method: ApiRestMethod.POST,
65
71
  payload: ImageSchema.pick({ alt: true }),
package/src/types/api.ts CHANGED
@@ -9,11 +9,15 @@ import {
9
9
  PinListSchema,
10
10
  PinSchema,
11
11
  PostAccountReportsIdCoverImageSchema,
12
+ PutAccountReportsIdContentSchema,
12
13
  RegisterSchema,
13
14
  SurveyResponseSchema,
14
15
  SurveySchema
15
16
  } from '../schemas';
16
17
 
18
+ export type PutAccountReportsIdContentPayload = z.infer<
19
+ (typeof PutAccountReportsIdContentSchema)['payload']
20
+ >;
17
21
  export type PublishReportPayload = z.infer<
18
22
  (typeof PatchAccountReportsIdPublishSchema)['payload']
19
23
  >;