Skip to content

Commit

Permalink
feat: add client api
Browse files Browse the repository at this point in the history
  • Loading branch information
olexh committed Aug 21, 2024
1 parent 8049e28 commit a8c9395
Show file tree
Hide file tree
Showing 8 changed files with 162 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/services/api/client/createClient.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import {
BaseFetchRequestProps,
fetchRequest,
} from '@/services/api/fetchRequest';

export interface Response extends API.ClientInfo {}

export interface Params {
name: string;
description: string;
endpoint: string;
}

export default async function req(
props: BaseFetchRequestProps<Params>,
): Promise<Response> {
return fetchRequest<Response>({
...props,
path: `/client`,
method: 'post',
});
}
21 changes: 21 additions & 0 deletions src/services/api/client/deleteClient.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import {
BaseFetchRequestProps,
fetchRequest,
} from '@/services/api/fetchRequest';

export interface Response extends API.ClientInfo {}

export interface Params {
client_reference: string;
}

export default async function req({
params,
...props
}: BaseFetchRequestProps<Params>): Promise<Response> {
return fetchRequest<Response>({
...props,
path: `/client/${params?.client_reference}`,
method: 'delete',
});
}
21 changes: 21 additions & 0 deletions src/services/api/client/getClient.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import {
BaseFetchRequestProps,
fetchRequest,
} from '@/services/api/fetchRequest';

export interface Response extends API.Client {}

export interface Params {
client_reference: string;
}

export default async function req({
params,
...props
}: BaseFetchRequestProps<Params>): Promise<Response> {
return fetchRequest<Response>({
...props,
path: `/client/${params?.client_reference}`,
method: 'get',
});
}
16 changes: 16 additions & 0 deletions src/services/api/client/getClients.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import {
BaseFetchRequestProps,
fetchRequest,
} from '@/services/api/fetchRequest';

export interface Response extends API.WithPagination<API.Client> {}

export default async function req(
props?: BaseFetchRequestProps,
): Promise<Response> {
return fetchRequest<Response>({
...props,
path: `/client`,
method: 'get',
});
}
21 changes: 21 additions & 0 deletions src/services/api/client/getFullClient.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import {
BaseFetchRequestProps,
fetchRequest,
} from '@/services/api/fetchRequest';

export interface Response extends API.Client {}

export interface Params {
client_reference: string;
}

export default async function req({
params,
...props
}: BaseFetchRequestProps<Params>): Promise<Response> {
return fetchRequest<Response>({
...props,
path: `/client/${params?.client_reference}/full`,
method: 'get',
});
}
25 changes: 25 additions & 0 deletions src/services/api/client/updateClient.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import {
BaseFetchRequestProps,
fetchRequest,
} from '@/services/api/fetchRequest';

export interface Response extends API.ClientInfo {}

export interface Params {
client_reference: string;
name: string;
description: string;
endpoint: string;
revoke_secret: boolean;
}

export default async function req({
params,
...props
}: BaseFetchRequestProps<Params>): Promise<Response> {
return fetchRequest<Response>({
...props,
path: `/client/${params?.client_reference}`,
method: 'put',
});
}
21 changes: 21 additions & 0 deletions src/services/api/client/verifyClient.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import {
BaseFetchRequestProps,
fetchRequest,
} from '@/services/api/fetchRequest';

export interface Response extends API.Client {}

export interface Params {
client_reference: string;
}

export default async function req({
params,
...props
}: BaseFetchRequestProps<Params>): Promise<Response> {
return fetchRequest<Response>({
...props,
path: `/client/${params?.client_reference}/verify`,
method: 'post',
});
}
15 changes: 15 additions & 0 deletions src/types/api.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -632,5 +632,20 @@ declare global {
| API.Collection;

type MainContent = Exclude<API.Content, API.Collection>;

type Client = {
reference: string;
name: string;
description: string;
verified: boolean;
user: API.User;
created: number;
updated: number;
};

type ClientInfo = Client & {
secret: string;
endpoint: string;
};
}
}

0 comments on commit a8c9395

Please sign in to comment.