Show errors for Save as Copy action (#11761)

* show errors for Save as Copy action

* extract error handler for both save & saveAsCopy
This commit is contained in:
Azri Kahar
2022-02-22 00:11:17 +08:00
committed by GitHub
parent b2d37321af
commit 8a85e2adc1

View File

@@ -144,25 +144,7 @@ export function useItem(collection: Ref<string>, primaryKey: Ref<string | number
edits.value = {};
return response.data.data;
} catch (err: any) {
if (err?.response?.data?.errors) {
validationErrors.value = err.response.data.errors
.filter((err: APIError) => VALIDATION_TYPES.includes(err?.extensions?.code))
.map((err: APIError) => {
return err.extensions;
});
const otherErrors = err.response.data.errors.filter(
(err: APIError) => VALIDATION_TYPES.includes(err?.extensions?.code) === false
);
if (otherErrors.length > 0) {
otherErrors.forEach(unexpectedError);
}
} else {
unexpectedError(err);
}
throw err;
saveErrorHandler(err);
} finally {
saving.value = false;
}
@@ -207,21 +189,33 @@ export function useItem(collection: Ref<string>, primaryKey: Ref<string | number
return primaryKeyField.value ? response.data.data[primaryKeyField.value.field] : null;
} catch (err: any) {
if (err?.response?.data?.errors) {
validationErrors.value = err.response.data.errors
.filter((err: APIError) => err?.extensions?.code === 'FAILED_VALIDATION')
.map((err: APIError) => {
return err.extensions;
});
} else {
unexpectedError(err);
throw err;
}
saveErrorHandler(err);
} finally {
saving.value = false;
}
}
function saveErrorHandler(err: any) {
if (err?.response?.data?.errors) {
validationErrors.value = err.response.data.errors
.filter((err: APIError) => VALIDATION_TYPES.includes(err?.extensions?.code))
.map((err: APIError) => {
return err.extensions;
});
const otherErrors = err.response.data.errors.filter(
(err: APIError) => VALIDATION_TYPES.includes(err?.extensions?.code) === false
);
if (otherErrors.length > 0) {
otherErrors.forEach(unexpectedError);
}
} else {
unexpectedError(err);
}
throw err;
}
async function archive() {
if (!collectionInfo.value?.meta?.archive_field) return;