Merge branch 'ASTRA-51' into 'master'

WIP Добавил обновление Аллергий

See merge request andrusyakka/urban-couscous!320
This commit is contained in:
Aleksey Demin
2023-04-19 15:14:16 +00:00
6 changed files with 120 additions and 50 deletions

View File

@@ -0,0 +1,19 @@
export function ruleNotValue(val, text) {
return val || text || false;
}
export function ruleLengthValue(val, minLength, text) {
return (val && val.length === minLength) || text || false;
}
export function ruleEmailValue(val, text) {
return (
(val &&
val.length < 100 &&
val.includes("@") &&
val.match(/@(?=\S+)/) &&
val.match(/(?<=\S+)@/)) ||
text ||
false
);
}

View File

@@ -1,5 +1,5 @@
import { fetchWrapper } from "../fetchWrapper";
import { removeEmptyFields } from "./changesObjects";
import { removeEmptyFields, checkChangeData } from "./changesObjects";
export function getRequestChangeData(
createData,
@@ -26,3 +26,39 @@ export function getRequestChangeData(
}
return Promise.resolve();
}
export function getRequestArrayData(
initData,
updateData,
updateName,
idUpdateName,
api,
key
) {
const deleteRequests = initData
.filter((el) => !updateData.find((data) => data.id === el.id))
.map((el) => fetchWrapper.del(`${api}/${key}/${el.id}/delete/`));
const requests = updateData.map((el) => {
const requestObj = {
[updateName]: idUpdateName,
...el,
};
delete requestObj.id;
if (!el?.id) {
return fetchWrapper.post(`${api}/${key}/create/`, { ...requestObj });
}
if (
el?.id &&
checkChangeData(
initData.find((obj) => obj.id === el.id),
el
)
) {
return fetchWrapper.post(`${api}/${key}/${el.id}/update/`, {
...requestObj,
});
}
return Promise.resolve();
});
return requests.concat(deleteRequests);
}