DDD icon indicating copy to clipboard operation
DDD copied to clipboard

FIx: pg driver's output goes beyond database layer

Open KLarpen opened this issue 2 years ago • 0 comments

Signed-off-by: Vladyslav Karpenko [email protected]

Начиная с примера b-transport оба варианта транспорта (http & ws) возвращают результат выполнения API метода в исходном виде. Ранее именно на этом шаге выполнялась выборка только свойства result.rows, т.к. все API методы были завязаны на результат из БД.

Поскольку результат возвращаемый методами API сервисов не изменился согласно правки транспорта — на клиента приходит оригинальный полный ответ от pg драйвера.

Знімок екрана 2023-01-15 о 11 08 16

Данная правка корректирует скрипт db.js, чтобы все методы возвращали масив результатов, а не полный объект ответа драйвера БД. В результате ответ API методов возвращается к состоянию согласно контракту предыдущих примеров.

Знімок екрана 2023-01-15 о 12 22 00

Для испытания в файлы static/client.js добавлял сценарий

await api.country.read(3);
await api.user.update(4, { login: 'iskandar', password: 'zulqarnayn' });

В исходниках там только запрос к api.talks.say который не проявляет ситуацию.

Примечание

Решение предполагает, что ранее на мастер ветку уже был применён пул запрос #15 . В коде уже содержится соответствующая правка для b-transport и c-commonjs, но НЕ d-message. Поэтому логично применять #15 первым.

KLarpen avatar Jan 17 '23 17:01 KLarpen