@myclub_se/data-access 2.2.3 → 2.4.0

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.
Files changed (49) hide show
  1. package/esm2020/lib/api-models/api-booking-settings.mjs +2 -0
  2. package/esm2020/lib/api-models/api-member-public-form-field-option.mjs +2 -0
  3. package/esm2020/lib/api-models/api-member-public-form-field.mjs +2 -0
  4. package/esm2020/lib/api-models/api-member-public-form.mjs +1 -1
  5. package/esm2020/lib/api-models/api-member-type.mjs +2 -0
  6. package/esm2020/lib/api-models/api-search-team.mjs +1 -1
  7. package/esm2020/lib/api-models/index.mjs +5 -1
  8. package/esm2020/lib/models/booking-settings.mjs +22 -0
  9. package/esm2020/lib/models/index.mjs +5 -1
  10. package/esm2020/lib/models/member-public-form-field-option.mjs +9 -0
  11. package/esm2020/lib/models/member-public-form-field.mjs +16 -0
  12. package/esm2020/lib/models/member-public-form.mjs +10 -2
  13. package/esm2020/lib/models/member-type.mjs +8 -0
  14. package/esm2020/lib/models/search-team.mjs +3 -2
  15. package/esm2020/lib/services/booking-calendar.service.mjs +22 -2
  16. package/esm2020/lib/services/factories/booking-calendar-factory.mjs +2 -2
  17. package/esm2020/lib/services/factories/booking-settings-factory.mjs +3 -0
  18. package/esm2020/lib/services/factories/index.mjs +4 -1
  19. package/esm2020/lib/services/factories/member-public-form-factory.mjs +16 -2
  20. package/esm2020/lib/services/factories/member-public-form-field-factory.mjs +5 -0
  21. package/esm2020/lib/services/factories/member-public-form-field-option-factory.mjs +3 -0
  22. package/esm2020/lib/services/factories/member-type-factory.mjs +3 -0
  23. package/esm2020/lib/services/factories/search-team-factory.mjs +2 -2
  24. package/fesm2015/myclub_se-data-access.mjs +110 -8
  25. package/fesm2015/myclub_se-data-access.mjs.map +1 -1
  26. package/fesm2020/myclub_se-data-access.mjs +110 -8
  27. package/fesm2020/myclub_se-data-access.mjs.map +1 -1
  28. package/lib/api-models/api-booking-settings.d.ts +8 -0
  29. package/lib/api-models/api-member-public-form-field-option.d.ts +6 -0
  30. package/lib/api-models/api-member-public-form-field.d.ts +14 -0
  31. package/lib/api-models/api-member-public-form.d.ts +10 -0
  32. package/lib/api-models/api-member-type.d.ts +5 -0
  33. package/lib/api-models/api-search-team.d.ts +3 -1
  34. package/lib/api-models/index.d.ts +4 -0
  35. package/lib/models/booking-settings.d.ts +18 -0
  36. package/lib/models/index.d.ts +4 -0
  37. package/lib/models/member-public-form-field-option.d.ts +7 -0
  38. package/lib/models/member-public-form-field.d.ts +15 -0
  39. package/lib/models/member-public-form.d.ts +12 -1
  40. package/lib/models/member-type.d.ts +6 -0
  41. package/lib/models/search-team.d.ts +2 -1
  42. package/lib/services/booking-calendar.service.d.ts +4 -2
  43. package/lib/services/factories/booking-calendar-factory.d.ts +2 -2
  44. package/lib/services/factories/booking-settings-factory.d.ts +3 -0
  45. package/lib/services/factories/index.d.ts +3 -0
  46. package/lib/services/factories/member-public-form-field-factory.d.ts +3 -0
  47. package/lib/services/factories/member-public-form-field-option-factory.d.ts +3 -0
  48. package/lib/services/factories/member-type-factory.d.ts +3 -0
  49. package/package.json +1 -1
@@ -339,6 +339,27 @@ class BookingCalendarSlotSession {
339
339
  }
340
340
  }
341
341
 
