8️⃣PUT mutation
⚡ 1) Реализуем обновление карточки
Чтобы была полная картина CRUD операций реализуем заодно и редактирование карточки
⌚ Обязательно попробуйте проделать самостоятельно, по аналогии с добавлением карточки
❗ Еще раз показать применение Omit
// ❗Явное дублирование типов
export type ArgCreateCardType = {
cardsPack_id: string;
question?: string;
answer?: string;
grade?: CardGradeType;
shots?: number;
answerImg?: string;
questionImg?: string;
questionVideo?: string;
answerVideo?: string;
};
export type ArgUpdateCardType = {
_id: string;
question?: string;
answer?: string;
grade?: CardGradeType;
shots?: number;
answerImg?: string;
questionImg?: string;
questionVideo?: string;
answerVideo?: string;
};По итогу карточка должна обновиться и на мы должны это видеть без перезагрузки страницы 🚀
Ну давайте допитизируем ответ с сервера, потому что тут нам backend приподнес сюрприз 🎁
⚡ 2) Разбираемся с типизацией cards.api.types.ts
⚡2.1) Обратите внимание на значения карточки которые пришли с бека при обновлении

Т.е. появились дополнительные необязательные поля. И в GET запросе мы увидим уже не соответствующие типизации карточки. Тут конечно вопросы к бекенду, почему так получается и в реальной жизни / в том числе на стажировке вы обязаны подойти к бэкендеру и обсудить с ним эти моменты. Но мы просто немного поправим типизацию CardType
⚡2.2) Ну еще сделаем более универсальную типизацию ответа с сервера
☝По итогу немного уменьшили дублирование типов
Last updated