dhilt / dharmadict

MIT License
1 stars 2 forks source link

API remove term #21

Closed dhilt closed 7 years ago

dhilt commented 7 years ago

Нужен новый метод на сервере

DELETE /api/terms/:id

Только Админ может им пользоваться.

Он вызывает removeById на контроллере terms.

К нему нужна deleteTermSpec. Там, помимо проверок, должно производиться удаление всех тестовых терминов. Спека вызывается предпоследней в списке mocha.opts.

dyuvzhenko commented 7 years ago

@dhilt Готово: https://github.com/dhilt/dharmadict/commit/136662531f9e543af1ce57a1947c63cc5c21be05

dyuvzhenko commented 7 years ago

@dhilt validator.remove(termId) наверное лишний на этом api. На роуте вида /api/terms/:id мы либо получаем строку, либо не получаем ничего. /api/terms/ или /api/terms - сервер воспримет как несуществующий адрес, а то что написано в качестве :id - это всегда строка. На всякий случай написал (https://github.com/dhilt/dharmadict/commit/136662531f9e543af1ce57a1947c63cc5c21be05#diff-7b4fbbaec63876fb43466a039ba917cbR51) случай обращения к адресу без :id, но сдается мне это лишнее.

dhilt commented 7 years ago

@BitDen API метод и метод контроллера живут в разных мирах. То что у нас API сработает только если будет передан id не должно влиять на защиту метода контроллера. Например, на создание пользователя у нас нет API, но есть метод контроллера и именно этот метод мы тестируем и с его помощью создаем тестовых пользователей. Возможно имело бы смысл тестировать методы контроллера отдельно от API методов... но не в этот раз. Завтра помимо API появятся другие точки входа, использующие те же контроллеры контроллеры (как наш createUserSpec). И я вижу хороший тест на 404, только уберу проверку на не-success...