fleet/frontend/services/entities/labels.ts
Martavis Parker 384c987389
Removed all traces of Redux from the app! (#5287)
* clean up routes and useless components

* component clean up

* removed redux from routes

* rename file

* moved useDeepEffect hook with others

* removed redux, fleet, app_constants dirs; added types to utilities

* style cleanup

* typo fix

* removed unused ts-ignore comments

* removed redux packages!!!

* formatting

* fixed typing for simple search function

* updated frontend readme
2022-04-22 09:45:35 -07:00

66 lines
1.5 KiB
TypeScript

/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import sendRequest from "services";
import endpoints from "utilities/endpoints";
import helpers from "utilities/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 error;
}
},
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 error;
}
},
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 error;
}
},
};