@myclub_se/data-access 2.7.4 → 2.7.6
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.
- package/esm2020/lib/api-models/api-activity-location-tag.mjs +1 -1
- package/esm2020/lib/api-models/api-activity-type.mjs +1 -1
- package/esm2020/lib/api-models/api-booking-calendar.mjs +1 -1
- package/esm2020/lib/models/activity-location-tag.mjs +3 -2
- package/esm2020/lib/models/activity-type.mjs +17 -2
- package/esm2020/lib/models/booking-calendar.mjs +12 -5
- package/esm2020/lib/services/activity.service.mjs +65 -1
- package/esm2020/lib/services/booking-calendar.service.mjs +5 -2
- package/esm2020/lib/services/factories/activity-location-tag-factory.mjs +2 -2
- package/esm2020/lib/services/factories/activity-type-factory.mjs +2 -2
- package/esm2020/lib/services/factories/booking-calendar-factory.mjs +3 -2
- package/fesm2015/myclub_se-data-access.mjs +97 -9
- package/fesm2015/myclub_se-data-access.mjs.map +1 -1
- package/fesm2020/myclub_se-data-access.mjs +97 -9
- package/fesm2020/myclub_se-data-access.mjs.map +1 -1
- package/lib/api-models/api-activity-location-tag.d.ts +1 -0
- package/lib/api-models/api-activity-type.d.ts +2 -0
- package/lib/api-models/api-booking-calendar.d.ts +2 -1
- package/lib/models/activity-location-tag.d.ts +2 -1
- package/lib/models/activity-type.d.ts +14 -1
- package/lib/models/booking-calendar.d.ts +5 -4
- package/lib/services/activity.service.d.ts +9 -0
- package/lib/services/booking-calendar.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -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,30 +304,36 @@ class Authentication {
|
|
|
289
304
|
}
|
|
290
305
|
|
|
291
306
|
class BookingCalendar {
|
|
292
|
-
constructor(id, club_id, section_id, team_id, club_name,
|
|
307
|
+
constructor(id, club_id, section_id, team_id, club_name, name, section_name, team_name, status, location_groups) {
|
|
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;
|
|
302
316
|
this.status = status;
|
|
317
|
+
this.location_groups = location_groups;
|
|
303
318
|
}
|
|
304
319
|
static asFormGroup(calendar) {
|
|
320
|
+
const locationGroups = [];
|
|
321
|
+
if (calendar?.location_groups) {
|
|
322
|
+
calendar.location_groups.forEach((locationGroup) => {
|
|
323
|
+
locationGroups.push(ActivityLocationGroup.asFormGroup(locationGroup));
|
|
324
|
+
});
|
|
325
|
+
}
|
|
305
326
|
return new FormGroup({
|
|
306
327
|
id: new FormControl(calendar?.id || ''),
|
|
307
328
|
club_id: new FormControl(calendar?.club_id || ''),
|
|
308
329
|
section_id: new FormControl(calendar?.section_id || ''),
|
|
309
330
|
team_id: new FormControl(calendar?.team_id || ''),
|
|
310
331
|
club_name: new FormControl(calendar?.club_name || ''),
|
|
311
|
-
color: new FormControl(calendar?.color || '', Validators.required),
|
|
312
332
|
name: new FormControl(calendar?.name || '', Validators.required),
|
|
313
333
|
section_name: new FormControl(calendar?.section_name || ''),
|
|
314
334
|
team_name: new FormControl(calendar?.team_name || ''),
|
|
315
335
|
status: new FormControl(calendar?.status || 'preliminary'),
|
|
336
|
+
location_groups: new FormArray(locationGroups),
|
|
316
337
|
});
|
|
317
338
|
}
|
|
318
339
|
}
|
|
@@ -1560,7 +1581,7 @@ const unpaidInvoiceFactory = (apiUnpaidInvoice) => new UnpaidMemberInvoice(apiUn
|
|
|
1560
1581
|
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
1582
|
|
|
1562
1583
|
const activityLocationTagFactory = (apiActivityLocationTag) => {
|
|
1563
|
-
return new ActivityLocationTag(apiActivityLocationTag.id, apiActivityLocationTag.club_id, apiActivityLocationTag.section_id, apiActivityLocationTag.name);
|
|
1584
|
+
return new ActivityLocationTag(apiActivityLocationTag.id, apiActivityLocationTag.club_id, apiActivityLocationTag.section_id, apiActivityLocationTag.name, apiActivityLocationTag.location_names);
|
|
1564
1585
|
};
|
|
1565
1586
|
|
|
1566
1587
|
const activityLocationPartFactory = (apiActivityLocationPart) => {
|
|
@@ -1575,7 +1596,7 @@ const activityLocationGroupFactory = (apiActivityLocationGroup) => {
|
|
|
1575
1596
|
|
|
1576
1597
|
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
1598
|
|
|
1578
|
-
const activityTypeFactory = (apiActivityType) => new ActivityType(apiActivityType.id, apiActivityType.club_id, apiActivityType.section_id, apiActivityType.active, apiActivityType.base_type, apiActivityType.name);
|
|
1599
|
+
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
1600
|
|
|
1580
1601
|
const authSectionFactory = (apiAuthSection) => new AuthSection(apiAuthSection.id, apiAuthSection.name);
|
|
1581
1602
|
|
|
@@ -1587,7 +1608,7 @@ const authTeamFactory = (apiAuthTeam) => new AuthTeam(apiAuthTeam.id, apiAuthTea
|
|
|
1587
1608
|
|
|
1588
1609
|
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
1610
|
|
|
1590
|
-
const bookingCalendarFactory = (apiBookingCalendar) => new BookingCalendar(apiBookingCalendar.id, apiBookingCalendar.club_id, apiBookingCalendar.section_id, apiBookingCalendar.team_id, apiBookingCalendar.club_name, apiBookingCalendar.
|
|
1611
|
+
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)) : []);
|
|
1591
1612
|
|
|
1592
1613
|
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
1614
|
|
|
@@ -1801,8 +1822,10 @@ const CLUB_ACTIVITY_LOCATION_PATH = ':clubId/activities/locations/:locationId/';
|
|
|
1801
1822
|
const CLUB_ACTIVITY_LOCATION_GROUPS_PATH = ':clubId/activities/locations/groups/';
|
|
1802
1823
|
const CLUB_ACTIVITY_LOCATION_GROUP_PATH = ':clubId/activities/locations/groups/:groupId/';
|
|
1803
1824
|
const CLUB_ACTIVITY_LOCATION_TAGS_PATH = ':clubId/activities/locations/tags/';
|
|
1825
|
+
const CLUB_ACTIVITY_LOCATION_TAG_PATH = ':clubId/activities/locations/tags/:tagId/';
|
|
1804
1826
|
const CLUB_ACTIVITY_LOCATION_PARTS_PATH = ':clubId/activities/locations/:locationId/parts/';
|
|
1805
1827
|
const CLUB_ACTIVITY_TYPES_PATH = ':clubId/activities/types/';
|
|
1828
|
+
const CLUB_ACTIVITY_TYPE_PATH = ':clubId/activities/types/:typeId/';
|
|
1806
1829
|
const TEAM_ACTIVITY_LOCATIONS_PATH = ':teamId/activities/locations/';
|
|
1807
1830
|
const TEAM_ACTIVITY_LOCATION_GROUPS_PATH = ':teamId/activities/locations/groups/';
|
|
1808
1831
|
const TEAM_ACTIVITY_LOCATION_TAGS_PATH = ':teamId/activities/locations/tags/';
|
|
@@ -1812,8 +1835,10 @@ const SECTION_ACTIVITY_LOCATION_PATH = ':sectionId/activities/locations/:locatio
|
|
|
1812
1835
|
const SECTION_ACTIVITY_LOCATION_GROUPS_PATH = ':sectionId/activities/locations/groups/';
|
|
1813
1836
|
const SECTION_ACTIVITY_LOCATION_GROUP_PATH = ':sectionId/activities/locations/groups/:groupId/';
|
|
1814
1837
|
const SECTION_ACTIVITY_LOCATION_TAGS_PATH = ':sectionId/activities/locations/tags/';
|
|
1838
|
+
const SECTION_ACTIVITY_LOCATION_TAG_PATH = ':sectionId/activities/locations/tags/:tagId/';
|
|
1815
1839
|
const SECTION_ACTIVITY_LOCATION_PARTS_PATH = ':sectionId/activities/locations/:locationId/parts/';
|
|
1816
1840
|
const SECTION_ACTIVITY_TYPES_PATH = ':sectionId/activities/types/';
|
|
1841
|
+
const SECTION_ACTIVITY_TYPE_PATH = ':sectionId/activities/types/:typeId/';
|
|
1817
1842
|
class ActivityService {
|
|
1818
1843
|
constructor(apiService) {
|
|
1819
1844
|
this.apiService = apiService;
|
|
@@ -2057,6 +2082,46 @@ class ActivityService {
|
|
|
2057
2082
|
teamId,
|
|
2058
2083
|
}, tag);
|
|
2059
2084
|
}
|
|
2085
|
+
updateActivityLocationTag(role, clubOrSectionOrTeamId, tag) {
|
|
2086
|
+
if (role == Role.ClubAdmin) {
|
|
2087
|
+
return this.updateClubActivityLocationTag(clubOrSectionOrTeamId, tag);
|
|
2088
|
+
}
|
|
2089
|
+
return this.updateSectionActivityLocationTag(clubOrSectionOrTeamId, tag);
|
|
2090
|
+
}
|
|
2091
|
+
updateClubActivityLocationTag(clubId, tag) {
|
|
2092
|
+
return this.apiService
|
|
2093
|
+
.updateResource(activityLocationTagFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_TAG_PATH, {
|
|
2094
|
+
clubId,
|
|
2095
|
+
tagId: tag.id,
|
|
2096
|
+
}, tag);
|
|
2097
|
+
}
|
|
2098
|
+
updateSectionActivityLocationTag(sectionId, tag) {
|
|
2099
|
+
return this.apiService
|
|
2100
|
+
.updateResource(activityLocationTagFactory, Role.SectionAdmin, SECTION_ACTIVITY_LOCATION_TAG_PATH, {
|
|
2101
|
+
sectionId,
|
|
2102
|
+
tagId: tag.id,
|
|
2103
|
+
}, tag);
|
|
2104
|
+
}
|
|
2105
|
+
deleteActivityLocationTag(role, clubOrSectionOrTeamId, tag) {
|
|
2106
|
+
if (role == Role.ClubAdmin) {
|
|
2107
|
+
return this.deleteClubActivityLocationTag(clubOrSectionOrTeamId, tag);
|
|
2108
|
+
}
|
|
2109
|
+
return this.deleteSectionActivityLocationTag(clubOrSectionOrTeamId, tag);
|
|
2110
|
+
}
|
|
2111
|
+
deleteClubActivityLocationTag(clubId, tag) {
|
|
2112
|
+
return this.apiService
|
|
2113
|
+
.deleteResource(Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_TAG_PATH, {
|
|
2114
|
+
clubId,
|
|
2115
|
+
tagId: tag.id,
|
|
2116
|
+
});
|
|
2117
|
+
}
|
|
2118
|
+
deleteSectionActivityLocationTag(sectionId, tag) {
|
|
2119
|
+
return this.apiService
|
|
2120
|
+
.deleteResource(Role.SectionAdmin, SECTION_ACTIVITY_LOCATION_TAG_PATH, {
|
|
2121
|
+
sectionId,
|
|
2122
|
+
tagId: tag.id,
|
|
2123
|
+
});
|
|
2124
|
+
}
|
|
2060
2125
|
getActivityLocationParts(role, clubOrSectionOrTeamId, locationId) {
|
|
2061
2126
|
if (role == Role.ClubAdmin) {
|
|
2062
2127
|
return this.getClubActivityLocationParts(clubOrSectionOrTeamId, locationId);
|
|
@@ -2137,6 +2202,26 @@ class ActivityService {
|
|
|
2137
2202
|
return this.apiService
|
|
2138
2203
|
.getCollection(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPES_PATH, { sectionId }, { params: { limit: 'null' } });
|
|
2139
2204
|
}
|
|
2205
|
+
updateActivityType(role, clubOrSectionOrTeamId, activityType) {
|
|
2206
|
+
if (role === Role.ClubAdmin) {
|
|
2207
|
+
return this.updateClubActivityType(clubOrSectionOrTeamId, activityType);
|
|
2208
|
+
}
|
|
2209
|
+
return this.updateSectionActivityType(clubOrSectionOrTeamId, activityType);
|
|
2210
|
+
}
|
|
2211
|
+
updateClubActivityType(clubId, activityType) {
|
|
2212
|
+
return this.apiService
|
|
2213
|
+
.updateResource(activityTypeFactory, Role.ClubAdmin, CLUB_ACTIVITY_TYPE_PATH, {
|
|
2214
|
+
clubId,
|
|
2215
|
+
typeId: activityType.id,
|
|
2216
|
+
}, activityType);
|
|
2217
|
+
}
|
|
2218
|
+
updateSectionActivityType(sectionId, activityType) {
|
|
2219
|
+
return this.apiService
|
|
2220
|
+
.updateResource(activityTypeFactory, Role.SectionAdmin, SECTION_ACTIVITY_TYPE_PATH, {
|
|
2221
|
+
sectionId,
|
|
2222
|
+
typeId: activityType.id,
|
|
2223
|
+
}, activityType);
|
|
2224
|
+
}
|
|
2140
2225
|
getTeamCalendarEvents(teamId, startDate = null, endDate = null) {
|
|
2141
2226
|
const params = { limit: 'null' };
|
|
2142
2227
|
if (startDate) {
|
|
@@ -2255,7 +2340,7 @@ const TEAM_BOOKING_CALENDAR_SLOT_SESSION_PATH = ':teamId/activities/sessions/:id
|
|
|
2255
2340
|
const TEAM_BOOKING_CALENDAR_APPLICATION_TIMES_PATH = ':teamId/activities/application-times/';
|
|
2256
2341
|
const TEAM_BOOKING_CALENDAR_APPLICATION_TIME_PATH = ':teamId/activities/application-times/:id/';
|
|
2257
2342
|
class BookingSlotFilter {
|
|
2258
|
-
constructor(startDate = null, endDate = null, calendarIds =
|
|
2343
|
+
constructor(startDate = null, endDate = null, calendarIds = [], locationIds = [], tagIds = [], teamIds = [], locationGroupIds = [], hasOpenSessions = null) {
|
|
2259
2344
|
this.startDate = startDate;
|
|
2260
2345
|
this.endDate = endDate;
|
|
2261
2346
|
this.calendarIds = calendarIds;
|
|
@@ -2265,6 +2350,9 @@ class BookingSlotFilter {
|
|
|
2265
2350
|
this.locationGroupIds = locationGroupIds;
|
|
2266
2351
|
this.hasOpenSessions = hasOpenSessions;
|
|
2267
2352
|
}
|
|
2353
|
+
static fromFilter(filter) {
|
|
2354
|
+
return new this(filter.startDate, filter.endDate, filter.calendarIds, filter.locationIds, filter.tagIds, filter.teamIds, filter.locationGroupIds, filter.hasOpenSessions);
|
|
2355
|
+
}
|
|
2268
2356
|
toParams() {
|
|
2269
2357
|
const params = { limit: 'null' };
|
|
2270
2358
|
if (this.startDate) {
|