mirror of
https://github.com/empayre/fleet.git
synced 2024-11-06 17:05:18 +00:00
a2fe3bae7e
* New query pack table renders * services/entities created/updated with 5+ needed APIs requests for EditPacksPage * Refactor jsx to tsx PackQueriesListWrapper, EditPackForm, EditPackPage * Refactor to new patterns on useQuery, useEffect, and useState * Refactor to new pattern formData formatting * Edit, remove pack query modals * e2e test: packflow built to test create, update, delete of pack, fix brittle teamflow
66 lines
1.6 KiB
TypeScript
66 lines
1.6 KiB
TypeScript
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
import sendRequest from "services";
|
|
import endpoints from "fleet/endpoints";
|
|
import helpers from "fleet/helpers";
|
|
import { ILabel, ILabelFormData } from "interfaces/label";
|
|
|
|
export default {
|
|
create: async (formData: ILabelFormData) => {
|
|
const { LABELS } = endpoints;
|
|
|
|
try {
|
|
const { label: createdLabel } = await sendRequest(
|
|
"POST",
|
|
LABELS,
|
|
formData
|
|
);
|
|
|
|
return {
|
|
...createdLabel,
|
|
slug: helpers.labelSlug(createdLabel),
|
|
type: "custom",
|
|
};
|
|
} catch (error) {
|
|
console.error(error);
|
|
throw new Error("Could not create label.");
|
|
}
|
|
},
|
|
destroy: (label: ILabel) => {
|
|
const { LABELS } = endpoints;
|
|
const path = `${LABELS}/id/${label.id}`;
|
|
|
|
return sendRequest("DELETE", path);
|
|
},
|
|
loadAll: async () => {
|
|
const { LABELS } = endpoints;
|
|
|
|
try {
|
|
const response = await sendRequest("GET", LABELS);
|
|
return { labels: helpers.formatLabelResponse(response) };
|
|
} catch (error) {
|
|
console.error(error);
|
|
throw new Error("Could not load all labels.");
|
|
}
|
|
},
|
|
update: async (label: ILabel, updatedAttrs: ILabel) => {
|
|
const { LABELS } = endpoints;
|
|
const path = `${LABELS}/${label.id}`;
|
|
|
|
try {
|
|
const { label: updatedLabel } = await sendRequest(
|
|
"PATCH",
|
|
path,
|
|
updatedAttrs
|
|
);
|
|
return {
|
|
...updatedLabel,
|
|
slug: helpers.labelSlug(updatedLabel),
|
|
type: "custom",
|
|
};
|
|
} catch (error) {
|
|
console.error(error);
|
|
throw new Error("Could not update label.");
|
|
}
|
|
},
|
|
};
|