@universis/accommodation 1.1.0 → 1.1.2

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 (60) hide show
  1. package/dist/config/models/AccommodationChildFinancialAttribute.json +5 -0
  2. package/dist/config/models/AccommodationGuardianFinancialAttribute.json +5 -0
  3. package/dist/config/models/AccommodationInscriptionModeTag.json +2 -2
  4. package/dist/config/models/{Accommodation.json → AccommodationPlace.json} +25 -13
  5. package/dist/config/models/{AccommodationLocale.json → AccommodationPlaceLocale.json} +8 -3
  6. package/dist/config/models/AccommodationRequestAction.json +10 -0
  7. package/dist/config/models/AccommodationRequestActionMessage.json +5 -0
  8. package/dist/config/models/AccommodationRequestActionReview.json +5 -0
  9. package/dist/config/models/AccommodationRequestAttachmentConfiguration.json +5 -0
  10. package/dist/config/models/AccommodationRequestCategory.json +19 -14
  11. package/dist/config/models/AccommodationRequestEffectiveStatusType.json +3 -3
  12. package/dist/config/models/AccommodationRequestEvent.json +19 -14
  13. package/dist/config/models/AccommodationRequestFinancialAttribute.json +5 -0
  14. package/dist/config/models/AccommodationRoom.json +7 -2
  15. package/dist/config/models/AccommodationRoomLocale.json +5 -0
  16. package/dist/config/models/AccommodationSiblingFinancialAttribute.json +1 -7
  17. package/dist/config/models/CancelAccommodationCardAction.json +10 -4
  18. package/dist/config/models/GuardianType.json +5 -0
  19. package/dist/config/models/Review.json +5 -0
  20. package/dist/config/models/RoomType.json +5 -0
  21. package/dist/config/models/RoomTypeLocale.json +19 -14
  22. package/dist/config/models/StudentAccommodationCard.json +5 -0
  23. package/dist/config/scope.access.js +265 -86
  24. package/dist/config/scope.access.js.map +1 -1
  25. package/dist/listeners/OnActionCompleteListener.js +2 -2
  26. package/dist/listeners/OnActionCompleteListener.js.map +1 -1
  27. package/dist/listeners/SendEmailAfterCardStatusChangeListener.js +8 -8
  28. package/dist/listeners/SendEmailAfterCardStatusChangeListener.js.map +1 -1
  29. package/dist/models/{Accommodation.js → AccommodationPlace.js} +1 -1
  30. package/dist/models/AccommodationPlace.js.map +1 -0
  31. package/package.json +1 -1
  32. package/src/config/models/AccommodationChildFinancialAttribute.json +5 -0
  33. package/src/config/models/AccommodationGuardianFinancialAttribute.json +5 -0
  34. package/src/config/models/AccommodationInscriptionModeTag.json +2 -2
  35. package/src/config/models/{Accommodation.json → AccommodationPlace.json} +25 -13
  36. package/src/config/models/{AccommodationLocale.json → AccommodationPlaceLocale.json} +8 -3
  37. package/src/config/models/AccommodationRequestAction.json +10 -0
  38. package/src/config/models/AccommodationRequestActionMessage.json +5 -0
  39. package/src/config/models/AccommodationRequestActionReview.json +5 -0
  40. package/src/config/models/AccommodationRequestAttachmentConfiguration.json +5 -0
  41. package/src/config/models/AccommodationRequestCategory.json +19 -14
  42. package/src/config/models/AccommodationRequestEffectiveStatusType.json +3 -3
  43. package/src/config/models/AccommodationRequestEvent.json +19 -14
  44. package/src/config/models/AccommodationRequestFinancialAttribute.json +5 -0
  45. package/src/config/models/AccommodationRoom.json +7 -2
  46. package/src/config/models/AccommodationRoomLocale.json +5 -0
  47. package/src/config/models/AccommodationSiblingFinancialAttribute.json +1 -7
  48. package/src/config/models/CancelAccommodationCardAction.json +10 -4
  49. package/src/config/models/GuardianType.json +5 -0
  50. package/src/config/models/Review.json +5 -0
  51. package/src/config/models/RoomType.json +5 -0
  52. package/src/config/models/RoomTypeLocale.json +19 -14
  53. package/src/config/models/StudentAccommodationCard.json +5 -0
  54. package/src/config/scope.access.js +265 -86
  55. package/src/listeners/OnActionCompleteListener.js +2 -2
  56. package/src/listeners/SendEmailAfterCardStatusChangeListener.js +8 -8
  57. package/dist/models/Accommodation.js.map +0 -1
  58. /package/dist/templates/{mail-after-dining-request-status-change → mail-after-accommodation-request-status-change}/html.ejs +0 -0
  59. /package/src/models/{Accommodation.js → AccommodationPlace.js} +0 -0
  60. /package/src/templates/{mail-after-dining-request-status-change → mail-after-accommodation-request-status-change}/html.ejs +0 -0
