Skip to content

Commit 696f474

Browse files
authored
updated module/api for auto deleting messages (#23)
1 parent fb42ef9 commit 696f474

14 files changed

Lines changed: 322 additions & 72 deletions

File tree

client/lib/generated/api/settings.pb.dart

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -793,6 +793,8 @@ class UpdateDiscordReminderSettingsRequest extends $pb.GeneratedMessage {
793793
$fixnum.Int64? discordEndReminderMins,
794794
$core.String? discordStartReminderMessage,
795795
$core.String? discordEndReminderMessage,
796+
$core.bool? discordAutoDeleteStartReminder,
797+
$core.bool? discordAutoDeleteEndReminder,
796798
}) {
797799
final result = create();
798800
if (discordStartReminderMins != null)
@@ -803,6 +805,10 @@ class UpdateDiscordReminderSettingsRequest extends $pb.GeneratedMessage {
803805
result.discordStartReminderMessage = discordStartReminderMessage;
804806
if (discordEndReminderMessage != null)
805807
result.discordEndReminderMessage = discordEndReminderMessage;
808+
if (discordAutoDeleteStartReminder != null)
809+
result.discordAutoDeleteStartReminder = discordAutoDeleteStartReminder;
810+
if (discordAutoDeleteEndReminder != null)
811+
result.discordAutoDeleteEndReminder = discordAutoDeleteEndReminder;
806812
return result;
807813
}
808814

@@ -824,6 +830,8 @@ class UpdateDiscordReminderSettingsRequest extends $pb.GeneratedMessage {
824830
..aInt64(2, _omitFieldNames ? '' : 'discordEndReminderMins')
825831
..aOS(3, _omitFieldNames ? '' : 'discordStartReminderMessage')
826832
..aOS(4, _omitFieldNames ? '' : 'discordEndReminderMessage')
833+
..aOB(5, _omitFieldNames ? '' : 'discordAutoDeleteStartReminder')
834+
..aOB(6, _omitFieldNames ? '' : 'discordAutoDeleteEndReminder')
827835
..hasRequiredFields = false;
828836

829837
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
@@ -884,6 +892,24 @@ class UpdateDiscordReminderSettingsRequest extends $pb.GeneratedMessage {
884892
$core.bool hasDiscordEndReminderMessage() => $_has(3);
885893
@$pb.TagNumber(4)
886894
void clearDiscordEndReminderMessage() => $_clearField(4);
895+
896+
@$pb.TagNumber(5)
897+
$core.bool get discordAutoDeleteStartReminder => $_getBF(4);
898+
@$pb.TagNumber(5)
899+
set discordAutoDeleteStartReminder($core.bool value) => $_setBool(4, value);
900+
@$pb.TagNumber(5)
901+
$core.bool hasDiscordAutoDeleteStartReminder() => $_has(4);
902+
@$pb.TagNumber(5)
903+
void clearDiscordAutoDeleteStartReminder() => $_clearField(5);
904+
905+
@$pb.TagNumber(6)
906+
$core.bool get discordAutoDeleteEndReminder => $_getBF(5);
907+
@$pb.TagNumber(6)
908+
set discordAutoDeleteEndReminder($core.bool value) => $_setBool(5, value);
909+
@$pb.TagNumber(6)
910+
$core.bool hasDiscordAutoDeleteEndReminder() => $_has(5);
911+
@$pb.TagNumber(6)
912+
void clearDiscordAutoDeleteEndReminder() => $_clearField(6);
887913
}
888914

889915
class UpdateDiscordReminderSettingsResponse extends $pb.GeneratedMessage {

client/lib/generated/api/settings.pbjson.dart

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -340,12 +340,32 @@ const UpdateDiscordReminderSettingsRequest$json = {
340340
'10': 'discordEndReminderMessage',
341341
'17': true
342342
},
343+
{
344+
'1': 'discord_auto_delete_start_reminder',
345+
'3': 5,
346+
'4': 1,
347+
'5': 8,
348+
'9': 4,
349+
'10': 'discordAutoDeleteStartReminder',
350+
'17': true
351+
},
352+
{
353+
'1': 'discord_auto_delete_end_reminder',
354+
'3': 6,
355+
'4': 1,
356+
'5': 8,
357+
'9': 5,
358+
'10': 'discordAutoDeleteEndReminder',
359+
'17': true
360+
},
343361
],
344362
'8': [
345363
{'1': '_discord_start_reminder_mins'},
346364
{'1': '_discord_end_reminder_mins'},
347365
{'1': '_discord_start_reminder_message'},
348366
{'1': '_discord_end_reminder_message'},
367+
{'1': '_discord_auto_delete_start_reminder'},
368+
{'1': '_discord_auto_delete_end_reminder'},
349369
],
350370
};
351371

@@ -356,9 +376,14 @@ final $typed_data.Uint8List updateDiscordReminderSettingsRequestDescriptor = $co
356376
'aXNjb3JkX2VuZF9yZW1pbmRlcl9taW5zGAIgASgDSAFSFmRpc2NvcmRFbmRSZW1pbmRlck1pbn'
357377
'OIAQESSAoeZGlzY29yZF9zdGFydF9yZW1pbmRlcl9tZXNzYWdlGAMgASgJSAJSG2Rpc2NvcmRT'
358378
'dGFydFJlbWluZGVyTWVzc2FnZYgBARJEChxkaXNjb3JkX2VuZF9yZW1pbmRlcl9tZXNzYWdlGA'
359-
'QgASgJSANSGWRpc2NvcmRFbmRSZW1pbmRlck1lc3NhZ2WIAQFCHgocX2Rpc2NvcmRfc3RhcnRf'
360-
'cmVtaW5kZXJfbWluc0IcChpfZGlzY29yZF9lbmRfcmVtaW5kZXJfbWluc0IhCh9fZGlzY29yZF'
361-
'9zdGFydF9yZW1pbmRlcl9tZXNzYWdlQh8KHV9kaXNjb3JkX2VuZF9yZW1pbmRlcl9tZXNzYWdl');
379+
'QgASgJSANSGWRpc2NvcmRFbmRSZW1pbmRlck1lc3NhZ2WIAQESTwoiZGlzY29yZF9hdXRvX2Rl'
380+
'bGV0ZV9zdGFydF9yZW1pbmRlchgFIAEoCEgEUh5kaXNjb3JkQXV0b0RlbGV0ZVN0YXJ0UmVtaW'
381+
'5kZXKIAQESSwogZGlzY29yZF9hdXRvX2RlbGV0ZV9lbmRfcmVtaW5kZXIYBiABKAhIBVIcZGlz'
382+
'Y29yZEF1dG9EZWxldGVFbmRSZW1pbmRlcogBAUIeChxfZGlzY29yZF9zdGFydF9yZW1pbmRlcl'
383+
'9taW5zQhwKGl9kaXNjb3JkX2VuZF9yZW1pbmRlcl9taW5zQiEKH19kaXNjb3JkX3N0YXJ0X3Jl'
384+
'bWluZGVyX21lc3NhZ2VCHwodX2Rpc2NvcmRfZW5kX3JlbWluZGVyX21lc3NhZ2VCJQojX2Rpc2'
385+
'NvcmRfYXV0b19kZWxldGVfc3RhcnRfcmVtaW5kZXJCIwohX2Rpc2NvcmRfYXV0b19kZWxldGVf'
386+
'ZW5kX3JlbWluZGVy');
362387

