169 похожих чатов

Привет. Есть пользователь, у него есть Name, Surname, Email, Password, etc. Нужна

страница с возможностью изменять каждое поле. По идеи, пользователь может захотеть изменить все или что-то одно.
Вопрос следующий: Желательно писать одну мутацию и посылать поля, которые изменяются, соответственно делать Nullable остальные или писать для каждого поля мутацию? Во втором случае, как я понимаю, нужно будет посылать oldPassword или токен, чтобы разрешить изменить, хотя, наверное, можно для всего namespace отправить аргументом.
Вопрос возник из-за прочтения подхода namespace в мутациях.
Спасибо.

7 ответов

8 просмотров

лучше 1й вариант, общая мутация, а поля которые юзер не указал (undefined) не обновлять (многие orm и не обновляют undefined поля). Токен естественно нужно посылать, а иначе как понять кому вообще нужно менять поля

Dima- Автор вопроса
𝘂𝘅𝗻𝗮𝗺𝗲
лучше 1й вариант, общая мутация, а поля которые юз...

Про токен понятно, да. Были сомнения про отдельные мутации. Спасибо за мнение)

если следовать советам спикеров на канале Apollo, то несколько мутаций (отдельно под каждую задачу) лучше одной с кучей опциональных полей, то есть вместо updateUser updateUserName и так далее

Dima- Автор вопроса
Alexander Ovchinnikov 🦁
если следовать советам спикеров на канале Apollo, ...

Эх, мнения разделились) После прочтения статьи Павла, сложилось такое же мнение.

Alexander Ovchinnikov 🦁
если следовать советам спикеров на канале Apollo, ...

Не совсем так. Разделять надо по сущностям. Тут выше был пример у парнишки где при обновлении пользователя обновлялись и роли. Вот такие вещи надо разделять обязательно.

Dima- Автор вопроса
Олег Линьков
Не совсем так. Разделять надо по сущностям. Тут вы...

Вы к тому, что смысл мутации несет один, правильно понимаю?

Dima
Вы к тому, что смысл мутации несет один, правильно...

Ну у вас есть модель пользователя. Есть внешние связи. Роли это часть пользователя, но не часть модели. Это связанная сущность.

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Всем привет, препод задал вопрос, подскажите пожалуйста, какой адрес инкапсулирует указатель?
Свинка Пеппа
7
Почему никто ещё не написал квантовую виртуальную машину на Windows?
КТ315
7
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
Карта сайта