Skip to content

Commit 6d45d95

Browse files
committed
Added csv exports & imports for extra migration ability. Also added table recovery on decode error (potentially a problem, but will recover with default values...
1 parent ce6ab5e commit 6d45d95

30 files changed

+1399
-282
lines changed

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

Lines changed: 30 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,6 @@ class UpdateSettingsRequest extends $pb.GeneratedMessage {
120120
$core.String? discordBotToken,
121121
$core.String? discordGuildId,
122122
$core.String? discordChannelId,
123-
@$core.Deprecated('This field is deprecated.')
124-
$fixnum.Int64? discordReminderMins,
125123
$core.bool? discordSelfLinkEnabled,
126124
$core.bool? discordNameSyncEnabled,
127125
$fixnum.Int64? discordStartReminderMins,
@@ -135,8 +133,6 @@ class UpdateSettingsRequest extends $pb.GeneratedMessage {
135133
if (discordBotToken != null) result.discordBotToken = discordBotToken;
136134
if (discordGuildId != null) result.discordGuildId = discordGuildId;
137135
if (discordChannelId != null) result.discordChannelId = discordChannelId;
138-
if (discordReminderMins != null)
139-
result.discordReminderMins = discordReminderMins;
140136
if (discordSelfLinkEnabled != null)
141137
result.discordSelfLinkEnabled = discordSelfLinkEnabled;
142138
if (discordNameSyncEnabled != null)
@@ -169,13 +165,12 @@ class UpdateSettingsRequest extends $pb.GeneratedMessage {
169165
..aOS(2, _omitFieldNames ? '' : 'discordBotToken')
170166
..aOS(3, _omitFieldNames ? '' : 'discordGuildId')
171167
..aOS(4, _omitFieldNames ? '' : 'discordChannelId')
172-
..aInt64(5, _omitFieldNames ? '' : 'discordReminderMins')
173-
..aOB(6, _omitFieldNames ? '' : 'discordSelfLinkEnabled')
174-
..aOB(7, _omitFieldNames ? '' : 'discordNameSyncEnabled')
175-
..aInt64(8, _omitFieldNames ? '' : 'discordStartReminderMins')
176-
..aInt64(9, _omitFieldNames ? '' : 'discordEndReminderMins')
177-
..aOS(10, _omitFieldNames ? '' : 'discordStartReminderMessage')
178-
..aOS(11, _omitFieldNames ? '' : 'discordEndReminderMessage')
168+
..aOB(5, _omitFieldNames ? '' : 'discordSelfLinkEnabled')
169+
..aOB(6, _omitFieldNames ? '' : 'discordNameSyncEnabled')
170+
..aInt64(7, _omitFieldNames ? '' : 'discordStartReminderMins')
171+
..aInt64(8, _omitFieldNames ? '' : 'discordEndReminderMins')
172+
..aOS(9, _omitFieldNames ? '' : 'discordStartReminderMessage')
173+
..aOS(10, _omitFieldNames ? '' : 'discordEndReminderMessage')
179174
..hasRequiredFields = false;
180175

181176
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
@@ -234,72 +229,59 @@ class UpdateSettingsRequest extends $pb.GeneratedMessage {
234229
@$pb.TagNumber(4)
235230
void clearDiscordChannelId() => $_clearField(4);
236231

237-
@$core.Deprecated('This field is deprecated.')
238232
@$pb.TagNumber(5)
239-
$fixnum.Int64 get discordReminderMins => $_getI64(4);
240-
@$core.Deprecated('This field is deprecated.')
233+
$core.bool get discordSelfLinkEnabled => $_getBF(4);
241234
@$pb.TagNumber(5)
242-
set discordReminderMins($fixnum.Int64 value) => $_setInt64(4, value);
243-
@$core.Deprecated('This field is deprecated.')
235+
set discordSelfLinkEnabled($core.bool value) => $_setBool(4, value);
244236
@$pb.TagNumber(5)
245-
$core.bool hasDiscordReminderMins() => $_has(4);
246-
@$core.Deprecated('This field is deprecated.')
237+
$core.bool hasDiscordSelfLinkEnabled() => $_has(4);
247238
@$pb.TagNumber(5)
248-
void clearDiscordReminderMins() => $_clearField(5);
239+
void clearDiscordSelfLinkEnabled() => $_clearField(5);
249240

250241
@$pb.TagNumber(6)
251-
$core.bool get discordSelfLinkEnabled => $_getBF(5);
242+
$core.bool get discordNameSyncEnabled => $_getBF(5);
252243
@$pb.TagNumber(6)
253-
set discordSelfLinkEnabled($core.bool value) => $_setBool(5, value);
244+
set discordNameSyncEnabled($core.bool value) => $_setBool(5, value);
254245
@$pb.TagNumber(6)
255-
$core.bool hasDiscordSelfLinkEnabled() => $_has(5);
246+
$core.bool hasDiscordNameSyncEnabled() => $_has(5);
256247
@$pb.TagNumber(6)
257-
void clearDiscordSelfLinkEnabled() => $_clearField(6);
248+
void clearDiscordNameSyncEnabled() => $_clearField(6);
258249

259250
@$pb.TagNumber(7)
260-
$core.bool get discordNameSyncEnabled => $_getBF(6);
251+
$fixnum.Int64 get discordStartReminderMins => $_getI64(6);
261252
@$pb.TagNumber(7)
262-
set discordNameSyncEnabled($core.bool value) => $_setBool(6, value);
253+
set discordStartReminderMins($fixnum.Int64 value) => $_setInt64(6, value);
263254
@$pb.TagNumber(7)
264-
$core.bool hasDiscordNameSyncEnabled() => $_has(6);
255+
$core.bool hasDiscordStartReminderMins() => $_has(6);
265256
@$pb.TagNumber(7)
266-
void clearDiscordNameSyncEnabled() => $_clearField(7);
257+
void clearDiscordStartReminderMins() => $_clearField(7);
267258

268259
@$pb.TagNumber(8)
269-
$fixnum.Int64 get discordStartReminderMins => $_getI64(7);
260+
$fixnum.Int64 get discordEndReminderMins => $_getI64(7);
270261
@$pb.TagNumber(8)
271-
set discordStartReminderMins($fixnum.Int64 value) => $_setInt64(7, value);
262+
set discordEndReminderMins($fixnum.Int64 value) => $_setInt64(7, value);
272263
@$pb.TagNumber(8)
273-
$core.bool hasDiscordStartReminderMins() => $_has(7);
264+
$core.bool hasDiscordEndReminderMins() => $_has(7);
274265
@$pb.TagNumber(8)
275-
void clearDiscordStartReminderMins() => $_clearField(8);
266+
void clearDiscordEndReminderMins() => $_clearField(8);
276267

277268
@$pb.TagNumber(9)
278-
$fixnum.Int64 get discordEndReminderMins => $_getI64(8);
269+
$core.String get discordStartReminderMessage => $_getSZ(8);
279270
@$pb.TagNumber(9)
280-
set discordEndReminderMins($fixnum.Int64 value) => $_setInt64(8, value);
271+
set discordStartReminderMessage($core.String value) => $_setString(8, value);
281272
@$pb.TagNumber(9)
282-
$core.bool hasDiscordEndReminderMins() => $_has(8);
273+
$core.bool hasDiscordStartReminderMessage() => $_has(8);
283274
@$pb.TagNumber(9)
284-
void clearDiscordEndReminderMins() => $_clearField(9);
275+
void clearDiscordStartReminderMessage() => $_clearField(9);
285276

286277
@$pb.TagNumber(10)
287-
$core.String get discordStartReminderMessage => $_getSZ(9);
278+
$core.String get discordEndReminderMessage => $_getSZ(9);
288279
@$pb.TagNumber(10)
289-
set discordStartReminderMessage($core.String value) => $_setString(9, value);
280+
set discordEndReminderMessage($core.String value) => $_setString(9, value);
290281
@$pb.TagNumber(10)
291-
$core.bool hasDiscordStartReminderMessage() => $_has(9);
282+
$core.bool hasDiscordEndReminderMessage() => $_has(9);
292283
@$pb.TagNumber(10)
293-
void clearDiscordStartReminderMessage() => $_clearField(10);
294-
295-
@$pb.TagNumber(11)
296-
$core.String get discordEndReminderMessage => $_getSZ(10);
297-
@$pb.TagNumber(11)
298-
set discordEndReminderMessage($core.String value) => $_setString(10, value);
299-
@$pb.TagNumber(11)
300-
$core.bool hasDiscordEndReminderMessage() => $_has(10);
301-
@$pb.TagNumber(11)
302-
void clearDiscordEndReminderMessage() => $_clearField(11);
284+
void clearDiscordEndReminderMessage() => $_clearField(10);
303285
}
304286

305287
class UpdateSettingsResponse extends $pb.GeneratedMessage {

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

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -64,52 +64,44 @@ const UpdateSettingsRequest$json = {
6464
'5': 9,
6565
'10': 'discordChannelId'
6666
},
67-
{
68-
'1': 'discord_reminder_mins',
69-
'3': 5,
70-
'4': 1,
71-
'5': 3,
72-
'8': {'3': true},
73-
'10': 'discordReminderMins',
74-
},
7567
{
7668
'1': 'discord_self_link_enabled',
77-
'3': 6,
69+
'3': 5,
7870
'4': 1,
7971
'5': 8,
8072
'10': 'discordSelfLinkEnabled'
8173
},
8274
{
8375
'1': 'discord_name_sync_enabled',
84-
'3': 7,
76+
'3': 6,
8577
'4': 1,
8678
'5': 8,
8779
'10': 'discordNameSyncEnabled'
8880
},
8981
{
9082
'1': 'discord_start_reminder_mins',
91-
'3': 8,
83+
'3': 7,
9284
'4': 1,
9385
'5': 3,
9486
'10': 'discordStartReminderMins'
9587
},
9688
{
9789
'1': 'discord_end_reminder_mins',
98-
'3': 9,
90+
'3': 8,
9991
'4': 1,
10092
'5': 3,
10193
'10': 'discordEndReminderMins'
10294
},
10395
{
10496
'1': 'discord_start_reminder_message',
105-
'3': 10,
97+
'3': 9,
10698
'4': 1,
10799
'5': 9,
108100
'10': 'discordStartReminderMessage'
109101
},
110102
{
111103
'1': 'discord_end_reminder_message',
112-
'3': 11,
104+
'3': 10,
113105
'4': 1,
114106
'5': 9,
115107
'10': 'discordEndReminderMessage'
@@ -122,15 +114,14 @@ final $typed_data.Uint8List updateSettingsRequestDescriptor = $convert.base64Dec
122114
'ChVVcGRhdGVTZXR0aW5nc1JlcXVlc3QSPQobbmV4dF9zZXNzaW9uX3RocmVzaG9sZF9zZWNzGA'
123115
'EgASgDUhhuZXh0U2Vzc2lvblRocmVzaG9sZFNlY3MSKgoRZGlzY29yZF9ib3RfdG9rZW4YAiAB'
124116
'KAlSD2Rpc2NvcmRCb3RUb2tlbhIoChBkaXNjb3JkX2d1aWxkX2lkGAMgASgJUg5kaXNjb3JkR3'
125-
'VpbGRJZBIsChJkaXNjb3JkX2NoYW5uZWxfaWQYBCABKAlSEGRpc2NvcmRDaGFubmVsSWQSNgoV'
126-
'ZGlzY29yZF9yZW1pbmRlcl9taW5zGAUgASgDQgIYAVITZGlzY29yZFJlbWluZGVyTWlucxI5Ch'
127-
'lkaXNjb3JkX3NlbGZfbGlua19lbmFibGVkGAYgASgIUhZkaXNjb3JkU2VsZkxpbmtFbmFibGVk'
128-
'EjkKGWRpc2NvcmRfbmFtZV9zeW5jX2VuYWJsZWQYByABKAhSFmRpc2NvcmROYW1lU3luY0VuYW'
129-
'JsZWQSPQobZGlzY29yZF9zdGFydF9yZW1pbmRlcl9taW5zGAggASgDUhhkaXNjb3JkU3RhcnRS'
130-
'ZW1pbmRlck1pbnMSOQoZZGlzY29yZF9lbmRfcmVtaW5kZXJfbWlucxgJIAEoA1IWZGlzY29yZE'
131-
'VuZFJlbWluZGVyTWlucxJDCh5kaXNjb3JkX3N0YXJ0X3JlbWluZGVyX21lc3NhZ2UYCiABKAlS'
132-
'G2Rpc2NvcmRTdGFydFJlbWluZGVyTWVzc2FnZRI/ChxkaXNjb3JkX2VuZF9yZW1pbmRlcl9tZX'
133-
'NzYWdlGAsgASgJUhlkaXNjb3JkRW5kUmVtaW5kZXJNZXNzYWdl');
117+
'VpbGRJZBIsChJkaXNjb3JkX2NoYW5uZWxfaWQYBCABKAlSEGRpc2NvcmRDaGFubmVsSWQSOQoZ'
118+
'ZGlzY29yZF9zZWxmX2xpbmtfZW5hYmxlZBgFIAEoCFIWZGlzY29yZFNlbGZMaW5rRW5hYmxlZB'
119+
'I5ChlkaXNjb3JkX25hbWVfc3luY19lbmFibGVkGAYgASgIUhZkaXNjb3JkTmFtZVN5bmNFbmFi'
120+
'bGVkEj0KG2Rpc2NvcmRfc3RhcnRfcmVtaW5kZXJfbWlucxgHIAEoA1IYZGlzY29yZFN0YXJ0Um'
121+
'VtaW5kZXJNaW5zEjkKGWRpc2NvcmRfZW5kX3JlbWluZGVyX21pbnMYCCABKANSFmRpc2NvcmRF'
122+
'bmRSZW1pbmRlck1pbnMSQwoeZGlzY29yZF9zdGFydF9yZW1pbmRlcl9tZXNzYWdlGAkgASgJUh'
123+
'tkaXNjb3JkU3RhcnRSZW1pbmRlck1lc3NhZ2USPwocZGlzY29yZF9lbmRfcmVtaW5kZXJfbWVz'
124+
'c2FnZRgKIAEoCVIZZGlzY29yZEVuZFJlbWluZGVyTWVzc2FnZQ==');
134125

135126
@$core.Deprecated('Use updateSettingsResponseDescriptor instead')
136127
const UpdateSettingsResponse$json = {

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

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,104 @@ class DeleteTeamMemberSessionResponse extends $pb.GeneratedMessage {
523523
static DeleteTeamMemberSessionResponse? _defaultInstance;
524524
}
525525

526+
class ImportAttendanceCsvRequest extends $pb.GeneratedMessage {
527+
factory ImportAttendanceCsvRequest({
528+
$core.List<$core.int>? csvData,
529+
}) {
530+
final result = create();
531+
if (csvData != null) result.csvData = csvData;
532+
return result;
533+
}
534+
535+
ImportAttendanceCsvRequest._();
536+
537+
factory ImportAttendanceCsvRequest.fromBuffer($core.List<$core.int> data,
538+
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
539+
create()..mergeFromBuffer(data, registry);
540+
factory ImportAttendanceCsvRequest.fromJson($core.String json,
541+
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
542+
create()..mergeFromJson(json, registry);
543+
544+
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
545+
_omitMessageNames ? '' : 'ImportAttendanceCsvRequest',
546+
package: const $pb.PackageName(_omitMessageNames ? '' : 'tk.api'),
547+
createEmptyInstance: create)
548+
..a<$core.List<$core.int>>(
549+
1, _omitFieldNames ? '' : 'csvData', $pb.PbFieldType.OY)
550+
..hasRequiredFields = false;
551+
552+
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
553+
ImportAttendanceCsvRequest clone() => deepCopy();
554+
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
555+
ImportAttendanceCsvRequest copyWith(
556+
void Function(ImportAttendanceCsvRequest) updates) =>
557+
super.copyWith(
558+
(message) => updates(message as ImportAttendanceCsvRequest))
559+
as ImportAttendanceCsvRequest;
560+
561+
@$core.override
562+
$pb.BuilderInfo get info_ => _i;
563+
564+
@$core.pragma('dart2js:noInline')
565+
static ImportAttendanceCsvRequest create() => ImportAttendanceCsvRequest._();
566+
@$core.override
567+
ImportAttendanceCsvRequest createEmptyInstance() => create();
568+
@$core.pragma('dart2js:noInline')
569+
static ImportAttendanceCsvRequest getDefault() => _defaultInstance ??=
570+
$pb.GeneratedMessage.$_defaultFor<ImportAttendanceCsvRequest>(create);
571+
static ImportAttendanceCsvRequest? _defaultInstance;
572+
573+
@$pb.TagNumber(1)
574+
$core.List<$core.int> get csvData => $_getN(0);
575+
@$pb.TagNumber(1)
576+
set csvData($core.List<$core.int> value) => $_setBytes(0, value);
577+
@$pb.TagNumber(1)
578+
$core.bool hasCsvData() => $_has(0);
579+
@$pb.TagNumber(1)
580+
void clearCsvData() => $_clearField(1);
581+
}
582+
583+
class ImportAttendanceCsvResponse extends $pb.GeneratedMessage {
584+
factory ImportAttendanceCsvResponse() => create();
585+
586+
ImportAttendanceCsvResponse._();
587+
588+
factory ImportAttendanceCsvResponse.fromBuffer($core.List<$core.int> data,
589+
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
590+
create()..mergeFromBuffer(data, registry);
591+
factory ImportAttendanceCsvResponse.fromJson($core.String json,
592+
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
593+
create()..mergeFromJson(json, registry);
594+
595+
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
596+
_omitMessageNames ? '' : 'ImportAttendanceCsvResponse',
597+
package: const $pb.PackageName(_omitMessageNames ? '' : 'tk.api'),
598+
createEmptyInstance: create)
599+
..hasRequiredFields = false;
600+
601+
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
602+
ImportAttendanceCsvResponse clone() => deepCopy();
603+
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
604+
ImportAttendanceCsvResponse copyWith(
605+
void Function(ImportAttendanceCsvResponse) updates) =>
606+
super.copyWith(
607+
(message) => updates(message as ImportAttendanceCsvResponse))
608+
as ImportAttendanceCsvResponse;
609+
610+
@$core.override
611+
$pb.BuilderInfo get info_ => _i;
612+
613+
@$core.pragma('dart2js:noInline')
614+
static ImportAttendanceCsvResponse create() =>
615+
ImportAttendanceCsvResponse._();
616+
@$core.override
617+
ImportAttendanceCsvResponse createEmptyInstance() => create();
618+
@$core.pragma('dart2js:noInline')
619+
static ImportAttendanceCsvResponse getDefault() => _defaultInstance ??=
620+
$pb.GeneratedMessage.$_defaultFor<ImportAttendanceCsvResponse>(create);
621+
static ImportAttendanceCsvResponse? _defaultInstance;
622+
}
623+
526624
const $core.bool _omitFieldNames =
527625
$core.bool.fromEnvironment('protobuf.omit_field_names');
528626
const $core.bool _omitMessageNames =

client/lib/generated/api/team_member_session.pbgrpc.dart

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,13 @@ class TeamMemberSessionServiceClient extends $grpc.Client {
6868
options: options);
6969
}
7070

71+
$grpc.ResponseFuture<$0.ImportAttendanceCsvResponse> importAttendanceCsv(
72+
$0.ImportAttendanceCsvRequest request, {
73+
$grpc.CallOptions? options,
74+
}) {
75+
return $createUnaryCall(_$importAttendanceCsv, request, options: options);
76+
}
77+
7178
// method descriptors
7279

7380
static final _$getTeamMemberSessions = $grpc.ClientMethod<
@@ -93,6 +100,11 @@ class TeamMemberSessionServiceClient extends $grpc.Client {
93100
'/tk.api.TeamMemberSessionService/DeleteTeamMemberSession',
94101
($0.DeleteTeamMemberSessionRequest value) => value.writeToBuffer(),
95102
$0.DeleteTeamMemberSessionResponse.fromBuffer);
103+
static final _$importAttendanceCsv = $grpc.ClientMethod<
104+
$0.ImportAttendanceCsvRequest, $0.ImportAttendanceCsvResponse>(
105+
'/tk.api.TeamMemberSessionService/ImportAttendanceCsv',
106+
($0.ImportAttendanceCsvRequest value) => value.writeToBuffer(),
107+
$0.ImportAttendanceCsvResponse.fromBuffer);
96108
}
97109

98110
@$pb.GrpcServiceName('tk.api.TeamMemberSessionService')
@@ -136,6 +148,15 @@ abstract class TeamMemberSessionServiceBase extends $grpc.Service {
136148
($core.List<$core.int> value) =>
137149
$0.DeleteTeamMemberSessionRequest.fromBuffer(value),
138150
($0.DeleteTeamMemberSessionResponse value) => value.writeToBuffer()));
151+
$addMethod($grpc.ServiceMethod<$0.ImportAttendanceCsvRequest,
152+
$0.ImportAttendanceCsvResponse>(
153+
'ImportAttendanceCsv',
154+
importAttendanceCsv_Pre,
155+
false,
156+
false,
157+
($core.List<$core.int> value) =>
158+
$0.ImportAttendanceCsvRequest.fromBuffer(value),
159+
($0.ImportAttendanceCsvResponse value) => value.writeToBuffer()));
139160
}
140161

141162
$async.Future<$0.GetTeamMemberSessionsResponse> getTeamMemberSessions_Pre(
@@ -173,4 +194,13 @@ abstract class TeamMemberSessionServiceBase extends $grpc.Service {
173194

174195
$async.Future<$0.DeleteTeamMemberSessionResponse> deleteTeamMemberSession(
175196
$grpc.ServiceCall call, $0.DeleteTeamMemberSessionRequest request);
197+
198+
$async.Future<$0.ImportAttendanceCsvResponse> importAttendanceCsv_Pre(
199+
$grpc.ServiceCall $call,
200+
$async.Future<$0.ImportAttendanceCsvRequest> $request) async {
201+
return importAttendanceCsv($call, await $request);
202+
}
203+
204+
$async.Future<$0.ImportAttendanceCsvResponse> importAttendanceCsv(
205+
$grpc.ServiceCall call, $0.ImportAttendanceCsvRequest request);
176206
}

0 commit comments

Comments
 (0)