363388
@$core.Deprecated('Use updateDiscordReminderSettingsResponseDescriptor instead')
364389
const UpdateDiscordReminderSettingsResponse$json = {

client/lib/generated/db/db.pb.dart

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,12 +579,14 @@ class Notification extends $pb.GeneratedMessage {
579579
$core.String? sessionId,
580580
$core.String? teamMemberId,
581581
$core.bool? sent,
582+
$core.String? discordMessageId,
582583
}) {
583584
final result = create();
584585
if (notificationType != null) result.notificationType = notificationType;
585586
if (sessionId != null) result.sessionId = sessionId;
586587
if (teamMemberId != null) result.teamMemberId = teamMemberId;
587588
if (sent != null) result.sent = sent;
589+
if (discordMessageId != null) result.discordMessageId = discordMessageId;
588590
return result;
589591
}
590592

@@ -606,6 +608,7 @@ class Notification extends $pb.GeneratedMessage {
606608
..aOS(2, _omitFieldNames ? '' : 'sessionId')
607609
..aOS(3, _omitFieldNames ? '' : 'teamMemberId')
608610
..aOB(4, _omitFieldNames ? '' : 'sent')
611+
..aOS(5, _omitFieldNames ? '' : 'discordMessageId')
609612
..hasRequiredFields = false;
610613

611614
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
@@ -662,6 +665,15 @@ class Notification extends $pb.GeneratedMessage {
662665
$core.bool hasSent() => $_has(3);
663666
@$pb.TagNumber(4)
664667
void clearSent() => $_clearField(4);
668+
669+
@$pb.TagNumber(5)
670+
$core.String get discordMessageId => $_getSZ(4);
671+
@$pb.TagNumber(5)
672+
set discordMessageId($core.String value) => $_setString(4, value);
673+
@$pb.TagNumber(5)
674+
$core.bool hasDiscordMessageId() => $_has(4);
675+
@$pb.TagNumber(5)
676+
void clearDiscordMessageId() => $_clearField(5);
665677
}
666678

667679
class Logo extends $pb.GeneratedMessage {
@@ -889,6 +901,8 @@ class Settings extends $pb.GeneratedMessage {
889901
$core.Iterable<TeamMemberType>? leaderboardMemberTypes,
890902
$core.bool? discordRsvpReactionsEnabled,
891903
$core.String? discordNotificationChannelId,
904+
$core.bool? discordAutoDeleteStartReminder,
905+
$core.bool? discordAutoDeleteEndReminder,
892906
}) {
893907
final result = create();
894908
if (nextSessionThresholdSecs != null)
@@ -933,6 +947,10 @@ class Settings extends $pb.GeneratedMessage {
933947
result.discordRsvpReactionsEnabled = discordRsvpReactionsEnabled;
934948
if (discordNotificationChannelId != null)
935949
result.discordNotificationChannelId = discordNotificationChannelId;
950+
if (discordAutoDeleteStartReminder != null)
951+
result.discordAutoDeleteStartReminder = discordAutoDeleteStartReminder;
952+
if (discordAutoDeleteEndReminder != null)
953+
result.discordAutoDeleteEndReminder = discordAutoDeleteEndReminder;
936954
return result;
937955
}
938956

@@ -977,6 +995,8 @@ class Settings extends $pb.GeneratedMessage {
977995
defaultEnumValue: TeamMemberType.STUDENT)
978996
..aOB(23, _omitFieldNames ? '' : 'discordRsvpReactionsEnabled')
979997
..aOS(24, _omitFieldNames ? '' : 'discordNotificationChannelId')
998+
..aOB(25, _omitFieldNames ? '' : 'discordAutoDeleteStartReminder')
999+
..aOB(26, _omitFieldNames ? '' : 'discordAutoDeleteEndReminder')
9801000
..hasRequiredFields = false;
9811001

9821002
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
@@ -1208,6 +1228,24 @@ class Settings extends $pb.GeneratedMessage {
12081228
$core.bool hasDiscordNotificationChannelId() => $_has(23);
12091229
@$pb.TagNumber(24)
12101230
void clearDiscordNotificationChannelId() => $_clearField(24);
1231+
1232+
@$pb.TagNumber(25)
1233+
$core.bool get discordAutoDeleteStartReminder => $_getBF(24);
1234+
@$pb.TagNumber(25)
1235+
set discordAutoDeleteStartReminder($core.bool value) => $_setBool(24, value);
1236+
@$pb.TagNumber(25)
1237+
$core.bool hasDiscordAutoDeleteStartReminder() => $_has(24);
1238+
@$pb.TagNumber(25)
1239+
void clearDiscordAutoDeleteStartReminder() => $_clearField(25);
1240+
1241+
@$pb.TagNumber(26)
1242+
$core.bool get discordAutoDeleteEndReminder => $_getBF(25);
1243+
@$pb.TagNumber(26)
1244+
set discordAutoDeleteEndReminder($core.bool value) => $_setBool(25, value);
1245+
@$pb.TagNumber(26)
1246+
$core.bool hasDiscordAutoDeleteEndReminder() => $_has(25);
1247+
@$pb.TagNumber(26)
1248+
void clearDiscordAutoDeleteEndReminder() => $_clearField(26);
12111249
}
12121250

12131251
const $core.bool _omitFieldNames =

client/lib/generated/db/db.pbjson.dart

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,9 +268,19 @@ const Notification$json = {
268268
'17': true
269269
},
270270
{'1': 'sent', '3': 4, '4': 1, '5': 8, '10': 'sent'},
271+
{
272+
'1': 'discord_message_id',
273+
'3': 5,
274+
'4': 1,
275+
'5': 9,
276+
'9': 1,
277+
'10': 'discordMessageId',
278+
'17': true
279+
},
271280
],
272281
'8': [
273282
{'1': '_team_member_id'},
283+
{'1': '_discord_message_id'},
274284
],
275285
};
276286

