@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?.id || ''),
354
+ club_id: new FormControl(settings?.club_id || ''),
355
+ calendar_step: new FormControl(settings?.calendar_step || '01:00:00', [Validators.required]),
356
+ calendar_min_time: new FormControl(settings?.calendar_min_time || '00:00:00', [Validators.required]),
357
+ calendar_max_time: new FormControl(settings?.calendar_max_time || '23:00:00', [Validators.required]),
358
+ require_team_on_closed_session: new FormControl(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;
@@ -1040,16 +1061,49 @@ class MemberActivityInvite {
1040
1061
  }
1041
1062
 
1042
1063
  class MemberPublicForm {
1043
- constructor(id, active_form, active_to, userToken, name, url) {
1064
+ 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) {
1044
1065
  this.id = id;
1045
1066
  this.active_form = active_form;
1046
1067
  this.active_to = active_to;
1047
1068
  this.userToken = userToken;
1069
+ this.comment = comment;
1070
+ this.fields = fields;
1071
+ this.full_text = full_text;
1072
+ this.max_registered_in_form_total = max_registered_in_form_total;
1073
+ this.member_types = member_types;
1048
1074
  this.name = name;
1075
+ this.num_registered = num_registered;
1076
+ this.team_help_text = team_help_text;
1077
+ this.teams = teams;
1049
1078
  this.url = url;
1050
1079
  }
1051
1080
  }
1052
1081
 
1082
+ class MemberPublicFormField {
1083
+ constructor(all_choice_options, divider, familys, field_id, field_name, field_order, header, help_text, required, type, value) {
1084
+ this.all_choice_options = all_choice_options;
1085
+ this.divider = divider;
1086
+ this.familys = familys;
1087
+ this.field_id = field_id;
1088
+ this.field_name = field_name;
1089
+ this.field_order = field_order;
1090
+ this.header = header;
1091
+ this.help_text = help_text;
1092
+ this.required = required;
1093
+ this.type = type;
1094
+ this.value = value;
1095
+ }
1096
+ }
1097
+
1098
+ class MemberPublicFormFieldOption {
1099
+ constructor(id, name, selected, defaultValue) {
1100
+ this.id = id;
1101
+ this.name = name;
1102
+ this.selected = selected;
1103
+ this.defaultValue = defaultValue;
1104
+ }
1105
+ }
1106
+
1053
1107
  class MemberTeam {
1054
1108
  constructor(club, section, id, email, has_extra_members, name, phone, section_name) {
1055
1109
  this.club = club;
@@ -1077,6 +1131,14 @@ class MemberTeamThrough {
1077
1131
  }
1078
1132
  }
1079
1133
 
1134
+ class MemberType {
1135
+ constructor(id, club_id, name) {
1136
+ this.id = id;
1137
+ this.club_id = club_id;
1138
+ this.name = name;
1139
+ }
1140
+ }
1141
+
1080
1142
  class News {
1081
1143
  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) {
1082
1144
  this.id = id;
@@ -1152,10 +1214,11 @@ class SearchClub {
1152
1214
  }
1153
1215
 
1154
1216
  class SearchTeam {
1155
- constructor(club, section, id, name, section_name) {
1217
+ constructor(club, section, id, club_name, name, section_name) {
1156
1218
  this.club = club;
1157
1219
  this.section = section;
1158
1220
  this.id = id;
1221
+ this.club_name = club_name;
1159
1222
  this.name = name;
1160
1223
  this.section_name = section_name;
1161
1224
  }
@@ -1400,10 +1463,30 @@ const memberInvoiceRowFactory = (apiMemberInvoiceRow) => new MemberInvoiceRow(ap
1400
1463
 
1401
1464
  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);
1402
1465
 
1403
- const memberPublicFormFactory = (apiMemberPublicForm) => new MemberPublicForm(apiMemberPublicForm.id, apiMemberPublicForm.active_from, apiMemberPublicForm.active_to, apiMemberPublicForm.user_token, apiMemberPublicForm.name, apiMemberPublicForm.url);
1404
-
1405
1466
  const sectionFactory = (apiSection) => new Section(apiSection.id, apiSection.name);
1406
1467
 
1468
+ 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);
1469
+
1470
+ const memberPublicFormFieldOptionFactory = (apiMemberPublicFormFieldOption) => new MemberPublicFormFieldOption(apiMemberPublicFormFieldOption.id, apiMemberPublicFormFieldOption.name, apiMemberPublicFormFieldOption.selected, apiMemberPublicFormFieldOption.default);
1471
+
1472
+ const memberPublicFormFieldFactory = (apiMemberPublicFormField) => new MemberPublicFormField(apiMemberPublicFormField.all_choice_options && apiMemberPublicFormField.all_choice_options.length ?
1473
+ 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);
1474
+
1475
+ const memberTypeFactory = (apiMemberType) => new MemberType(apiMemberType.id, apiMemberType.club_id, apiMemberType.name);
1476
+
1477
+ const memberPublicFormFactory = (apiMemberPublicForm) => {
1478
+ const fields = new Map();
1479
+ if (apiMemberPublicForm.fields) {
1480
+ Object.entries(apiMemberPublicForm.fields)
1481
+ .forEach(([key, field]) => {
1482
+ fields.set(key, memberPublicFormFieldFactory(field));
1483
+ });
1484
+ }
1485
+ 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 ?
1486
+ apiMemberPublicForm.member_types.map((memberType) => memberTypeFactory(memberType)) : [], apiMemberPublicForm.name, apiMemberPublicForm.num_registered, apiMemberPublicForm.team_help_text, apiMemberPublicForm.teams && apiMemberPublicForm.teams.length
1487
+ ? apiMemberPublicForm.teams.map((team) => searchTeamFactory(team)) : [], apiMemberPublicForm.url);
1488
+ };
1489
+
1407
1490
  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);
1408
1491
 
1409
1492
  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);
@@ -1740,6 +1823,8 @@ const bookingCalendarSlotSessionFactory = (apiBookingSlotSession) => new Booking
1740
1823
 
1741
1824
  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);
