Hackathon: Post Reminders (#20555)
This PR adds the post reminder backend work. We add a new API endpoint via which a user can set a reminder for a post. An ephemeral message will be sent down the line to let the user know about the action. And then after the time is over, the system admin bot will send a DM message to the user about the reminder post.
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
e6459b97de
Коммит
20cb042362
@@ -180,6 +180,8 @@ db/migrations/mysql/000089_add-channelid-to-reaction.down.sql
|
||||
db/migrations/mysql/000089_add-channelid-to-reaction.up.sql
|
||||
db/migrations/mysql/000090_create_enums.down.sql
|
||||
db/migrations/mysql/000090_create_enums.up.sql
|
||||
db/migrations/mysql/000091_create_post_reminder.down.sql
|
||||
db/migrations/mysql/000091_create_post_reminder.up.sql
|
||||
db/migrations/postgres/000001_create_teams.down.sql
|
||||
db/migrations/postgres/000001_create_teams.up.sql
|
||||
db/migrations/postgres/000002_create_team_members.down.sql
|
||||
@@ -360,3 +362,5 @@ db/migrations/postgres/000089_add-channelid-to-reaction.down.sql
|
||||
db/migrations/postgres/000089_add-channelid-to-reaction.up.sql
|
||||
db/migrations/postgres/000090_create_enums.down.sql
|
||||
db/migrations/postgres/000090_create_enums.up.sql
|
||||
db/migrations/postgres/000091_create_post_reminder.down.sql
|
||||
db/migrations/postgres/000091_create_post_reminder.up.sql
|
||||
|
||||
16
db/migrations/mysql/000091_create_post_reminder.down.sql
Обычный файл
16
db/migrations/mysql/000091_create_post_reminder.down.sql
Обычный файл
@@ -0,0 +1,16 @@
|
||||
SET @preparedStatement = (SELECT IF(
|
||||
(
|
||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE table_name = 'PostReminders'
|
||||
AND table_schema = DATABASE()
|
||||
AND index_name = 'idx_postreminders_targettime'
|
||||
) > 0,
|
||||
'DROP INDEX idx_postreminders_targettime ON PostReminders;',
|
||||
'SELECT 1'
|
||||
));
|
||||
|
||||
PREPARE removeIndexIfExists FROM @preparedStatement;
|
||||
EXECUTE removeIndexIfExists;
|
||||
DEALLOCATE PREPARE removeIndexIfExists;
|
||||
|
||||
DROP TABLE IF EXISTS PostReminders;
|
||||
21
db/migrations/mysql/000091_create_post_reminder.up.sql
Обычный файл
21
db/migrations/mysql/000091_create_post_reminder.up.sql
Обычный файл
@@ -0,0 +1,21 @@
|
||||
CREATE TABLE IF NOT EXISTS PostReminders (
|
||||
PostId varchar(26) NOT NULL,
|
||||
UserId varchar(26) NOT NULL,
|
||||
TargetTime bigint,
|
||||
PRIMARY KEY (PostId, UserId)
|
||||
);
|
||||
|
||||
SET @preparedStatement = (SELECT IF(
|
||||
(
|
||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE table_name = 'PostReminders'
|
||||
AND table_schema = DATABASE()
|
||||
AND index_name = 'idx_postreminders_targettime'
|
||||
) > 0,
|
||||
'SELECT 1',
|
||||
'CREATE INDEX idx_postreminders_targettime ON PostReminders(TargetTime);'
|
||||
));
|
||||
|
||||
PREPARE createIndexIfNotExists FROM @preparedStatement;
|
||||
EXECUTE createIndexIfNotExists;
|
||||
DEALLOCATE PREPARE createIndexIfNotExists;
|
||||
3
db/migrations/postgres/000091_create_post_reminder.down.sql
Обычный файл
3
db/migrations/postgres/000091_create_post_reminder.down.sql
Обычный файл
@@ -0,0 +1,3 @@
|
||||
DROP INDEX IF EXISTS idx_postreminders_targettime;
|
||||
|
||||
DROP TABLE IF EXISTS postreminders;
|
||||
8
db/migrations/postgres/000091_create_post_reminder.up.sql
Обычный файл
8
db/migrations/postgres/000091_create_post_reminder.up.sql
Обычный файл
@@ -0,0 +1,8 @@
|
||||
CREATE TABLE IF NOT EXISTS postreminders (
|
||||
postid varchar(26) NOT NULL,
|
||||
userid varchar(26) NOT NULL,
|
||||
targettime bigint,
|
||||
PRIMARY KEY (postid, userid)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_postreminders_targettime ON postreminders(targettime);
|
||||
Ссылка в новой задаче
Block a user