@myclub_se/data-access 2.5.15 → 2.5.16

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.
@@ -127,42 +127,75 @@ class ActivityInvite {
127
127
  }
128
128
  }
129
129
 
130
- class ActivityLocation {
131
- constructor(id, club_id, section_id, active, mun_location_city_area, mun_location_name, name) {
130
+ class ActivityLocationTag {
131
+ constructor(id, club_id, section_id, name) {
132
132
  this.id = id;
133
133
  this.club_id = club_id;
134
134
  this.section_id = section_id;
135
- this.active = active;
136
- this.mun_location_city_area = mun_location_city_area;
137
- this.mun_location_name = mun_location_name;
138
135
  this.name = name;
139
136
  }
137
+ static asFormGroup(tag) {
138
+ return new FormGroup({
139
+ id: new FormControl(tag?.id || ''),
140
+ name: new FormControl(tag?.name || '', Validators.required),
141
+ });
142
+ }
140
143
  }
141
144
 
142
- class ActivityLocationGroup {
143
- constructor(id, club_id, section_id, active, name, locations) {
145
+ class ActivityLocationPart {
146
+ constructor(id, name) {
144
147
  this.id = id;
145
- this.club_id = club_id;
146
- this.section_id = section_id;
147
- this.active = active;
148
148
  this.name = name;
149
- this.locations = locations;
149
+ }
150
+ static asFormGroup(tag) {
151
+ return new FormGroup({
152
+ id: new FormControl(tag?.id || ''),
153
+ name: new FormControl(tag?.name || '', Validators.required),
154
+ });
150
155
  }
151
156
  }
152
157
 
153
- class ActivityLocationTag {
154
- constructor(id, club_id, section_id, name) {
158
+ class ActivityLocation {
159
+ constructor(id, club_id, section_id, group_id, active, mun_location_city_area, mun_location_name, name, tags, parts) {
155
160
  this.id = id;
156
161
  this.club_id = club_id;
157
162
  this.section_id = section_id;
163
+ this.group_id = group_id;
164
+ this.active = active;
165
+ this.mun_location_city_area = mun_location_city_area;
166
+ this.mun_location_name = mun_location_name;
158
167
  this.name = name;
168
+ this.tags = tags;
169
+ this.parts = parts;
170
+ }
171
+ static asFormGroup(location) {
172
+ const tags = [];
173
+ const parts = [];
174
+ if (location?.tags) {
175
+ location.tags.forEach((tag) => tags.push(ActivityLocationTag.asFormGroup(tag)));
176
+ }
177
+ if (location?.parts) {
178
+ location.parts.forEach((part) => parts.push(ActivityLocationPart.asFormGroup(part)));
179
+ }
180
+ return new FormGroup({
181
+ id: new FormControl(location?.id || ''),
182
+ club_id: new FormControl(location?.club_id || '', Validators.required),
183
+ active: new FormControl(typeof location?.active !== 'undefined' ? location?.active : false),
184
+ group_id: new FormControl(location?.group_id || ''),
185
+ tags: new FormArray(tags),
186
+ parts: new FormArray(parts),
187
+ });
159
188
  }
160
189
  }
161
190
 
162
- class ActivityLocationPart {
163
- constructor(id, name) {
191
+ class ActivityLocationGroup {
192
+ constructor(id, club_id, section_id, active, name, locations) {
164
193
  this.id = id;
194
+ this.club_id = club_id;
195
+ this.section_id = section_id;
196
+ this.active = active;
165
197
  this.name = name;
198
+ this.locations = locations;
166
199
  }
167
200
  }
168
201
 
@@ -1489,14 +1522,18 @@ const unpaidInvoiceFactory = (apiUnpaidInvoice) => new UnpaidMemberInvoice(apiUn
1489
1522
 
1490
1523
  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);
1491
1524
 
1492
- const activityLocationFactory = (apiActivityLocation) => new ActivityLocation(apiActivityLocation.id, apiActivityLocation.club_id, apiActivityLocation.section_id, apiActivityLocation.active, apiActivityLocation.mun_location_city_area, apiActivityLocation.mun_location_name, apiActivityLocation.name);
1525
+ const activityLocationTagFactory = (apiActivityLocationTag) => {
1526
+ return new ActivityLocationTag(apiActivityLocationTag.id, apiActivityLocationTag.club_id, apiActivityLocationTag.section_id, apiActivityLocationTag.name);
1527
+ };
1493
1528
 
1494
- const activityLocationGroupFactory = (apiActivityLocationGroup) => {
1495
- return new ActivityLocationGroup(apiActivityLocationGroup.id, apiActivityLocationGroup.club_id, apiActivityLocationGroup.section_id, apiActivityLocationGroup.active, apiActivityLocationGroup.name, apiActivityLocationGroup.locations && apiActivityLocationGroup.locations.length ? apiActivityLocationGroup.locations.map((apiActivityLocation) => activityLocationFactory(apiActivityLocation)) : []);
1529
+ const activityLocationPartFactory = (apiActivityLocationPart) => {
1530
+ return new ActivityLocationPart(apiActivityLocationPart.id, apiActivityLocationPart.name);
1496
1531
  };
1497
1532
 
1498
- const activityLocationTagFactory = (apiActivityLocationTag) => {
1499
- return new ActivityLocationTag(apiActivityLocationTag.id, apiActivityLocationTag.club_id, apiActivityLocationTag.section_id, apiActivityLocationTag.name);
1533
+ const activityLocationFactory = (apiActivityLocation) => new ActivityLocation(apiActivityLocation.id, apiActivityLocation.club_id, apiActivityLocation.section_id, apiActivityLocation.group_id, apiActivityLocation.active, apiActivityLocation.mun_location_city_area, apiActivityLocation.mun_location_name, apiActivityLocation.name, apiActivityLocation.tags && apiActivityLocation.tags.length > 0 ? apiActivityLocation.tags.map((apiActivityLocationTag) => activityLocationTagFactory(apiActivityLocationTag)) : [], apiActivityLocation.parts && apiActivityLocation.parts.length > 0 ? apiActivityLocation.parts.map((apiActivityLocationPart) => activityLocationPartFactory(apiActivityLocationPart)) : []);
1534
+
1535
+ const activityLocationGroupFactory = (apiActivityLocationGroup) => {
1536
+ return new ActivityLocationGroup(apiActivityLocationGroup.id, apiActivityLocationGroup.club_id, apiActivityLocationGroup.section_id, apiActivityLocationGroup.active, apiActivityLocationGroup.name, apiActivityLocationGroup.locations && apiActivityLocationGroup.locations.length ? apiActivityLocationGroup.locations.map((apiActivityLocation) => activityLocationFactory(apiActivityLocation)) : []);
1500
1537
  };
1501
1538
 
1502
1539
  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);
@@ -1702,10 +1739,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
1702
1739
  }]
1703
1740
  }], ctorParameters: function () { return [{ type: ApiService }]; } });
1704
1741
 
1705
- const activityLocationPartFactory = (apiActivityLocationPart) => {
1706
- return new ActivityLocationPart(apiActivityLocationPart.id, apiActivityLocationPart.name);
1707
- };
1708
-
1709
1742
  const MEMBER_ACTIVITY_INVITE_PATH = ':memberId/activities/:activityInviteId/';
1710
1743
  const MEMBER_ACTIVITY_INVITES_PATH = ':memberId/activities/';
1711
1744
  const MEMBER_CALENDAR_PATH = ':memberId/activities/calendar/';
@@ -1722,6 +1755,7 @@ const CLUB_ACTIVITY_SETTINGS_PATH = ':clubId/activities/settings/';
1722
1755
  const TEAM_ACTIVITY_TYPES_PATH = ':teamId/activities/types/';
1723
1756
  const TEAM_CALENDAR_PATH = ':teamId/activities/calendar/';
1724
1757
  const CLUB_ACTIVITY_LOCATIONS_PATH = ':clubId/activities/locations/';
1758
+ const CLUB_ACTIVITY_LOCATION_PATH = ':clubId/activities/locations/:locationId/';
1725
1759
  const CLUB_ACTIVITY_LOCATION_GROUPS_PATH = ':clubId/activities/locations/groups/';
1726
1760
  const CLUB_ACTIVITY_LOCATION_TAGS_PATH = ':clubId/activities/locations/tags/';
1727
1761
  const CLUB_ACTIVITY_LOCATION_PARTS_PATH = ':clubId/activities/locations/:locationId/parts/';
@@ -1801,8 +1835,14 @@ class ActivityService {
1801
1835
  return this.apiService
1802
1836
  .getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, { teamId, id });
1803
1837
  }
1804
- getTeamActivityLocations(teamId) {
1805
- if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 })) {
1838
+ getActivityLocations(role, clubOrTeamId, force = false) {
1839
+ if (role == Role.ClubAdmin) {
1840
+ return this.getClubActivityLocations(clubOrTeamId, force);
1841
+ }
1842
+ return this.getTeamActivityLocations(clubOrTeamId, force);
1843
+ }
1844
+ getTeamActivityLocations(teamId, force = false) {
1845
+ if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
1806
1846
  return of(this.activityLocationCollection);
1807
1847
  }
1808
1848
  return this.apiService
@@ -1811,8 +1851,8 @@ class ActivityService {
1811
1851
  this.activityLocationCollection = activityLocationCollection;
1812
1852
  }));
