#115 Добавить отложенные публикации #262
Merged
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.
PR реализует запрашиваемый функционал для #115 для реализации публикации (видимости) постов по
publish_at
Note
В требованиях было сказано добавить колонку
publish_at
с useCurrent.Если мы это оставим в таком виде, то старым постам установится дата выполнения миграции, что не совсем корректно.
В качестве решения я добавил обновление
publish_at
текущим значением колонкиcreated_at
, это делает строчкаNote
В требованиях не было сказано о выводимых данных
created_at
для постов.Мне кажется, нужно выводить именно
publish_at
, а неcreated_at
, так как публикация может быть отложена на неделю и в момент публикации постах будет отображаться дата недельной давности.Этот момент связан с тезисом выше, так как если мы перейдём на
publish_at
, то дата там должна содержаться корректная.Note
В требованиях было сказано сделать так
Но я сделал вот так
Добавленное равенство с now() поможет с тестированием, чтобы только что созданные фейковые посты попали в scope
В тестах есть проверка кейса с
null
значением вpublish_at
- в этом случае пост не попадёт в выборку никогда.Данный PR не реализует выбор даты публикации на frontend части и нотификацию в Telegram в момент публикации.
Я отключил нотификацию, если пост запланирован в будущее.
Warning
Есть момент с сортировкой: возможно стоит изменить с поля
id
на полеpublish_at
, так как при отложенной публикации их фактический вывод может быть нарушен. Например мы добавили пост на завтра и на сегодня, в этом случае завтра "свежий" пост будет находиться после вчерашнего.Если так сделаем, то лучше добавить индекс на
publish_at
Предлагаю сделать реализацию выбора даты публикации для frontend части второй итерацией.
Там же нотификацию в Telegram канал, так как появится возможность создания постов в будущее.