342
+ class BookingSettings {
343
+ constructor(id, club_id, calendar_step, calendar_min_time, calendar_max_time, require_team_on_closed_session) {
344
+ this.id = id;
345
+ this.club_id = club_id;
346
+ this.calendar_step = calendar_step;
347
+ this.calendar_min_time = calendar_min_time;
348
+ this.calendar_max_time = calendar_max_time;
349
+ this.require_team_on_closed_session = require_team_on_closed_session;
350
+ }
351
+ static asFormGroup(settings) {
352
+ return new FormGroup({
353
+ id: new FormControl((settings === null || settings === void 0 ? void 0 : settings.id) || ''),
354
+ club_id: new FormControl((settings === null || settings === void 0 ? void 0 : settings.club_id) || ''),
355
+ calendar_step: new FormControl((settings === null || settings === void 0 ? void 0 : settings.calendar_step) || '01:00:00', [Validators.required]),
356
+ calendar_min_time: new FormControl((settings === null || settings === void 0 ? void 0 : settings.calendar_min_time) || '00:00:00', [Validators.required]),
357
+ calendar_max_time: new FormControl((settings === null || settings === void 0 ? void 0 : settings.calendar_max_time) || '23:00:00', [Validators.required]),
358
+ require_team_on_closed_session: new FormControl((settings === null || settings === void 0 ? void 0 : settings.require_team_on_closed_session) || false),
359
+ });
360
+ }
361
+ }
362
+
342
363
  class Calendar {
343
364
  constructor(id, club_id, section_id, name, types_to_show) {
344
365
  this.id = id;
@@ -1041,16 +1062,49 @@ class MemberActivityInvite {
1041
1062
  }
1042
1063
 
1043
1064
  class MemberPublicForm {
1044
- constructor(id, active_form, active_to, userToken, name, url) {
1065
+ constructor(id, active_form, active_to, userToken, comment, fields, full_text, max_registered_in_form_total, member_types, name, num_registered, team_help_text, teams, url) {
1045
1066
  this.id = id;
1046
1067
  this.active_form = active_form;
1047
1068
  this.active_to = active_to;
1048
1069
  this.userToken = userToken;
1070
+ this.comment = comment;
1071
+ this.fields = fields;
1072
+ this.full_text = full_text;
1073
+ this.max_registered_in_form_total = max_registered_in_form_total;
1074
+ this.member_types = member_types;
1049
1075
  this.name = name;
1076
+ this.num_registered = num_registered;
1077
+ this.team_help_text = team_help_text;
1078
+ this.teams = teams;
1050
1079
  this.url = url;
1051
1080
  }
1052
1081
  }
1053
1082
 
1083
+ class MemberPublicFormField {
1084
+ constructor(all_choice_options, divider, familys, field_id, field_name, field_order, header, help_text, required, type, value) {
1085
+ this.all_choice_options = all_choice_options;
1086
+ this.divider = divider;
1087
+ this.familys = familys;
1088
+ this.field_id = field_id;
1089
+ this.field_name = field_name;
1090
+ this.field_order = field_order;
1091
+ this.header = header;
1092
+ this.help_text = help_text;
1093
+ this.required = required;
1094
+ this.type = type;
1095
+ this.value = value;
1096
+ }
1097
+ }
1098
+
1099
+ class MemberPublicFormFieldOption {
1100
+ constructor(id, name, selected, defaultValue) {
1101
+ this.id = id;
1102
+ this.name = name;
1103
+ this.selected = selected;
1104
+ this.defaultValue = defaultValue;
1105
+ }
1106
+ }
1107
+
1054
1108
  class MemberTeam {
1055
1109
  constructor(club, section, id, email, has_extra_members, name, phone, section_name) {
1056
1110
  this.club = club;
@@ -1078,6 +1132,14 @@ class MemberTeamThrough {
1078
1132
  }
1079
1133
  }
1080
1134
 
1135
+ class MemberType {
1136
+ constructor(id, club_id, name) {
1137
+ this.id = id;
1138
+ this.club_id = club_id;
1139
+ this.name = name;
1140
+ }
1141
+ }
1142
+
1081
1143
  class News {
1082
1144
  constructor(id, club_id, created, created_by_id, section_id, team_id, active_to, author, ingress, news_image, news_image_text, published_date, read, show_on_my_pages, show_on_webpage, text, title, updated, urls) {
1083
1145
  this.id = id;
@@ -1153,10 +1215,11 @@ class SearchClub {
1153
1215
  }
1154
1216
 
1155
1217
  class SearchTeam {
1156
- constructor(club, section, id, name, section_name) {
1218
+ constructor(club, section, id, club_name, name, section_name) {
1157
1219
  this.club = club;
1158
1220
  this.section = section;
1159
1221
  this.id = id;
1222
+ this.club_name = club_name;
1160
1223
  this.name = name;
1161
1224
  this.section_name = section_name;
1162
1225
  }
@@ -1403,10 +1466,30 @@ const memberInvoiceRowFactory = (apiMemberInvoiceRow) => new MemberInvoiceRow(ap
1403
1466
 
1404
1467
  const memberInvoiceFactory = (apiMemberInvoice) => new MemberInvoice(apiMemberInvoice.id, apiMemberInvoice.amount, apiMemberInvoice.amount_paid, apiMemberInvoice.balance, apiMemberInvoice.club_bill_id, apiMemberInvoice.club_name, apiMemberInvoice.credit_card ? creditCardFactory(apiMemberInvoice.credit_card) : null, apiMemberInvoice.date_paid, apiMemberInvoice.due_date, apiMemberInvoice.giro ? giroFactory(apiMemberInvoice.giro) : null, apiMemberInvoice.invoice_rows.map((row) => memberInvoiceRowFactory(row)), apiMemberInvoice.invoice_text, apiMemberInvoice.is_paid, apiMemberInvoice.member_id, apiMemberInvoice.payee, apiMemberInvoice.payment_url, apiMemberInvoice.reference, apiMemberInvoice.swish ? swishFactory(apiMemberInvoice.swish) : null, apiMemberInvoice.zimpler ? zimplerFactory(apiMemberInvoice.zimpler) : null);
1405
1468
 
1406
- const memberPublicFormFactory = (apiMemberPublicForm) => new MemberPublicForm(apiMemberPublicForm.id, apiMemberPublicForm.active_from, apiMemberPublicForm.active_to, apiMemberPublicForm.user_token, apiMemberPublicForm.name, apiMemberPublicForm.url);
1407
-
1408
1469
  const sectionFactory = (apiSection) => new Section(apiSection.id, apiSection.name);
1409
1470
 
1471
+ const searchTeamFactory = (apiSearchTeam) => new SearchTeam(apiSearchTeam.club ? clubFactory(apiSearchTeam.club) : undefined, apiSearchTeam.section ? sectionFactory(apiSearchTeam.section) : undefined, apiSearchTeam.id, apiSearchTeam.club_name, apiSearchTeam.name, apiSearchTeam.section_name);
1472
+
1473
+ const memberPublicFormFieldOptionFactory = (apiMemberPublicFormFieldOption) => new MemberPublicFormFieldOption(apiMemberPublicFormFieldOption.id, apiMemberPublicFormFieldOption.name, apiMemberPublicFormFieldOption.selected, apiMemberPublicFormFieldOption.default);
1474
+
1475
+ const memberPublicFormFieldFactory = (apiMemberPublicFormField) => new MemberPublicFormField(apiMemberPublicFormField.all_choice_options && apiMemberPublicFormField.all_choice_options.length ?
1476
+ apiMemberPublicFormField.all_choice_options.map((option) => memberPublicFormFieldOptionFactory(option)) : [], apiMemberPublicFormField.divider, apiMemberPublicFormField.familys, apiMemberPublicFormField.field_id, apiMemberPublicFormField.field_name, apiMemberPublicFormField.field_order, apiMemberPublicFormField.header, apiMemberPublicFormField.help_text, apiMemberPublicFormField.required, apiMemberPublicFormField.type, apiMemberPublicFormField.value);
1477
+
1478
+ const memberTypeFactory = (apiMemberType) => new MemberType(apiMemberType.id, apiMemberType.club_id, apiMemberType.name);
1479
+
1480
+ const memberPublicFormFactory = (apiMemberPublicForm) => {
1481
+ const fields = new Map();
1482
+ if (apiMemberPublicForm.fields) {
1483
+ Object.entries(apiMemberPublicForm.fields)
1484
+ .forEach(([key, field]) => {
1485
+ fields.set(key, memberPublicFormFieldFactory(field));
1486
+ });
1487
+ }
1488
+ return new MemberPublicForm(apiMemberPublicForm.id, apiMemberPublicForm.active_from, apiMemberPublicForm.active_to, apiMemberPublicForm.user_token, apiMemberPublicForm.comment, fields, apiMemberPublicForm.full_text, apiMemberPublicForm.max_registered_in_form_total, apiMemberPublicForm.member_types && apiMemberPublicForm.member_types.length ?
1489
+ apiMemberPublicForm.member_types.map((memberType) => memberTypeFactory(memberType)) : [], apiMemberPublicForm.name, apiMemberPublicForm.num_registered, apiMemberPublicForm.team_help_text, apiMemberPublicForm.teams && apiMemberPublicForm.teams.length
1490
+ ? apiMemberPublicForm.teams.map((team) => searchTeamFactory(team)) : [], apiMemberPublicForm.url);
1491
+ };
1492
+
1410
1493
  const memberTeamFactory = (apiMemberTeam) => new MemberTeam(clubFactory(apiMemberTeam.club), apiMemberTeam.section ? sectionFactory(apiMemberTeam.section) : null, apiMemberTeam.id, apiMemberTeam.email, apiMemberTeam.has_extra_members, apiMemberTeam.name, apiMemberTeam.phone, apiMemberTeam.section_name);
1411
1494
 
1412
1495
  const memberTeamThroughFactory = (apiMemberTeamThrough) => new MemberTeamThrough(apiMemberTeamThrough.id, apiMemberTeamThrough.created, apiMemberTeamThrough.date_hidden, apiMemberTeamThrough.image, apiMemberTeamThrough.leader, memberFactory(apiMemberTeamThrough.member), apiMemberTeamThrough.role_id, apiMemberTeamThrough.show_on_web, apiMemberTeamThrough.updated);
@@ -1744,6 +1827,8 @@ const bookingCalendarSlotSessionFactory = (apiBookingSlotSession) => new Booking
1744
1827
 
1745
1828
  const bookingCalendarSlotFactory = (apiBookingSlot) => new BookingCalendarSlot(apiBookingSlot.id, apiBookingSlot.calendar_id, apiBookingSlot.location_id, apiBookingSlot.color, apiBookingSlot.day, apiBookingSlot.end_time, apiBookingSlot.group_id, apiBookingSlot.location_name, apiBookingSlot.number_of_available_sessions, apiBookingSlot.sessions && apiBookingSlot.sessions.length ? apiBookingSlot.sessions.map((apiBookingSlotSession) => bookingCalendarSlotSessionFactory(apiBookingSlotSession)) : [], apiBookingSlot.open_sessions && apiBookingSlot.open_sessions.length ? apiBookingSlot.open_sessions.map((apiBookingSlotSession) => bookingCalendarSlotSessionFactory(apiBookingSlotSession)) : [], apiBookingSlot.start_time, apiBookingSlot.type, 'none', false, false, apiBookingSlot.available_location_zones, 6, format(new Date(), 'yyyy-MM-dd'), 'repeat_until', apiBookingSlot.reserved_time, apiBookingSlot.reserved_time_type, apiBookingSlot.reserved_time_position);
1746
1829
 
1830
+ const bookingSettingsFactory = (apiBookingSettings) => new BookingSettings(apiBookingSettings.id, apiBookingSettings.club_id, apiBookingSettings.calendar_step, apiBookingSettings.calendar_min_time, apiBookingSettings.calendar_max_time, apiBookingSettings.require_team_on_closed_session);
1831
+
1747
1832
  const CLUB_BOOKING_CALENDARS_PATH = ':clubId/activities/calendars/';
1748
1833
  const CLUB_BOOKING_CALENDAR_PATH = ':clubId/activities/calendars/:id/';
1749
1834
  const CLUB_BOOKING_CALENDAR_SLOTS_PATH = ':clubId/activities/slots/';
@@ -1751,6 +1836,7 @@ const CLUB_BOOKING_CALENDAR_SLOT_PATH = ':clubId/activities/slots/:id/';
1751
1836
  const CLUB_BOOKING_CALENDAR_REPEATABLE_SLOT_PATH = ':clubId/activities/slots/:id/all/';
1752
1837
  const CLUB_BOOKING_CALENDAR_SLOT_SESSIONS_PATH = ':clubId/activities/sessions/';
1753
1838
  const CLUB_BOOKING_CALENDAR_SLOT_SESSION_PATH = ':clubId/activities/sessions/:id/';
1839
+ const CLUB_BOOKING_SETTINGS_PATH = ':clubId/activities/booking-settings/';
1754
1840
  class BookingCalendarService {
1755
1841
  constructor(apiService) {
1756
1842
  this.apiService = apiService;
@@ -1800,7 +1886,7 @@ class BookingCalendarService {
1800
1886
  clubId,
1801
1887
  }, slot);
1802
1888
  }
1803
- getClubBookingCalendarSlots(clubId, startDate = null, endDate = null, calendarIds = null, locationIds = null) {
1889
+ getClubBookingCalendarSlots(clubId, startDate = null, endDate = null, calendarIds = null, locationIds = null, teamIds = null, hasOpenSessions = null) {
1804
1890
  const params = { limit: 'null' };
1805
1891
  if (startDate) {
1806
1892
  params['day__gte'] = startDate;
@@ -1814,6 +1900,12 @@ class BookingCalendarService {
1814
1900
  if (locationIds && locationIds.length) {
1815
1901
  params['location_id'] = locationIds.join(',');
1816
1902
  }
1903
+ if (teamIds && teamIds.length) {
1904
+ params['team_id'] = teamIds.join(',');
1905
+ }
1906
+ if (typeof hasOpenSessions === 'boolean') {
1907
+ params['has_open_sessions'] = String(hasOpenSessions);
1908
+ }
1817
1909
  return this.apiService
1818
1910
  .getCollection(bookingCalendarSlotFactory, Role.ClubAdmin, CLUB_BOOKING_CALENDAR_SLOTS_PATH, { clubId }, {
1819
1911
  params
@@ -1884,6 +1976,18 @@ class BookingCalendarService {
1884
1976
  id
1885
1977
  });
1886
1978
  }
1979
+ // endregion
1980
+ // region Booking Setting
1981
+ getClubBookingSettings(clubId) {
1982
+ return this.apiService
1983
+ .getResource(bookingSettingsFactory, Role.ClubAdmin, CLUB_BOOKING_SETTINGS_PATH, { clubId });
1984
+ }
1985
+ updateClubBookingSettings(clubId, bookingSettings) {
1986
+ return this.apiService
1987
+ .updateResource(bookingSettingsFactory, Role.ClubAdmin, CLUB_BOOKING_SETTINGS_PATH, {
1988
+ clubId,
1989
+ }, bookingSettings);
1990
+ }
1887
1991
  }
1888
1992
  BookingCalendarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: BookingCalendarService, deps: [{ token: ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
1889
1993
  BookingCalendarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: BookingCalendarService, providedIn: 'root' });
@@ -2531,8 +2635,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
2531
2635
  }]
2532
2636
  }], ctorParameters: function () { return [{ type: ApiService }]; } });
2533
2637
 
2534
- const searchTeamFactory = (apiSearchTeam) => new SearchTeam(apiSearchTeam.club ? clubFactory(apiSearchTeam.club) : undefined, apiSearchTeam.section ? sectionFactory(apiSearchTeam.section) : undefined, apiSearchTeam.id, apiSearchTeam.name, apiSearchTeam.section_name);
2535
-
2536
2638
  const CLUB_TEAMS_PATH = ':clubId/teams/';
2537
2639
  const MEMBER_TEAM_MEMBER_PATH = ':memberId/teams/:teamId/team-members/:id/';
2538
2640
  const MEMBER_TEAM_MEMBERS_PATH = ':memberId/teams/:teamId/team-members/';
@@ -2945,5 +3047,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
2945
3047
  * Generated bundle index. Do not edit.
2946
3048
  */
2947
3049
 
2948
- export { APP, Activity, ActivityExtraMember, ActivityInvite, ActivityLocation, ActivityLocationGroup, ActivityService, ActivitySettings, ActivityType, Auth, AuthMember, AuthSection, AuthService, AuthTeam, AuthTeamSection, AuthenticatedGuard, Authentication, AuthenticationInterceptor, AuthenticationService, BookingCalendar, BookingCalendarService, BookingCalendarSlot, BookingCalendarSlotSession, Calendar, CalendarEvent, Card, CardDeal, CardLogo, CardLogoUrls, CardMemberTicket, CardTheme, CardTicket, CardTicketLocation, Club, ClubImage, ClubSection, ClubService, Collection, ConstantService, Contact, CreditCard, DataAccessModule, Directory, Email, EmailService, Event, ExternalLink, ExternalLinkService, FileObject, FileService, GeneralImage, Giro, HandleGrantTokenGuard, HomeTeam, ImageUrls, InvoiceService, Member, MemberActivityInvite, MemberAttribute, MemberCard, MemberCardService, MemberContact, MemberFee, MemberFunction, MemberInvoice, MemberInvoiceRow, MemberPublicForm, MemberPublicFormService, MemberService, MemberTeam, MemberTeamThrough, MemberValidationSettings, News, NewsService, Partner, PaymentAttempt, PaymentAttemptService, Role, SearchClub, SearchMember, SearchMemberCard, SearchMemberInvoice, SearchTeam, Section, SectionService, Swish, SwishQrCode, TeamService, Token, TokenService, USER_NOTIFICATIONS_PATH, UnpaidMemberInvoice, User, UserNotification, UserNotificationService, UserService, Zimpler };
3050
+ export { APP, Activity, ActivityExtraMember, ActivityInvite, ActivityLocation, ActivityLocationGroup, ActivityService, ActivitySettings, ActivityType, Auth, AuthMember, AuthSection, AuthService, AuthTeam, AuthTeamSection, AuthenticatedGuard, Authentication, AuthenticationInterceptor, AuthenticationService, BookingCalendar, BookingCalendarService, BookingCalendarSlot, BookingCalendarSlotSession, BookingSettings, Calendar, CalendarEvent, Card, CardDeal, CardLogo, CardLogoUrls, CardMemberTicket, CardTheme, CardTicket, CardTicketLocation, Club, ClubImage, ClubSection, ClubService, Collection, ConstantService, Contact, CreditCard, DataAccessModule, Directory, Email, EmailService, Event, ExternalLink, ExternalLinkService, FileObject, FileService, GeneralImage, Giro, HandleGrantTokenGuard, HomeTeam, ImageUrls, InvoiceService, Member, MemberActivityInvite, MemberAttribute, MemberCard, MemberCardService, MemberContact, MemberFee, MemberFunction, MemberInvoice, MemberInvoiceRow, MemberPublicForm, MemberPublicFormField, MemberPublicFormFieldOption, MemberPublicFormService, MemberService, MemberTeam, MemberTeamThrough, MemberType, MemberValidationSettings, News, NewsService, Partner, PaymentAttempt, PaymentAttemptService, Role, SearchClub, SearchMember, SearchMemberCard, SearchMemberInvoice, SearchTeam, Section, SectionService, Swish, SwishQrCode, TeamService, Token, TokenService, USER_NOTIFICATIONS_PATH, UnpaidMemberInvoice, User, UserNotification, UserNotificationService, UserService, Zimpler };
2949
3051
  //# sourceMappingURL=myclub_se-data-access.mjs.map