Эндпоинт который возвращает промокоды, созданные текущим пользователем#47
Merged
danuk merged 3 commits intodanuk:masterfrom Mar 4, 2026
Merged
Conversation
danuk
reviewed
Mar 4, 2026
app/lib/Core/Promo.pm
Outdated
| return @data; | ||
| } | ||
|
|
||
| sub api_created { |
Owner
There was a problem hiding this comment.
Уже есть метод: api_get, который выводит список использованных промокодов для пользователя.
Предлагаю:
- Переделать метод api_get, убрать used_by в запросе, чтобы он показывал ВСЕ промики пользователя
- Добавить в ответ больше полей (как предложено у тебя), в том числе, добавить поле used_by
- Не показывать в ответе поле template_id (для безопасности). Пользователь этим не управляет, а значит ему не нужно знать эту инфу.
Так как у нас нет возможности создавать промики самим пользователем через API, то не вижу смысла делать отдельный метод для их отображения. Используй стандартный, существующий метод: v1/pormo, который должен показывать все промики пользователя, использованные и нет.
…to include used_date and used_by fields for user-created promo codes.
Contributor
Author
|
Поправил. Посмотри все ли корректно для reusable кодов. |
danuk
approved these changes
Mar 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Сейчас в клиентском API нет способа получить список промокодов, которые пользователь сам создал. Так как на промокоды можно подвязать различные функции получение такого списка в клиентом пригодилось бы.
Впервые делаю PR. Может что-то упустил. Использовал ИИ для изменения. Тесты провел - вроде все ок.
Summary
/shm/v1/promo/created, который возвращает промокоды, созданные текущим пользователем.Changes
1. Новый метод
Promo::api_createdФайл
app/lib/Core/Promo.pm2. Новый эндпоинт
/shm/v1/promo/created+ SwaggerФайл
app/public_html/shm/v1.cgi:Testing
Интеграционный тест промокодов:
docker compose exec core prove -v /app/t/integration/promo/promo.tРезультат:
Check promo— OKCheck reusable promo— OKResult: PASSРучная проверка нового эндпоинта:
/shm/v1/promo/createdвозвращает именно эти три промокода, с ожидаемыми полями и без данных других пользователей.Пример ответа:
{ "TZ": "Europe/Moscow", "data": [ { "created": "2026-03-03 23:37:56", "expire": null, "promo_code": "CID2_M8EBAFXRN1", "reusable": 0, "status": 1, "template_id": "test_promo_for_cid2", "used": 0 }, { "created": "2026-03-03 23:37:56", "expire": null, "promo_code": "CID2_N3RARNNX6P", "reusable": 0, "status": 1, "template_id": "test_promo_for_cid2", "used": 0 }, { "created": "2026-03-03 23:37:56", "expire": null, "promo_code": "CID2_TKBT1KTTZX", "reusable": 0, "status": 1, "template_id": "test_promo_for_cid2", "used": 0 } ], "items": 3, "limit": 25, "offset": 0, "status": 200, "version": "0.0.1-" }