@@ -48,6 +48,28 @@ type (
48
48
}
49
49
)
50
50
51
+ func (s * Store ) TeamMemberDBToTeamMember (teamMember TeamMemberDB ) TeamMember {
52
+ var startDate , endDate * time.Time
53
+ if teamMember .StartDate .Valid {
54
+ startDate = & teamMember .StartDate .Time
55
+ }
56
+ if teamMember .EndDate .Valid {
57
+ endDate = & teamMember .EndDate .Time
58
+ }
59
+ return TeamMember {
60
+ UserID : teamMember .UserID ,
61
+ UserName : teamMember .UserName ,
62
+ Avatar : teamMember .Avatar ,
63
+ OfficerID : teamMember .OfficerID ,
64
+ EmailAlias : teamMember .EmailAlias ,
65
+ OfficerName : teamMember .OfficerName ,
66
+ OfficerDescription : teamMember .OfficerDescription ,
67
+ HistoryWikiURL : teamMember .HistoryWikiURL ,
68
+ StartDate : startDate ,
69
+ EndDate : endDate ,
70
+ }
71
+ }
72
+
51
73
// ListTeams returns a list of the ystv teams and their current members.
52
74
func (s * Store ) ListTeams (ctx context.Context ) ([]Team , error ) {
53
75
var t []Team
@@ -152,7 +174,9 @@ func (s *Store) GetTeamByYearByEmail(ctx context.Context, emailAlias string, yea
152
174
return t , fmt .Errorf ("failed to get team by year by email: %w" , err )
153
175
}
154
176
155
- err = s .db .SelectContext (ctx , & t .Members , `
177
+ teamMembers := make ([]TeamMemberDB , 0 )
178
+
179
+ err = s .db .SelectContext (ctx , & teamMembers , `
156
180
SELECT users.user_id, CONCAT(users.first_name, ' ', users.last_name) AS user_name, COALESCE(users.avatar, '') AS avatar, officer.officer_id,
157
181
officer.email_alias, officer.name AS officer_name, officer.description AS officer_description,
158
182
officer.historywiki_url, officerTeamMembers.start_date, officerTeamMembers.end_date
@@ -175,6 +199,10 @@ func (s *Store) GetTeamByYearByEmail(ctx context.Context, emailAlias string, yea
175
199
return t , fmt .Errorf ("failed to get team members by year by email: %w" , err )
176
200
}
177
201
202
+ for _ , teamMember := range teamMembers {
203
+ t .Members = append (t .Members , s .TeamMemberDBToTeamMember (teamMember ))
204
+ }
205
+
178
206
return t , nil
179
207
}
180
208
@@ -185,7 +213,9 @@ func (s *Store) GetTeamByYearByID(ctx context.Context, teamID, year int) (Team,
185
213
return t , fmt .Errorf ("failed to get team by year by id: %w" , err )
186
214
}
187
215
188
- err = s .db .SelectContext (ctx , & t .Members , `
216
+ teamMembers := make ([]TeamMemberDB , 0 )
217
+
218
+ err = s .db .SelectContext (ctx , & teamMembers , `
189
219
SELECT users.user_id, CONCAT(users.first_name, ' ', users.last_name) AS user_name, COALESCE(users.avatar, '') AS avatar, officer.officer_id,
190
220
officer.email_alias, officer.name AS officer_name, officer.description AS officer_description,
191
221
officer.historywiki_url, officerTeamMembers.start_date, officerTeamMembers.end_date
@@ -208,6 +238,10 @@ func (s *Store) GetTeamByYearByID(ctx context.Context, teamID, year int) (Team,
208
238
return t , fmt .Errorf ("failed to get team members by year by id: %w" , err )
209
239
}
210
240
241
+ for _ , teamMember := range teamMembers {
242
+ t .Members = append (t .Members , s .TeamMemberDBToTeamMember (teamMember ))
243
+ }
244
+
211
245
return t , nil
212
246
}
213
247
@@ -218,7 +252,9 @@ func (s *Store) GetTeamByStartEndYearByEmail(ctx context.Context, emailAlias str
218
252
return t , fmt .Errorf ("failed to get team by start end year by email: %w" , err )
219
253
}
220
254
221
- err = s .db .SelectContext (ctx , & t .Members , `
255
+ teamMembers := make ([]TeamMemberDB , 0 )
256
+
257
+ err = s .db .SelectContext (ctx , & teamMembers , `
222
258
SELECT users.user_id, CONCAT(users.first_name, ' ', users.last_name) AS user_name, COALESCE(users.avatar, '') AS avatar, officer.officer_id,
223
259
officer.email_alias, officer.name AS officer_name, officer.description AS officer_description,
224
260
officer.historywiki_url, officerTeamMembers.start_date, officerTeamMembers.end_date
@@ -243,6 +279,10 @@ func (s *Store) GetTeamByStartEndYearByEmail(ctx context.Context, emailAlias str
243
279
return t , fmt .Errorf ("failed to get team members by start end year by email: %w" , err )
244
280
}
245
281
282
+ for _ , teamMember := range teamMembers {
283
+ t .Members = append (t .Members , s .TeamMemberDBToTeamMember (teamMember ))
284
+ }
285
+
246
286
return t , nil
247
287
}
248
288
@@ -253,7 +293,9 @@ func (s *Store) GetTeamByStartEndYearByID(ctx context.Context, teamID, startYear
253
293
return t , fmt .Errorf ("failed to get team by start end year by id: %w" , err )
254
294
}
255
295
256
- err = s .db .SelectContext (ctx , & t .Members , `
296
+ teamMembers := make ([]TeamMemberDB , 0 )
297
+
298
+ err = s .db .SelectContext (ctx , & teamMembers , `
257
299
SELECT users.user_id, CONCAT(users.first_name, ' ', users.last_name) AS user_name, COALESCE(users.avatar, '') AS avatar, officer.officer_id,
258
300
officer.email_alias, officer.name AS officer_name, officer.description AS officer_description,
259
301
officer.historywiki_url, officerTeamMembers.start_date, officerTeamMembers.end_date
@@ -278,6 +320,10 @@ func (s *Store) GetTeamByStartEndYearByID(ctx context.Context, teamID, startYear
278
320
return t , fmt .Errorf ("failed to get team members by start end year by id: %w" , err )
279
321
}
280
322
323
+ for _ , teamMember := range teamMembers {
324
+ t .Members = append (t .Members , s .TeamMemberDBToTeamMember (teamMember ))
325
+ }
326
+
281
327
return t , nil
282
328
}
283
329
0 commit comments