refactor: use shared JSON mutation clients
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { apiFetch, type ApiSettings } from "@govoplan/core-webui";
|
import { apiFetch, apiPatchJson, apiPostJson, type ApiSettings } from "@govoplan/core-webui";
|
||||||
|
|
||||||
export type OrganizationUnitTypeItem = {
|
export type OrganizationUnitTypeItem = {
|
||||||
id: string;
|
id: string;
|
||||||
@@ -186,14 +186,6 @@ export type FunctionCreatePayload = SluggedCreatePayload & {
|
|||||||
act_in_place_allowed?: boolean | null;
|
act_in_place_allowed?: boolean | null;
|
||||||
};
|
};
|
||||||
|
|
||||||
function post<T, P extends Record<string, unknown>>(settings: ApiSettings, path: string, payload: P): Promise<T> {
|
|
||||||
return apiFetch<T>(settings, path, { method: "POST", body: JSON.stringify(payload) });
|
|
||||||
}
|
|
||||||
|
|
||||||
function patch<T, P extends Record<string, unknown>>(settings: ApiSettings, path: string, payload: P): Promise<T> {
|
|
||||||
return apiFetch<T>(settings, path, { method: "PATCH", body: JSON.stringify(payload) });
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getOrganizationModel(settings: ApiSettings): Promise<OrganizationModel> {
|
export function getOrganizationModel(settings: ApiSettings): Promise<OrganizationModel> {
|
||||||
return apiFetch<OrganizationModel>(settings, "/api/v1/organizations/model");
|
return apiFetch<OrganizationModel>(settings, "/api/v1/organizations/model");
|
||||||
}
|
}
|
||||||
@@ -203,61 +195,61 @@ export function getOrganizationSettings(settings: ApiSettings): Promise<Organiza
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function patchOrganizationSettings(settings: ApiSettings, payload: OrganizationSettingsUpdatePayload): Promise<OrganizationSettingsItem> {
|
export function patchOrganizationSettings(settings: ApiSettings, payload: OrganizationSettingsUpdatePayload): Promise<OrganizationSettingsItem> {
|
||||||
return patch(settings, "/api/v1/organizations/settings", payload);
|
return apiPatchJson(settings, "/api/v1/organizations/settings", payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createUnitType(settings: ApiSettings, payload: SluggedCreatePayload): Promise<OrganizationUnitTypeItem> {
|
export function createUnitType(settings: ApiSettings, payload: SluggedCreatePayload): Promise<OrganizationUnitTypeItem> {
|
||||||
return post(settings, "/api/v1/organizations/unit-types", payload);
|
return apiPostJson(settings, "/api/v1/organizations/unit-types", payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function patchUnitType(settings: ApiSettings, id: string, payload: Partial<SluggedCreatePayload>): Promise<OrganizationUnitTypeItem> {
|
export function patchUnitType(settings: ApiSettings, id: string, payload: Partial<SluggedCreatePayload>): Promise<OrganizationUnitTypeItem> {
|
||||||
return patch(settings, `/api/v1/organizations/unit-types/${encodeURIComponent(id)}`, payload);
|
return apiPatchJson(settings, `/api/v1/organizations/unit-types/${encodeURIComponent(id)}`, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createStructure(settings: ApiSettings, payload: StructureCreatePayload): Promise<OrganizationStructureItem> {
|
export function createStructure(settings: ApiSettings, payload: StructureCreatePayload): Promise<OrganizationStructureItem> {
|
||||||
return post(settings, "/api/v1/organizations/structures", payload);
|
return apiPostJson(settings, "/api/v1/organizations/structures", payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function patchStructure(settings: ApiSettings, id: string, payload: Partial<StructureCreatePayload>): Promise<OrganizationStructureItem> {
|
export function patchStructure(settings: ApiSettings, id: string, payload: Partial<StructureCreatePayload>): Promise<OrganizationStructureItem> {
|
||||||
return patch(settings, `/api/v1/organizations/structures/${encodeURIComponent(id)}`, payload);
|
return apiPatchJson(settings, `/api/v1/organizations/structures/${encodeURIComponent(id)}`, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createRelationType(settings: ApiSettings, payload: RelationTypeCreatePayload): Promise<OrganizationRelationTypeItem> {
|
export function createRelationType(settings: ApiSettings, payload: RelationTypeCreatePayload): Promise<OrganizationRelationTypeItem> {
|
||||||
return post(settings, "/api/v1/organizations/relation-types", payload);
|
return apiPostJson(settings, "/api/v1/organizations/relation-types", payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function patchRelationType(settings: ApiSettings, id: string, payload: Partial<RelationTypeCreatePayload>): Promise<OrganizationRelationTypeItem> {
|
export function patchRelationType(settings: ApiSettings, id: string, payload: Partial<RelationTypeCreatePayload>): Promise<OrganizationRelationTypeItem> {
|
||||||
return patch(settings, `/api/v1/organizations/relation-types/${encodeURIComponent(id)}`, payload);
|
return apiPatchJson(settings, `/api/v1/organizations/relation-types/${encodeURIComponent(id)}`, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createUnit(settings: ApiSettings, payload: UnitCreatePayload): Promise<OrganizationUnitItem> {
|
export function createUnit(settings: ApiSettings, payload: UnitCreatePayload): Promise<OrganizationUnitItem> {
|
||||||
return post(settings, "/api/v1/organizations/units", payload);
|
return apiPostJson(settings, "/api/v1/organizations/units", payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function patchUnit(settings: ApiSettings, id: string, payload: Partial<UnitCreatePayload>): Promise<OrganizationUnitItem> {
|
export function patchUnit(settings: ApiSettings, id: string, payload: Partial<UnitCreatePayload>): Promise<OrganizationUnitItem> {
|
||||||
return patch(settings, `/api/v1/organizations/units/${encodeURIComponent(id)}`, payload);
|
return apiPatchJson(settings, `/api/v1/organizations/units/${encodeURIComponent(id)}`, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createRelation(settings: ApiSettings, payload: RelationCreatePayload): Promise<OrganizationRelationItem> {
|
export function createRelation(settings: ApiSettings, payload: RelationCreatePayload): Promise<OrganizationRelationItem> {
|
||||||
return post(settings, "/api/v1/organizations/relations", payload);
|
return apiPostJson(settings, "/api/v1/organizations/relations", payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function patchRelation(settings: ApiSettings, id: string, payload: Partial<RelationCreatePayload>): Promise<OrganizationRelationItem> {
|
export function patchRelation(settings: ApiSettings, id: string, payload: Partial<RelationCreatePayload>): Promise<OrganizationRelationItem> {
|
||||||
return patch(settings, `/api/v1/organizations/relations/${encodeURIComponent(id)}`, payload);
|
return apiPatchJson(settings, `/api/v1/organizations/relations/${encodeURIComponent(id)}`, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createFunctionType(settings: ApiSettings, payload: FunctionTypeCreatePayload): Promise<OrganizationFunctionTypeItem> {
|
export function createFunctionType(settings: ApiSettings, payload: FunctionTypeCreatePayload): Promise<OrganizationFunctionTypeItem> {
|
||||||
return post(settings, "/api/v1/organizations/function-types", payload);
|
return apiPostJson(settings, "/api/v1/organizations/function-types", payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function patchFunctionType(settings: ApiSettings, id: string, payload: Partial<FunctionTypeCreatePayload>): Promise<OrganizationFunctionTypeItem> {
|
export function patchFunctionType(settings: ApiSettings, id: string, payload: Partial<FunctionTypeCreatePayload>): Promise<OrganizationFunctionTypeItem> {
|
||||||
return patch(settings, `/api/v1/organizations/function-types/${encodeURIComponent(id)}`, payload);
|
return apiPatchJson(settings, `/api/v1/organizations/function-types/${encodeURIComponent(id)}`, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createFunction(settings: ApiSettings, payload: FunctionCreatePayload): Promise<OrganizationFunctionItem> {
|
export function createFunction(settings: ApiSettings, payload: FunctionCreatePayload): Promise<OrganizationFunctionItem> {
|
||||||
return post(settings, "/api/v1/organizations/functions", payload);
|
return apiPostJson(settings, "/api/v1/organizations/functions", payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function patchFunction(settings: ApiSettings, id: string, payload: Partial<FunctionCreatePayload>): Promise<OrganizationFunctionItem> {
|
export function patchFunction(settings: ApiSettings, id: string, payload: Partial<FunctionCreatePayload>): Promise<OrganizationFunctionItem> {
|
||||||
return patch(settings, `/api/v1/organizations/functions/${encodeURIComponent(id)}`, payload);
|
return apiPatchJson(settings, `/api/v1/organizations/functions/${encodeURIComponent(id)}`, payload);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user