@@ -279,7 +289,8 @@ final $typed_data.Uint8List notificationDescriptor = $convert.base64Decode(
279289
'CgxOb3RpZmljYXRpb24SRAoRbm90aWZpY2F0aW9uX3R5cGUYASABKA4yFy50ay5kYi5Ob3RpZm'
280290
'ljYXRpb25UeXBlUhBub3RpZmljYXRpb25UeXBlEh0KCnNlc3Npb25faWQYAiABKAlSCXNlc3Np'
281291
'b25JZBIpCg50ZWFtX21lbWJlcl9pZBgDIAEoCUgAUgx0ZWFtTWVtYmVySWSIAQESEgoEc2VudB'
282-
'gEIAEoCFIEc2VudEIRCg9fdGVhbV9tZW1iZXJfaWQ=');
292+
'gEIAEoCFIEc2VudBIxChJkaXNjb3JkX21lc3NhZ2VfaWQYBSABKAlIAVIQZGlzY29yZE1lc3Nh'
293+
'Z2VJZIgBAUIRCg9fdGVhbV9tZW1iZXJfaWRCFQoTX2Rpc2NvcmRfbWVzc2FnZV9pZA==');
283294

284295
@$core.Deprecated('Use logoDescriptor instead')
285296
const Logo$json = {
@@ -473,6 +484,20 @@ const Settings$json = {
473484
'5': 8,
474485
'10': 'discordRsvpReactionsEnabled'
475486
},
487+
{
488+
'1': 'discord_auto_delete_start_reminder',
489+
'3': 25,
490+
'4': 1,
491+
'5': 8,
492+
'10': 'discordAutoDeleteStartReminder'
493+
},
494+
{
495+
'1': 'discord_auto_delete_end_reminder',
496+
'3': 26,
497+
'4': 1,
498+
'5': 8,
499+
'10': 'discordAutoDeleteEndReminder'
500+
},
476501
],
477502
};
478503

