@myclub_se/data-access 2.7.3 → 2.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -128,11 +128,12 @@ class ActivityInvite {
128
128
  }
129
129
 
130
130
  class ActivityLocationTag {
131
- constructor(id, club_id, section_id, name) {
131
+ constructor(id, club_id, section_id, name, location_names = []) {
132
132
  this.id = id;
133
133
  this.club_id = club_id;
134
134
  this.section_id = section_id;
135
135
  this.name = name;
136
+ this.location_names = location_names;
136
137
  }
137
138
  static asFormGroup(tag) {
138
139
  return new FormGroup({
@@ -223,13 +224,27 @@ class ActivitySettings {
223
224
  }
224
225
 
225
226
  class ActivityType {
226
- constructor(id, club_id, section_id, active, base_type, name) {
227
+ constructor(id, club_id, section_id, active, base_type, name, is_available_for_booking = true, color = '#FFFFFF') {
227
228
  this.id = id;
228
229
  this.club_id = club_id;
229
230
  this.section_id = section_id;
230
231
  this.active = active;
231
232
  this.base_type = base_type;
232
233
  this.name = name;
234
+ this.is_available_for_booking = is_available_for_booking;
235
+ this.color = color;
236
+ }
237
+ static asFormGroup(type) {
238
+ return new FormGroup({
239
+ id: new FormControl(type?.id || ''),
240
+ club_id: new FormControl(type?.club_id || ''),
241
+ section_id: new FormControl(type?.section_id || ''),
242
+ active: new FormControl(typeof type?.active === 'undefined' ? true : type?.active),
243
+ base_type: new FormControl(type?.base_type || ''),
244
+ name: new FormControl(type?.name || '', Validators.required),
245
+ is_available_for_booking: new FormControl(typeof type?.is_available_for_booking === 'undefined' ? true : type?.is_available_for_booking),
246
+ color: new FormControl(type?.color || '#FFFFFF'),
247
+ });
233
248
  }
234
249
  }
235
250
 
@@ -289,13 +304,12 @@ class Authentication {
289
304
  }
290
305
 
291
306
  class BookingCalendar {
292
- constructor(id, club_id, section_id, team_id, club_name, color, name, section_name, team_name, status) {
307
+ constructor(id, club_id, section_id, team_id, club_name, name, section_name, team_name, status) {
293
308
  this.id = id;
294
309
  this.club_id = club_id;
295
310
  this.section_id = section_id;
296
311
  this.team_id = team_id;
297
312
  this.club_name = club_name;
298
- this.color = color;
299
313
  this.name = name;
300
314
  this.section_name = section_name;
301
315
  this.team_name = team_name;
@@ -308,7 +322,6 @@ class BookingCalendar {
308
322
  section_id: new FormControl(calendar?.section_id || ''),
309
323
  team_id: new FormControl(calendar?.team_id || ''),
310
324
  club_name: new FormControl(calendar?.club_name || ''),
311
- color: new FormControl(calendar?.color || '', Validators.required),
312
325
  name: new FormControl(calendar?.name || '', Validators.required),
313
326
  section_name: new FormControl(calendar?.section_name || ''),
314
327
  team_name: new FormControl(calendar?.team_name || ''),
@@ -1560,7 +1573,7 @@ const unpaidInvoiceFactory = (apiUnpaidInvoice) => new UnpaidMemberInvoice(apiUn
1560
1573
  const activityInviteFactory = (apiActivityInvite) => new ActivityInvite(apiActivityInvite.id, activityFactory(apiActivityInvite.activity), apiActivityInvite.comment, apiActivityInvite.created, apiActivityInvite.has_unpaid_invoices, apiActivityInvite.last_invite, apiActivityInvite.leader, searchMemberFactory(apiActivityInvite.member), apiActivityInvite.next_invite, apiActivityInvite.reminded, apiActivityInvite.response_date, apiActivityInvite.status, apiActivityInvite.token, apiActivityInvite.unpaid_invoices && apiActivityInvite.unpaid_invoices.length ? apiActivityInvite.unpaid_invoices.map((apiUnpaidInvoice) => unpaidInvoiceFactory(apiUnpaidInvoice)) : [], apiActivityInvite.updated);
1561
1574
 
1562
1575
  const activityLocationTagFactory = (apiActivityLocationTag) => {
1563
- return new ActivityLocationTag(apiActivityLocationTag.id, apiActivityLocationTag.club_id, apiActivityLocationTag.section_id, apiActivityLocationTag.name);
1576
+ return new ActivityLocationTag(apiActivityLocationTag.id, apiActivityLocationTag.club_id, apiActivityLocationTag.section_id, apiActivityLocationTag.name, apiActivityLocationTag.location_names);
1564
1577
  };
1565
1578
 
1566
1579
  const activityLocationPartFactory = (apiActivityLocationPart) => {
@@ -1575,7 +1588,7 @@ const activityLocationGroupFactory = (apiActivityLocationGroup) => {
1575
1588
 
1576
1589
  const activitySettingsFactory = (apiActivitySettings) => new ActivitySettings(apiActivitySettings.day_options, apiActivitySettings.hour_options, apiActivitySettings.invite_group_options, apiActivitySettings.invite_settings_options, apiActivitySettings.max_attendance_options, apiActivitySettings.meet_up_time_options, apiActivitySettings.remind_receiver_options, apiActivitySettings.repeat_options, apiActivitySettings.repeat_type_options);
1577
1590
 
1578
- const activityTypeFactory = (apiActivityType) => new ActivityType(apiActivityType.id, apiActivityType.club_id, apiActivityType.section_id, apiActivityType.active, apiActivityType.base_type, apiActivityType.name);
1591
+ const activityTypeFactory = (apiActivityType) => new ActivityType(apiActivityType.id, apiActivityType.club_id, apiActivityType.section_id, apiActivityType.active, apiActivityType.base_type, apiActivityType.name, apiActivityType.is_available_for_booking, apiActivityType.color);
1579
1592
 
1580
1593
  const authSectionFactory = (apiAuthSection) => new AuthSection(apiAuthSection.id, apiAuthSection.name);
1581
1594
 
@@ -1587,7 +1600,7 @@ const authTeamFactory = (apiAuthTeam) => new AuthTeam(apiAuthTeam.id, apiAuthTea
1587
1600
 
1588
1601
  const authFactory = (apiAuth) => new Auth(apiAuth.id, apiAuth.name, apiAuth.club_admin, apiAuth.is_section_club, apiAuth.members.map((apiAuthMember) => authMemberFactory(apiAuthMember)), apiAuth.registration_enabled, apiAuth.sections.map((apiAuthSection) => authSectionFactory(apiAuthSection)), apiAuth.site_enabled, apiAuth.teams.map((apiAuthTeam) => authTeamFactory(apiAuthTeam)), apiAuth.user_name);
1589
1602
 
1590
- const bookingCalendarFactory = (apiBookingCalendar) => new BookingCalendar(apiBookingCalendar.id, apiBookingCalendar.club_id, apiBookingCalendar.section_id, apiBookingCalendar.team_id, apiBookingCalendar.club_name, apiBookingCalendar.color, apiBookingCalendar.name, apiBookingCalendar.section_name, apiBookingCalendar.team_name, apiBookingCalendar.status);
1603
+ const bookingCalendarFactory = (apiBookingCalendar) => new BookingCalendar(apiBookingCalendar.id, apiBookingCalendar.club_id, apiBookingCalendar.section_id, apiBookingCalendar.team_id, apiBookingCalendar.club_name, apiBookingCalendar.name, apiBookingCalendar.section_name, apiBookingCalendar.team_name, apiBookingCalendar.status);
1591
1604
 
1592
1605
  const bookingCalendarApplicationTimeFactory = (apiBookingApplicationTime) => new BookingCalendarApplicationTime(apiBookingApplicationTime.id, apiBookingApplicationTime.section_id, apiBookingApplicationTime.slot_id, apiBookingApplicationTime.team_id, apiBookingApplicationTime.end_time, apiBookingApplicationTime.section_name, apiBookingApplicationTime.start_time, apiBookingApplicationTime.team_name, apiBookingApplicationTime.location_zones_taken, apiBookingApplicationTime.applicant_comment, apiBookingApplicationTime.reviewer_comment, apiBookingApplicationTime.status, apiBookingApplicationTime.location_part_id, apiBookingApplicationTime.location_part_name, apiBookingApplicationTime.location_id, apiBookingApplicationTime.repeat, apiBookingApplicationTime.activity_type_id);
1593
1606
 
@@ -1801,8 +1814,10 @@ const CLUB_ACTIVITY_LOCATION_PATH = ':clubId/activities/locations/:locationId/';
1801
1814
  const CLUB_ACTIVITY_LOCATION_GROUPS_PATH = ':clubId/activities/locations/groups/';
1802
1815
  const CLUB_ACTIVITY_LOCATION_GROUP_PATH = ':clubId/activities/locations/groups/:groupId/';
1803
1816
  const CLUB_ACTIVITY_LOCATION_TAGS_PATH = ':clubId/activities/locations/tags/';
1817
+ const CLUB_ACTIVITY_LOCATION_TAG_PATH = ':clubId/activities/locations/tags/:tagId/';
1804
1818
  const CLUB_ACTIVITY_LOCATION_PARTS_PATH = ':clubId/activities/locations/:locationId/parts/';
1805
1819
  const CLUB_ACTIVITY_TYPES_PATH = ':clubId/activities/types/';
1820
+ const CLUB_ACTIVITY_TYPE_PATH = ':clubId/activities/types/:typeId/';
1806
1821
  const TEAM_ACTIVITY_LOCATIONS_PATH = ':teamId/activities/locations/';
1807
1822
  const TEAM_ACTIVITY_LOCATION_GROUPS_PATH = ':teamId/activities/locations/groups/';
1808
1823
  const TEAM_ACTIVITY_LOCATION_TAGS_PATH = ':teamId/activities/locations/tags/';
@@ -1812,8 +1827,10 @@ const SECTION_ACTIVITY_LOCATION_PATH = ':sectionId/activities/locations/:locatio
1812
1827
  const SECTION_ACTIVITY_LOCATION_GROUPS_PATH = ':sectionId/activities/locations/groups/';
1813
1828
  const SECTION_ACTIVITY_LOCATION_GROUP_PATH = ':sectionId/activities/locations/groups/:groupId/';
1814
1829
  const SECTION_ACTIVITY_LOCATION_TAGS_PATH = ':sectionId/activities/locations/tags/';
1830
+ const SECTION_ACTIVITY_LOCATION_TAG_PATH = ':sectionId/activities/locations/tags/:tagId/';
1815
1831
  const SECTION_ACTIVITY_LOCATION_PARTS_PATH = ':sectionId/activities/locations/:locationId/parts/';
1816
1832
  const SECTION_ACTIVITY_TYPES_PATH = ':sectionId/activities/types/';
1833
+ const SECTION_ACTIVITY_TYPE_PATH = ':sectionId/activities/types/:typeId/';
1817
1834
  class ActivityService {
1818
1835
  constructor(apiService) {
1819
1836
  this.apiService = apiService;
@@ -2000,6 +2017,7 @@ class ActivityService {
2000
2017
  }, locationGroup);
2001
2018
  }
2002
2019
  createSectionActivityLocationGroup(sectionId, locationGroup) {
2020
+ delete locationGroup.id;
2003
2021
  return this.apiService
2004
2022
  .postResource(activityLocationGroupFactory, Role.SectionAdmin, SECTION_ACTIVITY_LOCATION_GROUPS_PATH, {
2005
2023
  sectionId,
@@ -2056,6 +2074,46 @@ class ActivityService {
2056
2074
  teamId,
2057
2075
  }, tag);
2058
2076
  }
2077
+ updateActivityLocationTag(role, clubOrSectionOrTeamId, tag) {
2078
+ if (role == Role.ClubAdmin) {
2079
+ return this.updateClubActivityLocationTag(clubOrSectionOrTeamId, tag);
2080
+ }
2081
+ return this.updateSectionActivityLocationTag(clubOrSectionOrTeamId, tag);
2082
+ }
2083
+ updateClubActivityLocationTag(clubId, tag) {
2084
+ return this.apiService
2085
+ .updateResource(activityLocationTagFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_TAG_PATH, {
2086
+ clubId,
2087
+ tagId: tag.id,
2088
+ }, tag);
2089
+ }
2090
+ updateSectionActivityLocationTag(sectionId, tag) {
2091
+ return this.apiService
2092
+ .updateResource(activityLocationTagFactory, Role.SectionAdmin, SECTION_ACTIVITY_LOCATION_TAG_PATH, {
2093
+ sectionId,
2094
+ tagId: tag.id,
2095
+ }, tag);
2096
+ }
2097
+ deleteActivityLocationTag(role, clubOrSectionOrTeamId, tag) {
2098
+ if (role == Role.ClubAdmin) {
2099
+ return this.deleteClubActivityLocationTag(clubOrSectionOrTeamId, tag);
2100
+ }
2101
+ return this.deleteSectionActivityLocationTag(clubOrSectionOrTeamId, tag);
2102
+ }
2103
+ deleteClubActivityLocationTag(clubId, tag) {
2104
+ return this.apiService
2105
+ .deleteResource(Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_TAG_PATH, {
2106
+ clubId,
2107
+ tagId: tag.id,
2108
+ });
2109
+ }
2110
+ deleteSectionActivityLocationTag(sectionId, tag) {
2111
+ return this.apiService
2112
+ .deleteResource(Role.SectionAdmin, SECTION_ACTIVITY_LOCATION_TAG_PATH, {
2113
+ sectionId,
2114
+ tagId: tag.id,
2115
+ });
2116
+ }
2059
2117
  getActivityLocationParts(role, clubOrSectionOrTeamId, locationId) {
2060
2118
  if (role == Role.ClubAdmin) {
2061
2119
  return this.getClubActivityLocationParts(clubOrSectionOrTeamId, locationId);
@@ -2136,6 +2194,26 @@ class ActivityService {
2136
2194
  return this.apiService
2137
2195
  .getCollection(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPES_PATH, { sectionId }, { params: { limit: 'null' } });
2138
2196
  }
2197
+ updateActivityType(role, clubOrSectionOrTeamId, activityType) {
2198
+ if (role === Role.ClubAdmin) {
2199
+ return this.updateClubActivityType(clubOrSectionOrTeamId, activityType);
2200
+ }
2201
+ return this.updateSectionActivityType(clubOrSectionOrTeamId, activityType);
2202
+ }
2203
+ updateClubActivityType(clubId, activityType) {
2204
+ return this.apiService
2205
+ .updateResource(activityTypeFactory, Role.ClubAdmin, CLUB_ACTIVITY_TYPE_PATH, {
2206
+ clubId,
2207
+ typeId: activityType.id,
2208
+ }, activityType);
2209
+ }
2210
+ updateSectionActivityType(sectionId, activityType) {
2211
+ return this.apiService
2212
+ .updateResource(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPE_PATH, {
2213
+ sectionId,
2214
+ typeId: activityType.id,
2215
+ }, activityType);
2216
+ }
2139
2217
  getTeamCalendarEvents(teamId, startDate = null, endDate = null) {
2140
2218
  const params = { limit: 'null' };
2141
2219
  if (startDate) {
@@ -2254,7 +2332,7 @@ const TEAM_BOOKING_CALENDAR_SLOT_SESSION_PATH = ':teamId/activities/sessions/:id
2254
2332
  const TEAM_BOOKING_CALENDAR_APPLICATION_TIMES_PATH = ':teamId/activities/application-times/';
2255
2333
  const TEAM_BOOKING_CALENDAR_APPLICATION_TIME_PATH = ':teamId/activities/application-times/:id/';
2256
2334
  class BookingSlotFilter {
2257
- constructor(startDate = null, endDate = null, calendarIds = null, locationIds = null, tagIds = null, teamIds = null, locationGroupIds = null, hasOpenSessions = null) {
2335
+ constructor(startDate = null, endDate = null, calendarIds = [], locationIds = [], tagIds = [], teamIds = [], locationGroupIds = [], hasOpenSessions = null) {
2258
2336
  this.startDate = startDate;
2259
2337
  this.endDate = endDate;
2260
2338
  this.calendarIds = calendarIds;
@@ -2264,6 +2342,9 @@ class BookingSlotFilter {
2264
2342
  this.locationGroupIds = locationGroupIds;
2265
2343
  this.hasOpenSessions = hasOpenSessions;
2266
2344
  }
2345
+ static fromFilter(filter) {
2346
+ return new this(filter.startDate, filter.endDate, filter.calendarIds, filter.locationIds, filter.tagIds, filter.teamIds, filter.locationGroupIds, filter.hasOpenSessions);
2347
+ }
2267
2348
  toParams() {
2268
2349
  const params = { limit: 'null' };
2269
2350
  if (this.startDate) {