@@ -1,148 +1,327 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = [
2
2
  {
3
- "scope": [
4
- "registrar"],
3
+ 'scope': [
4
+ 'accommodation'],
5
5
 
6
- "resource": "/api/TestActions/?$",
7
- "access": [
8
- "read",
9
- "write"]
6
+ 'resource': '/api/users/me',
7
+ 'access': [
8
+ 'read']
10
9
 
11
10
  },
12
11
  {
13
- "scope": [
14
- "registrar"],
12
+ 'scope': [
13
+ 'accommodation'],
15
14
 
16
- "resource": "/api/Accommodations/?$",
17
- "access": [
18
- "read",
19
- "write"]
15
+ 'resource': '/api/content/private',
16
+ 'access': [
17
+ 'read']
20
18
 
21
19
  },
22
20
  {
23
- "scope": [
24
- "registrar"],
21
+ 'scope': [
22
+ 'accommodation'],
25
23
 
26
- "resource": "/api/AccommodationPlaces/?$",
27
- "access": [
28
- "read",
29
- "write"]
24
+ 'resource': '/api/ActionStatusTypes',
25
+ 'access': [
26
+ 'read']
30
27
 
31
28
  },
32
29
  {
33
- "scope": [
34
- "students"],
30
+ 'scope': [
31
+ 'accommodation'],
35
32
 
36
- "resource": "/api/TestActions/?$",
37
- "access": [
38
- "read",
39
- "write"]
33
+ 'resource': '/api/StudentStatuses',
34
+ 'access': [
35
+ 'read']
40
36
 
41
37
  },
42
38
  {
43
- "scope": [
44
- "students"],
39
+ 'scope': [
40
+ 'accommodation'],
45
41
 
46
- "resource": "/api/Accommodations/?$",
47
- "access": [
48
- "read"]
42
+ 'resource': '/api/StudentCategories',
43
+ 'access': [
44
+ 'read']
49
45
 
50
46
  },
51
47
  {
52
- "scope": [
53
- "students"],
48
+ 'scope': [
49
+ 'accommodation'],
54
50
 
55
- "resource": "/api/AccommodationRequestActions",
56
- "access": [
57
- "read",
58
- "write"]
51
+ 'resource': '/api/FamilyStatuses',
52
+ 'access': [
53
+ 'read']
59
54
 
60
55
  },
61
56
  {
62
- "scope": [
63
- "students"],
57
+ 'scope': [
58
+ 'accommodation'],
64
59
 
65
- "resource": "/api/AccommodationRequestEvents",
66
- "access": [
67
- "read"]
60
+ 'resource': '/api/LocalDepartments',
61
+ 'access': [
62
+ 'read']
68
63
 
69
64
  },
70
65
  {
71
- "scope": [
72
- "students"],
66
+ 'scope': [
67
+ 'accommodation'],
73
68
 
74
- "resource": "/api/AccommodationRequestCategories",
75
- "access": [
76
- "read"]
69
+ 'resource': '/api/EventStatusTypes',
70
+ 'access': [
71
+ 'read']
77
72
 
78
73
  },
79
74
  {
80
- "scope": [
81
- "students"],
75
+ 'scope': [
76
+ 'accommodation'],
82
77
 
83
- "resource": "/api/StudentAccommodationCards",
84
- "access": [
85
- "read"]
78
+ 'resource': '/api/JsonAttachments',
79
+ 'access': [
80
+ 'read']
86
81
 
87
82
  },
88
83
  {
89
- "scope": [
90
- "registrar"],
84
+ 'scope': [
85
+ 'registrar',
86
+ 'accommodation'],
91
87
 
92
- "resource": "/api/AccommodationRequestActions",
93
- "access": [
94
- "read",
95
- "write"]
88
+ 'resource': '/api/AccommodationInscriptionModeTags',
89
+ 'access': [
90
+ 'read',
91
+ 'write']
96
92
 
97
93
  },
98
94
  {
99
- "scope": [
100
- "registrar"],
95
+ 'scope': [
96
+ 'accommodation'],
101
97
 
102
- "resource": "/api/AccommodationRequestEvents",
103
- "access": [
104
- "read",
105
- "write"]
98
+ 'resource': '/api/AccommodationRequestActions',
99
+ 'access': [
100
+ 'read',
101
+ 'write']
106
102
 
107
103
  },
108
104
  {
109
- "scope": [
110
- "registrar"],
105
+ 'scope': [
106
+ 'accommodation'],
111
107
 
112
- "resource": "/api/AccommodationRequestEffectiveStatusTypes",
113
- "access": [
114
- "read",
115
- "write"]
108
+ 'resource': '/api/SpecialAccommodationRequestActions',
109
+ 'access': [
110
+ 'read',
111
+ 'write']
116
112
 
117
113
  },
118
114
  {
119
- "scope": [
120
- "registrar"],
115
+ 'scope': [
116
+ 'accommodation'],
121
117
 
122
- "resource": "/api/AccommodationCardEffectiveStatusTypes",
123
- "access": [
124
- "read",
125
- "write"]
118
+ 'resource': '/api/AccommodationRequestActionMessages',
119
+ 'access': [
120
+ 'read',
121
+ 'write']
126
122
 
127
123
  },
128
124
  {
129
- "scope": [
130
- "registrar"],
125
+ 'scope': [
126
+ 'accommodation'],
131
127
 
132
- "resource": "/api/AccommodationRequestCategories",
133
- "access": [
134
- "read",
135
- "write"]
128
+ 'resource': '/api/AccommodationRequestActionReviews',
129
+ 'access': [
130
+ 'read',
131
+ 'write']
136
132
 
137
133
  },
138
134
  {
139
- "scope": [
140
- "registrar"],
135
+ 'scope': [
136
+ 'accommodation'],
141
137
 
142
- "resource": "/api/StudentAccommodationCards/?$",
143
- "access": [
144
- "read",
145
- "write"]
138
+ 'resource': '/api/AccommodationRequestAttachmentConfigurations',
139
+ 'access': [
140
+ 'read',
141
+ 'write']
142
+
143
+ },
144
+ {
145
+ 'scope': [
146
+ 'registrar',
147
+ 'accommodation'],
148
+
149
+ 'resource': '/api/AccommodationRequestEffectiveStatusTypes',
150
+ 'access': [
151
+ 'read',
152
+ 'write']
153
+
154
+ },
155
+ {
156
+ 'scope': [
157
+ 'accommodation'],
158
+
159
+ 'resource': '/api/AccommodationRequestEvents',
160
+ 'access': [
161
+ 'read',
162
+ 'write']
163
+
164
+ },
165
+ {
166
+ 'scope': [
167
+ 'accommodation'],
168
+
169
+ 'resource': '/api/AcademicYears',
170
+ 'access': [
171
+ 'read']
172
+
173
+ },
174
+ {
175
+ 'scope': [
176
+ 'accommodation'],
177
+
178
+ 'resource': '/api/AcademicPeriods',
179
+ 'access': [
180
+ 'read']
181
+
182
+ },
183
+ {
184
+ 'scope': [
185
+ 'accommodation'],
186
+
187
+ 'resource': '/api/StudentAccommodationCards',
188
+ 'access': [
189
+ 'read',
190
+ 'write']
191
+
192
+ },
193
+ {
194
+ 'scope': [
195
+ 'accommodation'],
196
+
197
+ 'resource': '/api/AccommodationPlaces',
198
+ 'access': [
199
+ 'read',
200
+ 'write']
201
+
202
+ },
203
+ {
204
+ 'scope': [
205
+ 'accommodation'],
206
+
207
+ 'resource': '/api/AccommodationRooms',
208
+ 'access': [
209
+ 'read',
210
+ 'write']
211
+
212
+ },
213
+ {
214
+ 'scope': [
215
+ 'accommodation'],
216
+
217
+ 'resource': '/api/AccommodationConfigurations',
218
+ 'access': [
219
+ 'read',
220
+ 'write']
221
+
222
+ },
223
+ {
224
+ 'scope': [
225
+ 'accommodation'],
226
+
227
+ 'resource': '/api/ReportTemplates',
228
+ 'access': [
229
+ 'read',
230
+ 'write']
231
+
232
+ },
233
+ {
234
+ 'scope': [
235
+ 'accommodation'],
236
+
237
+ 'resource': '/api/AccommodationRequestCategories',
238
+ 'access': [
239
+ 'read',
240
+ 'write']
241
+
242
+ },
243
+ {
244
+ 'scope': [
245
+ 'accommodation'],
246
+
247
+ 'resource': '/api/AccommodationRequestPreferences',
248
+ 'access': [
249
+ 'read']
250
+
251
+ },
252
+ {
253
+ 'scope': [
254
+ 'accommodation'],
255
+
256
+ 'resource': '/api/UpdateAccommodationRequestEventActions',
257
+ 'access': [
258
+ 'read',
259
+ 'write']
260
+
261
+ },
262
+ {
263
+ 'scope': [
264
+ 'accommodation'],
265
+
266
+ 'resource': '/api/Institutes',
267
+ 'access': [
268
+ 'read']
269
+
270
+ },
271
+ {
272
+ 'scope': [
273
+ 'students'],
274
+
275
+ 'resource': '/api/TestActions/?$',
276
+ 'access': [
277
+ 'read',
278
+ 'write']
279
+
280
+ },
281
+ {
282
+ 'scope': [
283
+ 'students'],
284
+
285
+ 'resource': '/api/Accommodations/?$',
286
+ 'access': [
287
+ 'read']
288
+
289
+ },
290
+ {
291
+ 'scope': [
292
+ 'students'],
293
+
294
+ 'resource': '/api/AccommodationRequestActions',
295
+ 'access': [
296
+ 'read',
297
+ 'write']
298
+
299
+ },
300
+ {
301
+ 'scope': [
302
+ 'students'],
303
+
304
+ 'resource': '/api/AccommodationRequestEvents',
305
+ 'access': [
306
+ 'read']
307
+
308
+ },
309
+ {
310
+ 'scope': [
311
+ 'students'],
312
+
313
+ 'resource': '/api/AccommodationRequestCategories',
314
+ 'access': [
315
+ 'read']
316
+
317
+ },
318
+ {
319
+ 'scope': [
320
+ 'students'],
321
+
322
+ 'resource': '/api/StudentAccommodationCards',
323
+ 'access': [
324
+ 'read']
146
325
 
147
326
  }];exports.default = _default;
