import { Endpoint } from '../../types/endpoint'; import { ProjectObject } from '../../types/object'; // GET /project export type getProjectsParameters = Record; export const getProjects: Endpoint = { path: () => '/project', method: 'get', bodyParams: [], pathParams: [], queryParams: [], }; export type getProjectsResponse = { projects: ProjectObject[]; }; // GET /project/:projectCode export type getProjectParameters = { projectCode: string; admin?: boolean; }; export const getProject: Endpoint = { path: (e) => `/project/${e.projectCode}`, method: 'get', bodyParams: [], pathParams: [], queryParams: ['admin'], }; export type getProjectResponse = ProjectObject; // POST /project export type postProjectParameters = { code: string; name: string; url: string; iconUrl: string; bannerUrl: string; ruleUrl: string; status: string; userId: number; desc?: string; }; export const postProject: Endpoint = { path: () => `/project`, method: 'post', bodyParams: ['code', 'bannerUrl', 'name', 'desc', 'iconUrl', 'ruleUrl', 'status', 'url', 'userId'], pathParams: [], queryParams: [], }; export type postProjectResponse = Record; // PATCH /project/:projectCode export type patchProjectParameters = { projectCode: string; url?: string; iconUrl?: string; bannerUrl?: string; ruleUrl?: string; desc?: string; status?: string; name?: string; isOAuthAble?: boolean; redirectUrls?: string[]; }; export const patchProject: Endpoint = { path: (e) => `/project/${e.projectCode}`, method: 'patch', bodyParams: ['name', 'bannerUrl', 'desc', 'iconUrl', 'ruleUrl', 'status', 'url', 'isOAuthAble', 'redirectUrls'], pathParams: ['projectCode'], queryParams: [], }; export type patchProjectResponse = Record; // DELETE /project/:projectCode export type deleteProjectParameters = { projectCode: string; }; export const deleteProject: Endpoint = { path: (e) => `/project/${e.projectCode}`, method: 'delete', bodyParams: [], pathParams: ['projectCode'], queryParams: [], }; export type deleteProjectResponse = Record;