1813
1853
  }
1814
- getClubActivityLocations(clubId) {
1815
- if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 })) {
1854
+ getClubActivityLocations(clubId, force = false) {
1855
+ if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
1816
1856
  return of(this.activityLocationCollection);
1817
1857
  }
1818
1858
  return this.apiService
@@ -1821,6 +1861,13 @@ class ActivityService {
1821
1861
  this.activityLocationCollection = activityLocationCollection;
1822
1862
  }));
1823
1863
  }
1864
+ updateClubActivityLocation(clubId, location) {
1865
+ return this.apiService
1866
+ .updateResource(activityLocationFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_PATH, {
1867
+ clubId,
1868
+ locationId: location.id
1869
+ }, location);
1870
+ }
1824
1871
  getActivityLocationGroups(role, clubOrTeamId) {
1825
1872
  if (role == Role.ClubAdmin) {
1826
1873
  return this.getClubActivityLocationGroups(clubOrTeamId);
@@ -1849,6 +1896,26 @@ class ActivityService {
1849
1896
  return this.apiService
1850
1897
  .getCollection(activityLocationTagFactory, Role.TeamAdmin, TEAM_ACTIVITY_LOCATION_TAGS_PATH, { teamId }, { params: { limit: 'null' } });
1851
1898
  }
1899
+ createActivityLocationTag(role, clubOrTeamId, tag) {
1900
+ if (role == Role.ClubAdmin) {
1901
+ return this.createClubActivityLocationTag(clubOrTeamId, tag);
1902
+ }
1903
+ return this.createTeamActivityLocationTag(clubOrTeamId, tag);
1904
+ }
1905
+ createClubActivityLocationTag(clubId, tag) {
1906
+ delete tag.id;
1907
+ return this.apiService
1908
+ .postResource(activityLocationTagFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_TAGS_PATH, {
1909
+ clubId,
1910
+ }, tag);
1911
+ }
1912
+ createTeamActivityLocationTag(teamId, tag) {
1913
+ delete tag.id;
1914
+ return this.apiService
1915
+ .postResource(activityLocationTagFactory, Role.TeamAdmin, TEAM_ACTIVITY_LOCATION_TAGS_PATH, {
1916
+ teamId,
1917
+ }, tag);
1918
+ }
1852
1919
  getActivityLocationParts(role, clubOrTeamId, locationId) {
1853
1920
  if (role == Role.ClubAdmin) {
1854
1921
  return this.getClubActivityLocationParts(clubOrTeamId, locationId);