148
327
  //# sourceMappingURL=scope.access.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scope.access.js","names":["exports","default","_default"],"sources":["../../src/config/scope.access.js"],"sourcesContent":["export default [\n {\n \"scope\": [\n \"registrar\"\n ],\n \"resource\": \"/api/TestActions/?$\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"registrar\"\n ],\n \"resource\": \"/api/Accommodations/?$\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"registrar\"\n ],\n \"resource\": \"/api/AccommodationPlaces/?$\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"students\"\n ],\n \"resource\": \"/api/TestActions/?$\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"students\"\n ],\n \"resource\": \"/api/Accommodations/?$\",\n \"access\": [\n \"read\"\n ]\n },\n {\n \"scope\": [\n \"students\"\n ],\n \"resource\": \"/api/AccommodationRequestActions\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"students\"\n ],\n \"resource\": \"/api/AccommodationRequestEvents\",\n \"access\": [\n \"read\"\n ]\n },\n {\n \"scope\": [\n \"students\"\n ],\n \"resource\": \"/api/AccommodationRequestCategories\",\n \"access\": [\n \"read\"\n ]\n },\n {\n \"scope\": [\n \"students\"\n ],\n \"resource\": \"/api/StudentAccommodationCards\",\n \"access\": [\n \"read\"\n ]\n },\n {\n \"scope\": [\n \"registrar\"\n ],\n \"resource\": \"/api/AccommodationRequestActions\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"registrar\"\n ],\n \"resource\": \"/api/AccommodationRequestEvents\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"registrar\"\n ],\n \"resource\": \"/api/AccommodationRequestEffectiveStatusTypes\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"registrar\"\n ],\n \"resource\": \"/api/AccommodationCardEffectiveStatusTypes\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"registrar\"\n ],\n \"resource\": \"/api/AccommodationRequestCategories\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n },\n {\n \"scope\": [\n \"registrar\"\n ],\n \"resource\": \"/api/StudentAccommodationCards/?$\",\n \"access\": [\n \"read\",\n \"write\"\n ]\n }\n]\n"],"mappings":"mHAAe;AACX;EACI,OAAO,EAAE;EACL,WAAW,CACd;;EACD,UAAU,EAAE,qBAAqB;EACjC,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,WAAW,CACd;;EACD,UAAU,EAAE,wBAAwB;EACpC,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,WAAW,CACd;;EACD,UAAU,EAAE,6BAA6B;EACzC,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,UAAU,CACb;;EACD,UAAU,EAAE,qBAAqB;EACjC,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,UAAU,CACb;;EACD,UAAU,EAAE,wBAAwB;EACpC,QAAQ,EAAE;EACN,MAAM;;AAEd,CAAC;AACD;EACI,OAAO,EAAE;EACL,UAAU,CACb;;EACD,UAAU,EAAE,kCAAkC;EAC9C,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,UAAU,CACb;;EACD,UAAU,EAAE,iCAAiC;EAC7C,QAAQ,EAAE;EACN,MAAM;;AAEd,CAAC;AACD;EACI,OAAO,EAAE;EACL,UAAU,CACb;;EACD,UAAU,EAAE,qCAAqC;EACjD,QAAQ,EAAE;EACN,MAAM;;AAEd,CAAC;AACD;EACI,OAAO,EAAE;EACL,UAAU,CACb;;EACD,UAAU,EAAE,gCAAgC;EAC5C,QAAQ,EAAE;EACN,MAAM;;AAEd,CAAC;AACD;EACI,OAAO,EAAE;EACL,WAAW,CACd;;EACD,UAAU,EAAE,kCAAkC;EAC9C,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,WAAW,CACd;;EACD,UAAU,EAAE,iCAAiC;EAC7C,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,WAAW,CACd;;EACD,UAAU,EAAE,+CAA+C;EAC3D,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,WAAW,CACd;;EACD,UAAU,EAAE,4CAA4C;EACxD,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,WAAW,CACd;;EACD,UAAU,EAAE,qCAAqC;EACjD,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC;AACD;EACI,OAAO,EAAE;EACL,WAAW,CACd;;EACD,UAAU,EAAE,mCAAmC;EAC/C,QAAQ,EAAE;EACN,MAAM;EACN,OAAO;;AAEf,CAAC,CACJ,CAAAA,OAAA,CAAAC,OAAA,GAAAC,QAAA"}