@@ -503,4 +528,7 @@ final $typed_data.Uint8List settingsDescriptor = $convert.base64Decode(
503528
'ZF9zaG93X292ZXJ0aW1lGBUgASgIUhdsZWFkZXJib2FyZFNob3dPdmVydGltZRJPChhsZWFkZX'
504529
'Jib2FyZF9tZW1iZXJfdHlwZXMYFiADKA4yFS50ay5kYi5UZWFtTWVtYmVyVHlwZVIWbGVhZGVy'
505530
'Ym9hcmRNZW1iZXJUeXBlcxJDCh5kaXNjb3JkX3JzdnBfcmVhY3Rpb25zX2VuYWJsZWQYFyABKA'
506-
'hSG2Rpc2NvcmRSc3ZwUmVhY3Rpb25zRW5hYmxlZA==');
531+
'hSG2Rpc2NvcmRSc3ZwUmVhY3Rpb25zRW5hYmxlZBJKCiJkaXNjb3JkX2F1dG9fZGVsZXRlX3N0'
532+
'YXJ0X3JlbWluZGVyGBkgASgIUh5kaXNjb3JkQXV0b0RlbGV0ZVN0YXJ0UmVtaW5kZXISRgogZG'
533+
'lzY29yZF9hdXRvX2RlbGV0ZV9lbmRfcmVtaW5kZXIYGiABKAhSHGRpc2NvcmRBdXRvRGVsZXRl'
534+
'RW5kUmVtaW5kZXI=');

