@myclub_se/data-access 2.9.0 → 2.9.1

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.
@@ -306,7 +306,7 @@ class Authentication {
306
306
  }
307
307
 
308
308
  class BookingCalendar {
309
- constructor(id, club_id, section_id, team_id, club_name, name, section_name, team_name, status, location_groups) {
309
+ constructor(id, club_id, section_id, team_id, club_name, name, section_name, team_name, status, max_application_number, location_groups) {
310
310
  this.id = id;
311
311
  this.club_id = club_id;
312
312
  this.section_id = section_id;
@@ -316,6 +316,7 @@ class BookingCalendar {
316
316
  this.section_name = section_name;
317
317
  this.team_name = team_name;
318
318
  this.status = status;
319
+ this.max_application_number = max_application_number;
319
320
  this.location_groups = location_groups;
320
321
  }
321
322
  static asFormGroup(calendar) {
@@ -336,12 +337,13 @@ class BookingCalendar {
336
337
  team_name: new FormControl(calendar?.team_name || ''),
337
338
  status: new FormControl(calendar?.status || 'preliminary'),
338
339
  location_groups: new FormArray(locationGroups),
340
+ max_application_number: new FormControl(calendar?.max_application_number || 0),
339
341
  });
340
342
  }
341
343
  }
342
344
 
343
345
  class BookingCalendarApplicationTime {
344
- constructor(id, section_id, slot_id, team_id, end_time, section_name, start_time, team_name, location_zones_taken, applicant_comment, reviewer_comment, status, location_part_id, location_part_name, location_id, repeat, activity_type_id) {
346
+ constructor(id, section_id, slot_id, team_id, end_time, section_name, start_time, team_name, location_zones_taken, applicant_comment, reviewer_comment, status, location_part_id, location_part_name, location_id, repeat, activity_type_id, color = null, slot_start_time, slot_end_time, slot_day, slot_number_of_available_sessions, slot_last_repeating_date, created) {
345
347
  this.id = id;
346
348
  this.section_id = section_id;
347
349
  this.slot_id = slot_id;
@@ -359,6 +361,13 @@ class BookingCalendarApplicationTime {
359
361
  this.location_id = location_id;
360
362
  this.repeat = repeat;
361
363
  this.activity_type_id = activity_type_id;
364
+ this.color = color;
365
+ this.slot_start_time = slot_start_time;
366
+ this.slot_end_time = slot_end_time;
367
+ this.slot_day = slot_day;
368
+ this.slot_number_of_available_sessions = slot_number_of_available_sessions;
369
+ this.slot_last_repeating_date = slot_last_repeating_date;
370
+ this.created = created;
362
371
  }
363
372
  static asFormGroup(session) {
364
373
  return new FormGroup({
@@ -1681,9 +1690,9 @@ const authTeamFactory = (apiAuthTeam) => new AuthTeam(apiAuthTeam.id, apiAuthTea
1681
1690
 
1682
1691
  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);
1683
1692
 
1684
- 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, apiBookingCalendar.location_groups && apiBookingCalendar.location_groups.length ? apiBookingCalendar.location_groups.map((apiActivityLocationGroup) => activityLocationGroupFactory(apiActivityLocationGroup)) : []);
1693
+ 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, apiBookingCalendar.max_application_number, apiBookingCalendar.location_groups && apiBookingCalendar.location_groups.length ? apiBookingCalendar.location_groups.map((apiActivityLocationGroup) => activityLocationGroupFactory(apiActivityLocationGroup)) : []);
1685
1694
 
1686
- 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);
1695
+ 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, apiBookingApplicationTime.color, apiBookingApplicationTime.slot_start_time, apiBookingApplicationTime.slot_end_time, apiBookingApplicationTime.slot_day, apiBookingApplicationTime.slot_number_of_available_sessions, apiBookingApplicationTime.slot_last_repeating_date, apiBookingApplicationTime.created);
1687
1696
 
1688
1697
  const bookingCalendarSlotSessionFactory = (apiBookingSlotSession) => new BookingCalendarSlotSession(apiBookingSlotSession.id, apiBookingSlotSession.section_id, apiBookingSlotSession.slot_id, apiBookingSlotSession.team_id, apiBookingSlotSession.end_time, apiBookingSlotSession.section_name, apiBookingSlotSession.start_time, apiBookingSlotSession.team_name, apiBookingSlotSession.is_overbooked, apiBookingSlotSession.type, apiBookingSlotSession.location_zones_taken, apiBookingSlotSession.slot_index, apiBookingSlotSession.comment, apiBookingSlotSession.location_part_id, apiBookingSlotSession.location_part_name, apiBookingSlotSession.location_id, apiBookingSlotSession.repeat, apiBookingSlotSession.activity_type_id, apiBookingSlotSession.color);
1689
1698
 
@@ -2443,6 +2452,7 @@ const CLUB_BOOKING_CALENDAR_SLOT_SESSIONS_PATH = ':clubId/activities/sessions/';
2443
2452
  const CLUB_BOOKING_CALENDAR_SLOT_SESSION_PATH = ':clubId/activities/sessions/:id/';
2444
2453
  const CLUB_BOOKING_SETTINGS_PATH = ':clubId/activities/booking-settings/';
2445
2454
  const CLUB_BOOKING_CALENDAR_APPLICATION_TIME_PATH = ':clubId/activities/application-times/:id/';
2455
+ const CLUB_BOOKING_CALENDAR_APPLICATION_TIMES_PATH = ':clubId/activities/application-times/';
2446
2456
  const SECTION_BOOKING_CALENDARS_PATH = ':sectionId/activities/calendars/';
2447
2457
  const SECTION_BOOKING_CALENDAR_PATH = ':sectionId/activities/calendars/:id/';
2448
2458
  const SECTION_BOOKING_CALENDAR_SLOTS_PATH = ':sectionId/activities/slots/';
@@ -2456,6 +2466,7 @@ const SECTION_BOOKING_CALENDAR_SLOT_SESSIONS_PATH = ':sectionId/activities/sessi
2456
2466
  const SECTION_BOOKING_CALENDAR_SLOT_SESSION_PATH = ':sectionId/activities/sessions/:id/';
2457
2467
  const SECTION_BOOKING_SETTINGS_PATH = ':sectionId/activities/booking-settings/';
2458
2468
  const SECTION_BOOKING_CALENDAR_APPLICATION_TIME_PATH = ':sectionId/activities/application-times/:id/';
2469
+ const SECTION_BOOKING_CALENDAR_APPLICATION_TIMES_PATH = ':sectionId/activities/application-times/';
2459
2470
  const TEAM_BOOKING_CALENDARS_PATH = ':teamId/activities/calendars/';
2460
2471
  const TEAM_BOOKING_CALENDAR_SLOTS_PATH = ':teamId/activities/slots/';
2461
2472
  const TEAM_BOOKING_CALENDAR_SLOTS_SYNC_PATH = ':teamId/activities/slots/sync/';
@@ -2463,10 +2474,11 @@ const TEAM_BOOKING_CALENDAR_SLOTS_APPLICATION_TIMES_PATH = ':teamId/activities/s
2463
2474
  const TEAM_BOOKING_SETTINGS_PATH = ':teamId/activities/booking-settings/';
2464
2475
  const TEAM_BOOKING_CALENDAR_SLOT_SESSIONS_PATH = ':teamId/activities/sessions/';
2465
2476
  const TEAM_BOOKING_CALENDAR_SLOT_SESSION_PATH = ':teamId/activities/sessions/:id/';
2477
+ const TEAM_BOOKING_CALENDAR_SLOT_PATH = ':teamId/activities/slots/:id/';
2466
2478
  const TEAM_BOOKING_CALENDAR_APPLICATION_TIMES_PATH = ':teamId/activities/application-times/';
2467
2479
  const TEAM_BOOKING_CALENDAR_APPLICATION_TIME_PATH = ':teamId/activities/application-times/:id/';
2468
2480
  class BookingSlotFilter {
2469
- constructor(startDate = null, endDate = null, calendarIds = [], locationIds = [], tagIds = [], teamIds = [], locationGroupIds = [], activityTypeIds = [], hasOpenSessions = null) {
2481
+ constructor(startDate = null, endDate = null, calendarIds = [], locationIds = [], tagIds = [], teamIds = [], locationGroupIds = [], activityTypeIds = [], hasOpenSessions = null, showApplicationTimes = null, sortBy = null) {
2470
2482
  this.startDate = startDate;
2471
2483
  this.endDate = endDate;
2472
2484
  this.calendarIds = calendarIds;
@@ -2476,9 +2488,11 @@ class BookingSlotFilter {
2476
2488
  this.locationGroupIds = locationGroupIds;
2477
2489
  this.activityTypeIds = activityTypeIds;
2478
2490
  this.hasOpenSessions = hasOpenSessions;
2491
+ this.showApplicationTimes = showApplicationTimes;
2492
+ this.sortBy = sortBy;
2479
2493
  }
2480
2494
  static fromFilter(filter) {
2481
- return new this(filter.startDate, filter.endDate, filter.calendarIds, filter.locationIds, filter.tagIds, filter.teamIds, filter.locationGroupIds, filter.activityTypeIds, filter.hasOpenSessions);
2495
+ return new this(filter.startDate, filter.endDate, filter.calendarIds, filter.locationIds, filter.tagIds, filter.teamIds, filter.locationGroupIds, filter.activityTypeIds, filter.hasOpenSessions, filter.showApplicationTimes, filter.sortBy);
2482
2496
  }
2483
2497
  toParams() {
2484
2498
  const params = { limit: 'null' };
@@ -2509,6 +2523,12 @@ class BookingSlotFilter {
2509
2523
  if (typeof this.hasOpenSessions === 'boolean') {
2510
2524
  params['has_open_sessions'] = String(this.hasOpenSessions);
2511
2525
  }
2526
+ if (typeof this.showApplicationTimes === 'boolean') {
2527
+ params['show_application_times'] = String(this.showApplicationTimes);
2528
+ }
2529
+ if (this.sortBy) {
2530
+ params['order'] = this.sortBy;
2531
+ }
2512
2532
  return params;
2513
2533
  }
2514
2534
  }
@@ -2668,6 +2688,36 @@ class BookingCalendarService {
2668
2688
  params
2669
2689
  });
2670
2690
  }
2691
+ getBookingCalendarSlot(role, clubOrSectionOrTeamId, slotId) {
2692
+ if (role == Role.ClubAdmin) {
2693
+ return this.getClubBookingCalendarSlot(clubOrSectionOrTeamId, slotId);
2694
+ }
2695
+ else if (role == Role.SectionAdmin) {
2696
+ return this.getSectionBookingCalendarSlot(clubOrSectionOrTeamId, slotId);
2697
+ }
2698
+ return this.getTeamBookingCalendarSlot(clubOrSectionOrTeamId, slotId);
2699
+ }
2700
+ getClubBookingCalendarSlot(clubId, slotId) {
2701
+ return this.apiService
2702
+ .getResource(bookingCalendarSlotFactory, Role.ClubAdmin, CLUB_BOOKING_CALENDAR_SLOT_PATH, {
2703
+ clubId,
2704
+ id: slotId
2705
+ });
2706
+ }
2707
+ getSectionBookingCalendarSlot(sectionId, slotId) {
2708
+ return this.apiService
2709
+ .getResource(bookingCalendarSlotFactory, Role.SectionAdmin, SECTION_BOOKING_CALENDAR_SLOT_PATH, {
2710
+ sectionId,
2711
+ id: slotId
2712
+ });
2713
+ }
2714
+ getTeamBookingCalendarSlot(teamId, slotId) {
2715
+ return this.apiService
2716
+ .getResource(bookingCalendarSlotFactory, Role.TeamAdmin, TEAM_BOOKING_CALENDAR_SLOT_PATH, {
2717
+ teamId,
2718
+ id: slotId
2719
+ });
2720
+ }
2671
2721
  getBookingCalendarApplicationTimeSlots(role, clubOrSectionOrTeamId, bookingSlotFilter) {
2672
2722
  if (role == Role.ClubAdmin) {
2673
2723
  return this.getClubBookingCalendarApplicationTimeSlots(clubOrSectionOrTeamId, bookingSlotFilter);
@@ -2698,6 +2748,36 @@ class BookingCalendarService {
2698
2748
  params
2699
2749
  });
2700
2750
  }
2751
+ getBookingCalendarApplicationTimes(role, clubOrSectionOrTeamId, bookingSlotFilter) {
2752
+ if (role == Role.ClubAdmin) {
2753
+ return this.getClubBookingCalendarApplicationTimes(clubOrSectionOrTeamId, bookingSlotFilter);
2754
+ }
2755
+ else if (role == Role.SectionAdmin) {
2756
+ return this.getSectionBookingCalendarApplicationTimes(clubOrSectionOrTeamId, bookingSlotFilter);
2757
+ }
2758
+ return this.getTeamBookingCalendarApplicationTimes(clubOrSectionOrTeamId, bookingSlotFilter);
2759
+ }
2760
+ getClubBookingCalendarApplicationTimes(clubId, bookingSlotFilter) {
2761
+ const params = bookingSlotFilter.toParams();
2762
+ return this.apiService
2763
+ .getCollection(bookingCalendarApplicationTimeFactory, Role.ClubAdmin, CLUB_BOOKING_CALENDAR_APPLICATION_TIMES_PATH, { clubId }, {
2764
+ params
2765
+ });
2766
+ }
2767
+ getSectionBookingCalendarApplicationTimes(sectionId, bookingSlotFilter) {
2768
+ const params = bookingSlotFilter.toParams();
2769
+ return this.apiService
2770
+ .getCollection(bookingCalendarApplicationTimeFactory, Role.SectionAdmin, SECTION_BOOKING_CALENDAR_APPLICATION_TIMES_PATH, { sectionId }, {
2771
+ params
2772
+ });
2773
+ }
2774
+ getTeamBookingCalendarApplicationTimes(teamId, bookingSlotFilter) {
2775
+ const params = bookingSlotFilter.toParams();
2776
+ return this.apiService
2777
+ .getCollection(bookingCalendarApplicationTimeFactory, Role.TeamAdmin, TEAM_BOOKING_CALENDAR_APPLICATION_TIMES_PATH, { teamId }, {
2778
+ params
2779
+ });
2780
+ }
2701
2781
  copyBookingCalendarSlots(role, clubOrSectionOrTeamId, weekRelativeIndexes, onlyCopySlots = false, bookingSlotFilter) {
2702
2782
  if (role === Role.ClubAdmin) {
2703
2783
  return this.copyClubBookingCalendarSlots(clubOrSectionOrTeamId, weekRelativeIndexes, onlyCopySlots, bookingSlotFilter);