1
+ {"version":3,"file":"scope.access.js","names":["exports","default","_default"],"sources":["../../src/config/scope.access.js"],"sourcesContent":["export default [\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/users/me',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/content/private',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/ActionStatusTypes',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/StudentStatuses',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/StudentCategories',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/FamilyStatuses',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/LocalDepartments',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/EventStatusTypes',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/JsonAttachments',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'registrar',\n 'accommodation'\n ],\n 'resource': '/api/AccommodationInscriptionModeTags',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationRequestActions',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/SpecialAccommodationRequestActions',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationRequestActionMessages',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationRequestActionReviews',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationRequestAttachmentConfigurations',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'registrar',\n 'accommodation'\n ],\n 'resource': '/api/AccommodationRequestEffectiveStatusTypes',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationRequestEvents',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AcademicYears',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AcademicPeriods',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/StudentAccommodationCards',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationPlaces',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationRooms',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationConfigurations',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/ReportTemplates',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationRequestCategories',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/AccommodationRequestPreferences',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/UpdateAccommodationRequestEventActions',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'accommodation'\n ],\n 'resource': '/api/Institutes',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'students'\n ],\n 'resource': '/api/TestActions/?$',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'students'\n ],\n 'resource': '/api/Accommodations/?$',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'students'\n ],\n 'resource': '/api/AccommodationRequestActions',\n 'access': [\n 'read',\n 'write'\n ]\n },\n {\n 'scope': [\n 'students'\n ],\n 'resource': '/api/AccommodationRequestEvents',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'students'\n ],\n 'resource': '/api/AccommodationRequestCategories',\n 'access': [\n 'read'\n ]\n },\n {\n 'scope': [\n 'students'\n ],\n 'resource': '/api/StudentAccommodationCards',\n 'access': [\n 'read'\n ]\n }\n]\n"],"mappings":"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"}
@@ -47,9 +47,9 @@ async function afterSaveAsync(event) {
47
47
  academicPeriod = student && student.department && student.department.currentPeriod ? student.department.currentPeriod : null;
48
48
  }