client/lib/views/setup/integrations_setup.dart

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ class IntegrationsSetupTab extends HookConsumerWidget {
2727
final endReminderMinsController = useTextEditingController();
2828
final startReminderMessageController = useTextEditingController();
2929
final endReminderMessageController = useTextEditingController();
30+
final autoDeleteStartReminder = useState(false);
31+
final autoDeleteEndReminder = useState(false);
3032
final rsvpReactionsEnabled = useState(true);
3133
final selfLinkEnabled = useState(false);
3234
final nameSyncEnabled = useState(true);
@@ -67,6 +69,8 @@ class IntegrationsSetupTab extends HookConsumerWidget {
6769
: '15';
6870
startReminderMessageController.text = s.discordStartReminderMessage;
6971
endReminderMessageController.text = s.discordEndReminderMessage;
72+
autoDeleteStartReminder.value = s.discordAutoDeleteStartReminder;
73+
autoDeleteEndReminder.value = s.discordAutoDeleteEndReminder;
7074
rsvpReactionsEnabled.value = s.discordRsvpReactionsEnabled;
7175
selfLinkEnabled.value = s.discordSelfLinkEnabled;
7276
nameSyncEnabled.value = s.discordNameSyncEnabled;
@@ -123,6 +127,9 @@ class IntegrationsSetupTab extends HookConsumerWidget {
123127
discordStartReminderMessage:
124128
startReminderMessageController.text,
125129
discordEndReminderMessage: endReminderMessageController.text,
130+
discordAutoDeleteStartReminder:
131+
autoDeleteStartReminder.value,
132+
discordAutoDeleteEndReminder: autoDeleteEndReminder.value,
126133
),
127134
),
128135
);
@@ -312,6 +319,25 @@ class IntegrationsSetupTab extends HookConsumerWidget {
312319
onUpdate: updateDiscordReminder,
313320
),
314321
const SizedBox(height: 24),
322+
SettingRow(
323+
label: 'Auto Delete Start Reminders',
324+
description:
325+
'Automatically delete the start reminder message from Discord once the session start time has passed.',
326+
child: Row(
327+
children: [
328+
Switch(
329+
value: autoDeleteStartReminder.value,
330+
onChanged: (value) {
331+
autoDeleteStartReminder.value = value;
332+
updateDiscordReminder();
333+
},
334+
),
335+
const SizedBox(width: 8),
336+
Text(autoDeleteStartReminder.value ? 'Enabled' : 'Disabled'),
337+
],
338+
),
339+
),
340+
const SizedBox(height: 24),
315341
SettingRow(
316342
label: 'Start Reminder RSVP Reactions',
317343
description:
@@ -354,6 +380,25 @@ class IntegrationsSetupTab extends HookConsumerWidget {
354380
onUpdate: updateDiscordReminder,
355381
),
356382
const SizedBox(height: 24),
383+
SettingRow(
384+
label: 'Auto Delete End Reminders',
385+
description:
386+
'Automatically delete the end reminder message from Discord once the session end time has passed.',
387+
child: Row(
388+
children: [
389+
Switch(
390+
value: autoDeleteEndReminder.value,
391+
onChanged: (value) {
392+
autoDeleteEndReminder.value = value;
393+
updateDiscordReminder();
394+
},
395+
),
396+
const SizedBox(width: 8),
397+
Text(autoDeleteEndReminder.value ? 'Enabled' : 'Disabled'),
398+
],
399+
),
400+
),
401+
const SizedBox(height: 24),
357402
SettingRow(
358403
label: 'Self-Linking',
359404
description:

protos/api/settings.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ message UpdateDiscordReminderSettingsRequest {
9898
optional int64 discord_end_reminder_mins = 2;
9999
optional string discord_start_reminder_message = 3;
100100
optional string discord_end_reminder_message = 4;
101+
optional bool discord_auto_delete_start_reminder = 5;
102+
optional bool discord_auto_delete_end_reminder = 6;
101103
}
102104

103105
message UpdateDiscordReminderSettingsResponse {}

protos/db/db.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ message Notification {
6363
string session_id = 2;
6464
optional string team_member_id = 3;
6565
bool sent = 4;
66+
optional string discord_message_id = 5;
6667
}
6768

6869
message Logo {
@@ -110,4 +111,6 @@ message Settings {
110111
bool leaderboard_show_overtime = 21;
111112
repeated TeamMemberType leaderboard_member_types = 22;
112113
bool discord_rsvp_reactions_enabled = 23;
114+
bool discord_auto_delete_start_reminder = 25;
115+
bool discord_auto_delete_end_reminder = 26;
113116
}

server/src/generated/tk.api.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3258,6 +3258,10 @@ pub struct UpdateDiscordReminderSettingsRequest {
32583258
pub discord_end_reminder_message: ::core::option::Option<
32593259
::prost::alloc::string::String,
32603260
>,
3261+
#[prost(bool, optional, tag = "5")]
3262+
pub discord_auto_delete_start_reminder: ::core::option::Option<bool>,
3263+
#[prost(bool, optional, tag = "6")]
3264+
pub discord_auto_delete_end_reminder: ::core::option::Option<bool>,
32613265
}
32623266
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
32633267
pub struct UpdateDiscordReminderSettingsResponse {}

server/src/generated/tk.db.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ pub struct Notification {
7272
pub team_member_id: ::core::option::Option<::prost::alloc::string::String>,
7373
#[prost(bool, tag = "4")]
7474
pub sent: bool,
75+
#[prost(string, optional, tag = "5")]
76+
pub discord_message_id: ::core::option::Option<::prost::alloc::string::String>,
7577
}
7678
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7779
pub struct Logo {
@@ -144,6 +146,10 @@ pub struct Settings {
144146
pub leaderboard_member_types: ::prost::alloc::vec::Vec<i32>,
145147
#[prost(bool, tag = "23")]
146148
pub discord_rsvp_reactions_enabled: bool,
149+
#[prost(bool, tag = "25")]
150+
pub discord_auto_delete_start_reminder: bool,
151+
#[prost(bool, tag = "26")]
152+
pub discord_auto_delete_end_reminder: bool,
147153
}
148154
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
149155
#[repr(i32)]

0 commit comments

Comments
 (0)