8️⃣PUT mutation

⚡ 1) Реализуем обновление карточки

Чтобы была полная картина CRUD операций реализуем заодно и редактирование карточки

⌚ Обязательно попробуйте проделать самостоятельно, по аналогии с добавлением карточки

❗ Еще раз показать применение Omit

cards.api.types.ts
// ❗Явное дублирование типов

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