49
49
  let cardActionStatus = {};
50
- if (event.target.accommodation && (Object.keys(event.target.accommodation).length === 0 || event.target.accommodation === '')) {
50
+ if (!event.target.accommodation) {
51
51
  // get accommodation valid through date
52
- cardActionStatus = { alternateName: 'PotentialActionStatus' };
52
+ cardActionStatus = { alternateName: 'ActiveActionStatus' };
53
53
 
54
54
  } else {
55
55
  cardActionStatus = { alternateName: 'CompletedActionStatus' };
@@ -1 +1 @@
1
- {"version":3,"file":"OnActionCompleteListener.js","names":["beforeSaveAsync","event","context","model","afterSaveAsync","request","where","equal","target","id","expand","name","options","$expand","getItem","actionStatus","alternateName","now","Date","academicYear","accommodationRequestEvent","academicPeriod","validThrough","student","Error","department","currentYear","currentPeriod","cardActionStatus","accommodation","Object","keys","length","StudentAccommodationCard","action","validFrom","cardStatus","accommodationRoom","room","silent","save","beforeSave","callback","then","catch","err","afterSave"],"sources":["../../src/listeners/OnActionCompleteListener.js"],"sourcesContent":["// eslint-disable-next-line no-unused-vars\nasync function beforeSaveAsync(event) {\n const context = event.model.context;\n}\n\nasync function afterSaveAsync(event) {\n // get context\n // eslint-disable-next-line no-unused-vars\n const context = event.model.context;\n // get current status\n const request = await event.model.where('id').equal(event.target.id)\n .expand({\n name: 'accommodationRequestEvent',\n options: {\n $expand: 'academicYear,academicPeriod',\n }\n }).getItem();\n const actionStatus = request && request.actionStatus && request.actionStatus.alternateName ? request.actionStatus.alternateName : null;\n if ((actionStatus || actionStatus.alternateName) === 'CompletedActionStatus') {\n // set student accommodation card\n const now = new Date();\n\n // const now = new Date(); \n let academicYear = request && request.accommodationRequestEvent && request.accommodationRequestEvent.academicYear ? request.accommodationRequestEvent.academicYear : null;\n let academicPeriod = request && request.accommodationRequestEvent && request.accommodationRequestEvent.academicPeriod ? request.accommodationRequestEvent.academicPeriod : null;\n let validThrough = request && request.accommodationRequestEvent && request.accommodationRequestEvent.validThrough ? request.accommodationRequestEvent.validThrough : null;\n // get original student\n const student = await context.model('Student').where('id').equal(request.student.id || request.student)\n .expand({\n name: 'department',\n options: {\n $expand: 'currentYear,currentPeriod',\n }\n }).getItem();\n if (student == null) {\n throw new Error(`Student with id ${request.student.id || request.student} not found.`);\n }\n\n if (academicYear == null) {\n // get student current academic year\n\n academicYear = student && student.department && student.department.currentYear ? student.department.currentYear : null;\n // await event.model.where('id').equal(event.target.id).select('student/department/currentYear').value();\n }\n if (academicPeriod == null) {\n // get student current academic period\n academicPeriod = student && student.department && student.department.currentPeriod ? student.department.currentPeriod : null;\n }\n let cardActionStatus = {};\n if (event.target.accommodation && (Object.keys(event.target.accommodation).length === 0 || event.target.accommodation === '')) {\n // get accommodation valid through date\n cardActionStatus = { alternateName: 'PotentialActionStatus' }\n\n } else {\n cardActionStatus = { alternateName: 'CompletedActionStatus' }\n }\n\n const StudentAccommodationCard = {\n action: event.target.id,\n student: student,\n academicYear: academicYear,\n academicPeriod: academicPeriod,\n validFrom: now,\n validThrough: validThrough,\n cardStatus: cardActionStatus,\n accommodationRoom: event.target.room || null\n };\n // save student accommodation card \n await context.model('StudentAccommodationCard').silent().save(StudentAccommodationCard);\n }\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function beforeSave(event, callback) {\n return beforeSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function afterSave(event, callback) {\n return afterSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}"],"mappings":"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"}
1
+ {"version":3,"file":"OnActionCompleteListener.js","names":["beforeSaveAsync","event","context","model","afterSaveAsync","request","where","equal","target","id","expand","name","options","$expand","getItem","actionStatus","alternateName","now","Date","academicYear","accommodationRequestEvent","academicPeriod","validThrough","student","Error","department","currentYear","currentPeriod","cardActionStatus","accommodation","StudentAccommodationCard","action","validFrom","cardStatus","accommodationRoom","room","silent","save","beforeSave","callback","then","catch","err","afterSave"],"sources":["../../src/listeners/OnActionCompleteListener.js"],"sourcesContent":["// eslint-disable-next-line no-unused-vars\nasync function beforeSaveAsync(event) {\n const context = event.model.context;\n}\n\nasync function afterSaveAsync(event) {\n // get context\n // eslint-disable-next-line no-unused-vars\n const context = event.model.context;\n // get current status\n const request = await event.model.where('id').equal(event.target.id)\n .expand({\n name: 'accommodationRequestEvent',\n options: {\n $expand: 'academicYear,academicPeriod',\n }\n }).getItem();\n const actionStatus = request && request.actionStatus && request.actionStatus.alternateName ? request.actionStatus.alternateName : null;\n if ((actionStatus || actionStatus.alternateName) === 'CompletedActionStatus') {\n // set student accommodation card\n const now = new Date();\n\n // const now = new Date(); \n let academicYear = request && request.accommodationRequestEvent && request.accommodationRequestEvent.academicYear ? request.accommodationRequestEvent.academicYear : null;\n let academicPeriod = request && request.accommodationRequestEvent && request.accommodationRequestEvent.academicPeriod ? request.accommodationRequestEvent.academicPeriod : null;\n let validThrough = request && request.accommodationRequestEvent && request.accommodationRequestEvent.validThrough ? request.accommodationRequestEvent.validThrough : null;\n // get original student\n const student = await context.model('Student').where('id').equal(request.student.id || request.student)\n .expand({\n name: 'department',\n options: {\n $expand: 'currentYear,currentPeriod',\n }\n }).getItem();\n if (student == null) {\n throw new Error(`Student with id ${request.student.id || request.student} not found.`);\n }\n\n if (academicYear == null) {\n // get student current academic year\n\n academicYear = student && student.department && student.department.currentYear ? student.department.currentYear : null;\n // await event.model.where('id').equal(event.target.id).select('student/department/currentYear').value();\n }\n if (academicPeriod == null) {\n // get student current academic period\n academicPeriod = student && student.department && student.department.currentPeriod ? student.department.currentPeriod : null;\n }\n let cardActionStatus = {};\n if (!event.target.accommodation ){\n // get accommodation valid through date\n cardActionStatus = { alternateName: 'ActiveActionStatus' }\n\n } else {\n cardActionStatus = { alternateName: 'CompletedActionStatus' }\n }\n\n const StudentAccommodationCard = {\n action: event.target.id,\n student: student,\n academicYear: academicYear,\n academicPeriod: academicPeriod,\n validFrom: now,\n validThrough: validThrough,\n cardStatus: cardActionStatus,\n accommodationRoom: event.target.room || null\n };\n // save student accommodation card \n await context.model('StudentAccommodationCard').silent().save(StudentAccommodationCard);\n }\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function beforeSave(event, callback) {\n return beforeSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function afterSave(event, callback) {\n return afterSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}"],"mappings":"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"}
@@ -13,16 +13,16 @@ async function afterSaveAsync(event) {
13
13
  const mailer = (0, _mailer.getMailer)(context);
14
14
 
15
15
  const currentCardStatus = await context.
16
- model('StudentDiningCard').
16
+ model('StudentAccommodationCard').
17
17
  where('id').
18
18
  equal(event.target.id).
19
- select('active').
19
+ select('cardStatus').
20
20
  value();
21
21
  let previousCardStatus = 'UnknownStatus';
22
22
  if (event.previous) {
23
- previousCardStatus = event.previous.active;
23
+ previousCardStatus = event.previous.cardStatus;
24
24
  } else {
25
- throw new _data.DataError('E_STATE', 'The previous state of an object cannot be determined', null, 'StudentDiningCard');
25
+ throw new _data.DataError('E_STATE', 'The previous state of an object cannot be determined', null, 'StudentAccommodationCard');
26
26
  }
27
27
  if (currentCardStatus === previousCardStatus) {
28
28
  return;
@@ -32,7 +32,7 @@ async function afterSaveAsync(event) {
32
32
  const mailTemplate = await context.
33
33
  model('MailConfigurations').
34
34
  where('target').
35
- equal('DiningCardActiveStatusChange').
35
+ equal('AccommodationCardActiveStatusChange').
36
36
  silent().
37
37
  getItem();
38
38
  if (mailTemplate == null) {
@@ -44,7 +44,7 @@ async function afterSaveAsync(event) {
44
44
  let item;
45
45
  if (typeof event.target.action === 'object' && typeof event.target.action.id === 'number' && Number.isInteger(event.target.action.id) && event.target.action.id > 0) {
46
46
  item = await context.
47
- model('DiningRequestAction').
47
+ model('AccommodationRequestAction').
48
48
  where('id').
49
49
  equal(event.target.action.id).
50
50
  expand({
@@ -58,7 +58,7 @@ async function afterSaveAsync(event) {
58
58
 
59
59
  } else if (typeof event.target.action === 'number' && Number.isInteger(event.target.action) && event.target.action > 0) {
60
60
  item = await context.
61
- model('DiningRequestAction').
61
+ model('AccommodationRequestAction').
62
62
  where('id').
63
63
  equal(event.target.action).
64
64
  expand({
@@ -83,7 +83,7 @@ async function afterSaveAsync(event) {
83
83
  const config = await context.
84
84
  model('StudentRequestConfiguration').
85
85
  where('additionalType').
86
- equal('DiningRequestAction').
86
+ equal('AccommodationRequestAction').
87
87
  and('inLanguage').
88
88
  equal(event.target.inLanguage || context.locale).
89
89
  silent().
@@ -1 +1 @@
1
- {"version":3,"file":"SendEmailAfterCardStatusChangeListener.js","names":["_mailer","require","_data","_common","afterSaveAsync","event","state","context","model","mailer","getMailer","currentCardStatus","where","equal","target","id","select","value","previousCardStatus","previous","active","DataError","mailTemplate","silent","getItem","item","action","Number","isInteger","expand","name","options","$expand","application","and","config","inLanguage","locale","email","student","person","TraceUtils","warn","familyName","givenName","Promise","resolve","template","subject","bcc","to","send","configuration","err","error","err1","afterSave","callback","then","catch"],"sources":["../../src/listeners/SendEmailAfterCardStatusChangeListener.js"],"sourcesContent":["import { getMailer } from '@themost/mailer';\nimport { DataError } from '@themost/data';\nimport { TraceUtils } from \"@themost/common\";\n/**\n * @param {DataEventArgs} event\n */\nasync function afterSaveAsync(event) {\n if (event.state === 2) {\n const context = event.model.context;\n /**\n * @type {import('@themost/mailer').MailerHelper}\n */\n const mailer = getMailer(context);\n\n const currentCardStatus = await context\n .model('StudentDiningCard')\n .where('id')\n .equal(event.target.id)\n .select('active')\n .value();\n let previousCardStatus = 'UnknownStatus';\n if (event.previous) {\n previousCardStatus = event.previous.active;\n } else {\n throw new DataError('E_STATE', 'The previous state of an object cannot be determined', null, 'StudentDiningCard');\n }\n if (currentCardStatus === previousCardStatus) {\n return;\n }\n\n // get mail template\n const mailTemplate = await context\n .model('MailConfigurations')\n .where('target')\n .equal('DiningCardActiveStatusChange')\n .silent()\n .getItem();\n if (mailTemplate == null) {\n //\n return;\n }\n\n //get parent action data\n let item;\n if (typeof event.target.action === 'object' && typeof event.target.action.id === 'number' && Number.isInteger(event.target.action.id) && event.target.action.id > 0) {\n item = await context\n .model('DiningRequestAction')\n .where('id')\n .equal(event.target.action.id)\n .expand({\n name: 'student',\n options: {\n $expand: 'person'\n }\n })\n .silent()\n .getItem();\n\n } else if (typeof event.target.action === 'number' && Number.isInteger(event.target.action) && event.target.action > 0) {\n item = await context\n .model('DiningRequestAction')\n .where('id')\n .equal(event.target.action)\n .expand({\n name: 'student',\n options: {\n $expand: 'person'\n }\n })\n .silent()\n .getItem();\n }\n\n const application = await context\n .model('WebApplication')\n .where('alternateName')\n .equal('students')\n .and('applicationSuite')\n .equal('universis')\n .silent()\n .getItem();\n\n const config = await context\n .model('StudentRequestConfiguration')\n .where('additionalType')\n .equal('DiningRequestAction')\n .and('inLanguage')\n .equal(event.target.inLanguage || context.locale)\n .silent()\n .getItem();\n\n if (item && application && config) {\n\n const email = item.student.person.email;\n\n if (email == null || typeof email !== 'string') {\n TraceUtils.warn(`Cannot send email for ${item.student.person.familyName} ${item.student.person.givenName}. Student [${item.student.id}] email does not exist.`);\n return;\n }\n await new Promise((resolve) => {\n mailer.template(mailTemplate.template)\n .subject(mailTemplate.subject)\n .bcc(mailTemplate.bcc || '')\n .to(email)\n .send({\n model: item,\n application: application,\n configuration: config\n }, (err) => {\n if (err) {\n try {\n TraceUtils.error('An error occurred while trying to send an email notification after status change.');\n TraceUtils.error(`Student=${item.student.id}, template=${mailTemplate.template}`);\n TraceUtils.error(err);\n } catch (err1) {\n // do nothing\n }\n return resolve();\n }\n\n return resolve();\n })\n });\n\n }\n }\n}\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function afterSave(event, callback) {\n return afterSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}"],"mappings":"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"}
1
+ {"version":3,"file":"SendEmailAfterCardStatusChangeListener.js","names":["_mailer","require","_data","_common","afterSaveAsync","event","state","context","model","mailer","getMailer","currentCardStatus","where","equal","target","id","select","value","previousCardStatus","previous","cardStatus","DataError","mailTemplate","silent","getItem","item","action","Number","isInteger","expand","name","options","$expand","application","and","config","inLanguage","locale","email","student","person","TraceUtils","warn","familyName","givenName","Promise","resolve","template","subject","bcc","to","send","configuration","err","error","err1","afterSave","callback","then","catch"],"sources":["../../src/listeners/SendEmailAfterCardStatusChangeListener.js"],"sourcesContent":["import { getMailer } from '@themost/mailer';\nimport { DataError } from '@themost/data';\nimport { TraceUtils } from \"@themost/common\";\n/**\n * @param {DataEventArgs} event\n */\nasync function afterSaveAsync(event) {\n if (event.state === 2) {\n const context = event.model.context;\n /**\n * @type {import('@themost/mailer').MailerHelper}\n */\n const mailer = getMailer(context);\n\n const currentCardStatus = await context\n .model('StudentAccommodationCard')\n .where('id')\n .equal(event.target.id)\n .select('cardStatus')\n .value();\n let previousCardStatus = 'UnknownStatus';\n if (event.previous) {\n previousCardStatus = event.previous.cardStatus;\n } else {\n throw new DataError('E_STATE', 'The previous state of an object cannot be determined', null, 'StudentAccommodationCard');\n }\n if (currentCardStatus === previousCardStatus) {\n return;\n }\n\n // get mail template\n const mailTemplate = await context\n .model('MailConfigurations')\n .where('target')\n .equal('AccommodationCardActiveStatusChange')\n .silent()\n .getItem();\n if (mailTemplate == null) {\n //\n return;\n }\n\n //get parent action data\n let item;\n if (typeof event.target.action === 'object' && typeof event.target.action.id === 'number' && Number.isInteger(event.target.action.id) && event.target.action.id > 0) {\n item = await context\n .model('AccommodationRequestAction')\n .where('id')\n .equal(event.target.action.id)\n .expand({\n name: 'student',\n options: {\n $expand: 'person'\n }\n })\n .silent()\n .getItem();\n\n } else if (typeof event.target.action === 'number' && Number.isInteger(event.target.action) && event.target.action > 0) {\n item = await context\n .model('AccommodationRequestAction')\n .where('id')\n .equal(event.target.action)\n .expand({\n name: 'student',\n options: {\n $expand: 'person'\n }\n })\n .silent()\n .getItem();\n }\n\n const application = await context\n .model('WebApplication')\n .where('alternateName')\n .equal('students')\n .and('applicationSuite')\n .equal('universis')\n .silent()\n .getItem();\n\n const config = await context\n .model('StudentRequestConfiguration')\n .where('additionalType')\n .equal('AccommodationRequestAction')\n .and('inLanguage')\n .equal(event.target.inLanguage || context.locale)\n .silent()\n .getItem();\n\n if (item && application && config) {\n\n const email = item.student.person.email;\n\n if (email == null || typeof email !== 'string') {\n TraceUtils.warn(`Cannot send email for ${item.student.person.familyName} ${item.student.person.givenName}. Student [${item.student.id}] email does not exist.`);\n return;\n }\n await new Promise((resolve) => {\n mailer.template(mailTemplate.template)\n .subject(mailTemplate.subject)\n .bcc(mailTemplate.bcc || '')\n .to(email)\n .send({\n model: item,\n application: application,\n configuration: config\n }, (err) => {\n if (err) {\n try {\n TraceUtils.error('An error occurred while trying to send an email notification after status change.');\n TraceUtils.error(`Student=${item.student.id}, template=${mailTemplate.template}`);\n TraceUtils.error(err);\n } catch (err1) {\n // do nothing\n }\n return resolve();\n }\n\n return resolve();\n })\n });\n\n }\n }\n}\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function afterSave(event, callback) {\n return afterSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}"],"mappings":"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"}
@@ -50,4 +50,4 @@ _data.EdmMapping.action('remove', 'Accommodation'), _dec(_class = (_class2 = cla
50
50
  }, (_applyDecoratedDescriptor(_class2.prototype, "remove", [_dec2, _dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "remove"), _class2.prototype)), _class2)) || _class);
51
51
 
52
52
  module.exports = AccommodationRequestEvent;
53
- //# sourceMappingURL=Accommodation.js.map
53
+ //# sourceMappingURL=AccommodationPlace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccommodationPlace.js","names":["_common","require","_data","_dec","_dec2","_dec3","_class","_class2","_applyDecoratedDescriptor","target","property","decorators","descriptor","context","desc","Object","keys","forEach","key","enumerable","configurable","initializer","writable","slice","reverse","reduce","decorator","value","call","undefined","defineProperty","AccommodationRequestEvent","EdmMapping","entityType","param","action","DataObject","constructor","remove","data","model","getModel","item","where","equal","getId","getItem","translateService","application","getStrategy","TranslateService","DataError","translate","hasRooms","id","count","silent","prototype","getOwnPropertyDescriptor","module","exports"],"sources":["../../src/models/AccommodationPlace.js"],"sourcesContent":["/* eslint-disable no-unused-vars */\nimport { DataError } from \"@themost/common\";\nimport { DataObject, EdmMapping } from \"@themost/data\";\n\n\n@EdmMapping.entityType('Accommodation')\nclass AccommodationRequestEvent extends DataObject {\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * POST AccommodationRequestEvents/:id/Remove\n */\n\n //remove accommodation request event\n @EdmMapping.param('data', 'Object', false, true)\n @EdmMapping.action('remove', 'Accommodation')\n async remove(data) {\n /**\n * @type {import('@themost/data').DataModel}\n */\n\n const model = this.getModel();\n\n const item = await model.where('id')\n .equal(this.getId())\n .getItem();\n const translateService = this.context.application.getStrategy(function TranslateService() { });\n\n if (item == null) {\n throw new DataError('E_ACCOMMODATION', translateService.translate('The specified Accommodation cannot be found or is inaccessible.'));\n }\n\n const hasRooms = await this.context.model('AccommodationRooms')\n .where('containedInPlace').equal(item.id).count();\n\n if (hasRooms) {\n throw new DataError('E_ACCOMMODATION_ROOM', translateService.translate('Cannot remove accommodation. Accommodation is related to rooms.'), null, 'Accommodation');\n }\n\n return model.silent().remove(item);\n }\n\n\n \n}\n\nmodule.exports = AccommodationRequestEvent;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@universis/accommodation",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Universis api library template",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",