41 lines
2.1 KiB
TypeScript
41 lines
2.1 KiB
TypeScript
import { entityApi } from '../../../services/api';
|
|
import { EditableEntityRepository } from '../editable-entity-repository';
|
|
import type { EditableEntityRepositoryInterface } from '../editable-entity-repository';
|
|
import { fillUpdatePartialPrimitive } from '../util/fill-update-partial';
|
|
import { updateSingleRelatedRepository } from '../util/update-related';
|
|
|
|
const transformationTypeRepositoryPromise = import('./transformation-type-repository').then(
|
|
(m) => m.transformationTypeRepository,
|
|
);
|
|
const workRepositoryPromise = import('./work-repository').then((m) => m.workRepository);
|
|
|
|
export const transformationRepository: EditableEntityRepositoryInterface<TransformationSerializedInterface> =
|
|
new EditableEntityRepository(
|
|
(id) => entityApi.readTransformation(id),
|
|
(partial) => entityApi.createTransformation(partial),
|
|
(id, partial) => entityApi.updateTransformation(id, partial),
|
|
(id) => entityApi.deleteTransformation(id),
|
|
{
|
|
order: (updatePartial, key, updated, original): void => {
|
|
fillUpdatePartialPrimitive(updated, original, key, updatePartial);
|
|
},
|
|
type: (updatePartial, key, updated, original): void => {
|
|
fillUpdatePartialPrimitive(updated, original, key, updatePartial);
|
|
},
|
|
ofWork: (updatePartial, key, updated, original): void => {
|
|
fillUpdatePartialPrimitive(updated, original, key, updatePartial);
|
|
},
|
|
byWork: (updatePartial, key, updated, original): void => {
|
|
fillUpdatePartialPrimitive(updated, original, key, updatePartial);
|
|
},
|
|
},
|
|
{
|
|
type: (updatedPartial, key, updated, original): Promise<void> =>
|
|
updateSingleRelatedRepository(updatedPartial, key, transformationTypeRepositoryPromise, updated, original),
|
|
ofWork: (updatedPartial, key, updated, original): Promise<void> =>
|
|
updateSingleRelatedRepository(updatedPartial, key, workRepositoryPromise, updated, original),
|
|
byWork: (updatedPartial, key, updated, original): Promise<void> =>
|
|
updateSingleRelatedRepository(updatedPartial, key, workRepositoryPromise, updated, original),
|
|
},
|
|
);
|