1742
1825
 
1826
+ 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);
1827
+
1743
1828
  const CLUB_BOOKING_CALENDARS_PATH = ':clubId/activities/calendars/';
1744
1829
  const CLUB_BOOKING_CALENDAR_PATH = ':clubId/activities/calendars/:id/';
1745
1830
  const CLUB_BOOKING_CALENDAR_SLOTS_PATH = ':clubId/activities/slots/';
@@ -1747,6 +1832,7 @@ const CLUB_BOOKING_CALENDAR_SLOT_PATH = ':clubId/activities/slots/:id/';
1747
1832
  const CLUB_BOOKING_CALENDAR_REPEATABLE_SLOT_PATH = ':clubId/activities/slots/:id/all/';
1748
1833
  const CLUB_BOOKING_CALENDAR_SLOT_SESSIONS_PATH = ':clubId/activities/sessions/';
1749
1834
  const CLUB_BOOKING_CALENDAR_SLOT_SESSION_PATH = ':clubId/activities/sessions/:id/';
1835
+ const CLUB_BOOKING_SETTINGS_PATH = ':clubId/activities/booking-settings/';
1750
1836
  class BookingCalendarService {
1751
1837
  constructor(apiService) {
1752
1838
  this.apiService = apiService;
@@ -1796,7 +1882,7 @@ class BookingCalendarService {
1796
1882
  clubId,
1797
1883
  }, slot);
1798
1884
  }
1799
- getClubBookingCalendarSlots(clubId, startDate = null, endDate = null, calendarIds = null, locationIds = null) {
1885
+ getClubBookingCalendarSlots(clubId, startDate = null, endDate = null, calendarIds = null, locationIds = null, teamIds = null, hasOpenSessions = null) {
1800
1886
  const params = { limit: 'null' };
1801
1887
  if (startDate) {
1802
1888
  params['day__gte'] = startDate;
@@ -1810,6 +1896,12 @@ class BookingCalendarService {
1810
1896
  if (locationIds && locationIds.length) {
1811
1897
  params['location_id'] = locationIds.join(',');
1812
1898
  }
1899
+ if (teamIds && teamIds.length) {
1900
+ params['team_id'] = teamIds.join(',');
1901
+ }
1902
+ if (typeof hasOpenSessions === 'boolean') {
1903
+ params['has_open_sessions'] = String(hasOpenSessions);
1904
+ }
1813
1905
  return this.apiService
1814
1906
  .getCollection(bookingCalendarSlotFactory, Role.ClubAdmin, CLUB_BOOKING_CALENDAR_SLOTS_PATH, { clubId }, {
1815
1907
  params
@@ -1880,6 +1972,18 @@ class BookingCalendarService {
1880
1972
  id
1881
1973
  });
1882
1974
  }
1975
+ // endregion
1976
+ // region Booking Setting
1977
+ getClubBookingSettings(clubId) {
1978
+ return this.apiService
1979
+ .getResource(bookingSettingsFactory, Role.ClubAdmin, CLUB_BOOKING_SETTINGS_PATH, { clubId });
1980
+ }
1981
+ updateClubBookingSettings(clubId, bookingSettings) {
1982
+ return this.apiService
1983
+ .updateResource(bookingSettingsFactory, Role.ClubAdmin, CLUB_BOOKING_SETTINGS_PATH, {
1984
+ clubId,
1985
+ }, bookingSettings);
1986
+ }
1883
1987
  }
1884
1988
  BookingCalendarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: BookingCalendarService, deps: [{ token: ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
1885
1989
  BookingCalendarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: BookingCalendarService, providedIn: 'root' });
@@ -2527,8 +2631,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
2527
2631
  }]
2528
2632
  }], ctorParameters: function () { return [{ type: ApiService }]; } });
2529
2633
 
2530
- const searchTeamFactory = (apiSearchTeam) => new SearchTeam(apiSearchTeam.club ? clubFactory(apiSearchTeam.club) : undefined, apiSearchTeam.section ? sectionFactory(apiSearchTeam.section) : undefined, apiSearchTeam.id, apiSearchTeam.name, apiSearchTeam.section_name);
2531
-
2532
2634
  const CLUB_TEAMS_PATH = ':clubId/teams/';
2533
2635
  const MEMBER_TEAM_MEMBER_PATH = ':memberId/teams/:teamId/team-members/:id/';
2534
2636
  const MEMBER_TEAM_MEMBERS_PATH = ':memberId/teams/:teamId/team-members/';
@@ -2941,5 +3043,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
2941
3043
  * Generated bundle index. Do not edit.
2942
3044
  */
2943
3045
 
2944
- 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 };
3046
+ 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 };
2945
3047
  //# sourceMappingURL=myclub_se-data-access.mjs.map