Обновлены модели и компоненты для управления поставками и расходниками. Добавлены новые поля в модели SupplyOrder и соответствующие резолверы для поддержки логистики. Реализованы компоненты уведомлений для отображения статуса логистических заявок и поставок. Оптимизирован интерфейс для улучшения пользовательского опыта, добавлены логи для диагностики запросов. Обновлены GraphQL схемы и мутации для поддержки новых функциональных возможностей.
This commit is contained in:
84
src/graphql/resolvers/index.ts
Normal file
84
src/graphql/resolvers/index.ts
Normal file
@ -0,0 +1,84 @@
|
||||
import { JSONScalar, DateTimeScalar } from "../scalars";
|
||||
import { authResolvers } from "./auth";
|
||||
import { employeeResolvers } from "./employees";
|
||||
import { logisticsResolvers } from "./logistics";
|
||||
import { suppliesResolvers } from "./supplies";
|
||||
|
||||
// Функция для объединения резолверов
|
||||
const mergeResolvers = (...resolvers: any[]) => {
|
||||
const result: any = {
|
||||
Query: {},
|
||||
Mutation: {},
|
||||
};
|
||||
|
||||
for (const resolver of resolvers) {
|
||||
if (resolver.Query) {
|
||||
Object.assign(result.Query, resolver.Query);
|
||||
}
|
||||
if (resolver.Mutation) {
|
||||
Object.assign(result.Mutation, resolver.Mutation);
|
||||
}
|
||||
// Объединяем другие типы резолверов (например, Employee, Organization и т.д.)
|
||||
for (const [key, value] of Object.entries(resolver)) {
|
||||
if (key !== "Query" && key !== "Mutation") {
|
||||
if (!result[key]) {
|
||||
result[key] = {};
|
||||
}
|
||||
Object.assign(result[key], value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
// Временно импортируем старые резолверы для частей, которые еще не вынесены
|
||||
// TODO: Постепенно убрать это после полного рефакторинга
|
||||
import { resolvers as oldResolvers } from "../resolvers";
|
||||
|
||||
// Объединяем новые модульные резолверы с остальными старыми
|
||||
export const resolvers = mergeResolvers(
|
||||
// Скалярные типы
|
||||
{
|
||||
JSON: JSONScalar,
|
||||
DateTime: DateTimeScalar,
|
||||
},
|
||||
|
||||
// Новые модульные резолверы
|
||||
authResolvers,
|
||||
employeeResolvers,
|
||||
logisticsResolvers,
|
||||
suppliesResolvers,
|
||||
|
||||
// Временно добавляем старые резолверы, исключая уже вынесенные
|
||||
{
|
||||
Query: {
|
||||
...oldResolvers.Query,
|
||||
// Исключаем уже вынесенные Query
|
||||
myEmployees: undefined,
|
||||
logisticsPartners: undefined,
|
||||
pendingSuppliesCount: undefined,
|
||||
},
|
||||
Mutation: {
|
||||
...oldResolvers.Mutation,
|
||||
// Исключаем уже вынесенные Mutation
|
||||
sendSmsCode: undefined,
|
||||
verifySmsCode: undefined,
|
||||
verifyInn: undefined,
|
||||
registerFulfillmentOrganization: undefined,
|
||||
createEmployee: undefined,
|
||||
updateEmployee: undefined,
|
||||
deleteEmployee: undefined,
|
||||
assignLogisticsToSupply: undefined,
|
||||
logisticsConfirmOrder: undefined,
|
||||
logisticsRejectOrder: undefined,
|
||||
},
|
||||
// Остальные типы пока оставляем из старых резолверов
|
||||
User: oldResolvers.User,
|
||||
Organization: oldResolvers.Organization,
|
||||
Product: oldResolvers.Product,
|
||||
// SupplyOrder: oldResolvers.SupplyOrder, // Удалено: отсутствует в старых резолверах
|
||||
// Employee берем из нового модуля
|
||||
Employee: undefined,
|
||||
}
|
||||
);
|
Reference in New Issue
Block a user