@webiny/api-record-locking 0.0.0-unstable.a4637c5ce6 → 0.0.0-unstable.a4f3e4ea8b

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 (285) hide show
  1. package/README.md +10 -9
  2. package/domain/LockRecord.d.ts +45 -0
  3. package/domain/LockRecord.js +73 -0
  4. package/domain/LockRecord.js.map +1 -0
  5. package/domain/RecordLockingModel.d.ts +9 -0
  6. package/domain/RecordLockingModel.js +32 -0
  7. package/domain/RecordLockingModel.js.map +1 -0
  8. package/domain/abstractions.d.ts +18 -0
  9. package/domain/abstractions.js +6 -0
  10. package/domain/abstractions.js.map +1 -0
  11. package/domain/calculateExpiresOn.d.ts +1 -0
  12. package/domain/calculateExpiresOn.js +8 -0
  13. package/domain/calculateExpiresOn.js.map +1 -0
  14. package/domain/errors.d.ts +71 -0
  15. package/domain/errors.js +85 -0
  16. package/domain/errors.js.map +1 -0
  17. package/domain/index.d.ts +4 -0
  18. package/domain/index.js +4 -0
  19. package/domain/types.d.ts +44 -0
  20. package/domain/types.js +9 -0
  21. package/domain/types.js.map +1 -0
  22. package/features/GetLockRecord/GetLockRecordRepository.d.ts +16 -0
  23. package/features/GetLockRecord/GetLockRecordRepository.js +40 -0
  24. package/features/GetLockRecord/GetLockRecordRepository.js.map +1 -0
  25. package/features/GetLockRecord/GetLockRecordUseCase.d.ts +12 -0
  26. package/features/GetLockRecord/GetLockRecordUseCase.js +18 -0
  27. package/features/GetLockRecord/GetLockRecordUseCase.js.map +1 -0
  28. package/features/GetLockRecord/abstractions.d.ts +41 -0
  29. package/features/GetLockRecord/abstractions.js +6 -0
  30. package/features/GetLockRecord/abstractions.js.map +1 -0
  31. package/features/GetLockRecord/feature.d.ts +4 -0
  32. package/features/GetLockRecord/feature.js +13 -0
  33. package/features/GetLockRecord/feature.js.map +1 -0
  34. package/features/GetLockRecord/index.d.ts +2 -0
  35. package/features/GetLockRecord/index.js +2 -0
  36. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.d.ts +15 -0
  37. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js +30 -0
  38. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js.map +1 -0
  39. package/features/GetLockedEntryLockRecord/abstractions.d.ts +26 -0
  40. package/features/GetLockedEntryLockRecord/abstractions.js +5 -0
  41. package/features/GetLockedEntryLockRecord/abstractions.js.map +1 -0
  42. package/features/GetLockedEntryLockRecord/feature.d.ts +4 -0
  43. package/features/GetLockedEntryLockRecord/feature.js +11 -0
  44. package/features/GetLockedEntryLockRecord/feature.js.map +1 -0
  45. package/features/GetLockedEntryLockRecord/index.d.ts +2 -0
  46. package/features/GetLockedEntryLockRecord/index.js +2 -0
  47. package/features/IsEntryLocked/IsEntryLockedUseCase.d.ts +14 -0
  48. package/features/IsEntryLocked/IsEntryLockedUseCase.js +33 -0
  49. package/features/IsEntryLocked/IsEntryLockedUseCase.js.map +1 -0
  50. package/features/IsEntryLocked/abstractions.d.ts +24 -0
  51. package/features/IsEntryLocked/abstractions.js +5 -0
  52. package/features/IsEntryLocked/abstractions.js.map +1 -0
  53. package/features/IsEntryLocked/feature.d.ts +4 -0
  54. package/features/IsEntryLocked/feature.js +11 -0
  55. package/features/IsEntryLocked/feature.js.map +1 -0
  56. package/features/IsEntryLocked/index.d.ts +1 -0
  57. package/features/IsEntryLocked/index.js +1 -0
  58. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.d.ts +15 -0
  59. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.js +36 -0
  60. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.js.map +1 -0
  61. package/features/KickOutCurrentUser/abstractions.d.ts +17 -0
  62. package/features/KickOutCurrentUser/abstractions.js +5 -0
  63. package/features/KickOutCurrentUser/abstractions.js.map +1 -0
  64. package/features/KickOutCurrentUser/feature.d.ts +4 -0
  65. package/features/KickOutCurrentUser/feature.js +11 -0
  66. package/features/KickOutCurrentUser/feature.js.map +1 -0
  67. package/features/KickOutCurrentUser/index.d.ts +1 -0
  68. package/features/KickOutCurrentUser/index.js +1 -0
  69. package/features/ListAllLockRecords/ListAllLockRecordsRepository.d.ts +18 -0
  70. package/features/ListAllLockRecords/ListAllLockRecordsRepository.js +49 -0
  71. package/features/ListAllLockRecords/ListAllLockRecordsRepository.js.map +1 -0
  72. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.d.ts +11 -0
  73. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.js +18 -0
  74. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.js.map +1 -0
  75. package/features/ListAllLockRecords/abstractions.d.ts +40 -0
  76. package/features/ListAllLockRecords/abstractions.js +6 -0
  77. package/features/ListAllLockRecords/abstractions.js.map +1 -0
  78. package/features/ListAllLockRecords/feature.d.ts +4 -0
  79. package/features/ListAllLockRecords/feature.js +13 -0
  80. package/features/ListAllLockRecords/feature.js.map +1 -0
  81. package/features/ListAllLockRecords/index.d.ts +2 -0
  82. package/features/ListAllLockRecords/index.js +2 -0
  83. package/features/ListLockRecords/ListLockRecordsRepository.d.ts +17 -0
  84. package/features/ListLockRecords/ListLockRecordsRepository.js +49 -0
  85. package/features/ListLockRecords/ListLockRecordsRepository.js.map +1 -0
  86. package/features/ListLockRecords/ListLockRecordsUseCase.d.ts +15 -0
  87. package/features/ListLockRecords/ListLockRecordsUseCase.js +33 -0
  88. package/features/ListLockRecords/ListLockRecordsUseCase.js.map +1 -0
  89. package/features/ListLockRecords/abstractions.d.ts +45 -0
  90. package/features/ListLockRecords/abstractions.js +6 -0
  91. package/features/ListLockRecords/abstractions.js.map +1 -0
  92. package/features/ListLockRecords/feature.d.ts +4 -0
  93. package/features/ListLockRecords/feature.js +13 -0
  94. package/features/ListLockRecords/feature.js.map +1 -0
  95. package/features/ListLockRecords/index.d.ts +1 -0
  96. package/features/ListLockRecords/index.js +1 -0
  97. package/features/LockEntry/LockEntryEventsDecorator.d.ts +14 -0
  98. package/features/LockEntry/LockEntryEventsDecorator.js +40 -0
  99. package/features/LockEntry/LockEntryEventsDecorator.js.map +1 -0
  100. package/features/LockEntry/LockEntryRepository.d.ts +16 -0
  101. package/features/LockEntry/LockEntryRepository.js +45 -0
  102. package/features/LockEntry/LockEntryRepository.js.map +1 -0
  103. package/features/LockEntry/LockEntryUseCase.d.ts +14 -0
  104. package/features/LockEntry/LockEntryUseCase.js +31 -0
  105. package/features/LockEntry/LockEntryUseCase.js.map +1 -0
  106. package/features/LockEntry/abstractions.d.ts +41 -0
  107. package/features/LockEntry/abstractions.js +6 -0
  108. package/features/LockEntry/abstractions.js.map +1 -0
  109. package/features/LockEntry/events.d.ts +45 -0
  110. package/features/LockEntry/events.js +32 -0
  111. package/features/LockEntry/events.js.map +1 -0
  112. package/features/LockEntry/feature.d.ts +4 -0
  113. package/features/LockEntry/feature.js +15 -0
  114. package/features/LockEntry/feature.js.map +1 -0
  115. package/features/LockEntry/index.d.ts +1 -0
  116. package/features/LockEntry/index.js +1 -0
  117. package/features/RecordLockingFeature.d.ts +15 -0
  118. package/features/RecordLockingFeature.js +34 -0
  119. package/features/RecordLockingFeature.js.map +1 -0
  120. package/features/UnlockEntry/UnlockEntryEventsDecorator.d.ts +14 -0
  121. package/features/UnlockEntry/UnlockEntryEventsDecorator.js +41 -0
  122. package/features/UnlockEntry/UnlockEntryEventsDecorator.js.map +1 -0
  123. package/features/UnlockEntry/UnlockEntryRepository.d.ts +14 -0
  124. package/features/UnlockEntry/UnlockEntryRepository.js +42 -0
  125. package/features/UnlockEntry/UnlockEntryRepository.js.map +1 -0
  126. package/features/UnlockEntry/UnlockEntryUseCase.d.ts +18 -0
  127. package/features/UnlockEntry/UnlockEntryUseCase.js +65 -0
  128. package/features/UnlockEntry/UnlockEntryUseCase.js.map +1 -0
  129. package/features/UnlockEntry/abstractions.d.ts +44 -0
  130. package/features/UnlockEntry/abstractions.js +6 -0
  131. package/features/UnlockEntry/abstractions.js.map +1 -0
  132. package/features/UnlockEntry/events.d.ts +46 -0
  133. package/features/UnlockEntry/events.js +32 -0
  134. package/features/UnlockEntry/events.js.map +1 -0
  135. package/features/UnlockEntry/feature.d.ts +4 -0
  136. package/features/UnlockEntry/feature.js +15 -0
  137. package/features/UnlockEntry/feature.js.map +1 -0
  138. package/features/UnlockEntry/hasFullAccessPermission.d.ts +2 -0
  139. package/features/UnlockEntry/hasFullAccessPermission.js +9 -0
  140. package/features/UnlockEntry/hasFullAccessPermission.js.map +1 -0
  141. package/features/UnlockEntry/index.d.ts +1 -0
  142. package/features/UnlockEntry/index.js +1 -0
  143. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.d.ts +14 -0
  144. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.js +40 -0
  145. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.js.map +1 -0
  146. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.d.ts +17 -0
  147. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.js +44 -0
  148. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.js.map +1 -0
  149. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.d.ts +16 -0
  150. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.js +75 -0
  151. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.js.map +1 -0
  152. package/features/UnlockEntryRequest/abstractions.d.ts +42 -0
  153. package/features/UnlockEntryRequest/abstractions.js +6 -0
  154. package/features/UnlockEntryRequest/abstractions.js.map +1 -0
  155. package/features/UnlockEntryRequest/events.d.ts +45 -0
  156. package/features/UnlockEntryRequest/events.js +32 -0
  157. package/features/UnlockEntryRequest/events.js.map +1 -0
  158. package/features/UnlockEntryRequest/feature.d.ts +4 -0
  159. package/features/UnlockEntryRequest/feature.js +15 -0
  160. package/features/UnlockEntryRequest/feature.js.map +1 -0
  161. package/features/UnlockEntryRequest/index.d.ts +3 -0
  162. package/features/UnlockEntryRequest/index.js +3 -0
  163. package/features/UpdateEntryLock/UpdateEntryLockRepository.d.ts +20 -0
  164. package/features/UpdateEntryLock/UpdateEntryLockRepository.js +60 -0
  165. package/features/UpdateEntryLock/UpdateEntryLockRepository.js.map +1 -0
  166. package/features/UpdateEntryLock/UpdateEntryLockUseCase.d.ts +18 -0
  167. package/features/UpdateEntryLock/UpdateEntryLockUseCase.js +51 -0
  168. package/features/UpdateEntryLock/UpdateEntryLockUseCase.js.map +1 -0
  169. package/features/UpdateEntryLock/abstractions.d.ts +42 -0
  170. package/features/UpdateEntryLock/abstractions.js +6 -0
  171. package/features/UpdateEntryLock/abstractions.js.map +1 -0
  172. package/features/UpdateEntryLock/feature.d.ts +4 -0
  173. package/features/UpdateEntryLock/feature.js +13 -0
  174. package/features/UpdateEntryLock/feature.js.map +1 -0
  175. package/features/UpdateEntryLock/index.d.ts +1 -0
  176. package/features/UpdateEntryLock/index.js +1 -0
  177. package/graphql/checkPermissions.d.ts +5 -0
  178. package/graphql/checkPermissions.js +10 -0
  179. package/graphql/checkPermissions.js.map +1 -0
  180. package/{utils → graphql}/resolve.d.ts +2 -2
  181. package/graphql/resolve.js +20 -0
  182. package/graphql/resolve.js.map +1 -0
  183. package/graphql/schema.d.ts +7 -3
  184. package/graphql/schema.js +162 -145
  185. package/graphql/schema.js.map +1 -1
  186. package/index.d.ts +3 -3
  187. package/index.js +55 -34
  188. package/index.js.map +1 -1
  189. package/package.json +29 -28
  190. package/types.d.ts +3 -132
  191. package/types.js +6 -27
  192. package/types.js.map +1 -1
  193. package/utils/convertWhereCondition.d.ts +1 -1
  194. package/utils/convertWhereCondition.js +21 -36
  195. package/utils/convertWhereCondition.js.map +1 -1
  196. package/utils/getTimeout.js +8 -22
  197. package/utils/getTimeout.js.map +1 -1
  198. package/utils/lockRecordDatabaseId.js +7 -20
  199. package/utils/lockRecordDatabaseId.js.map +1 -1
  200. package/abstractions/IGetLockRecordUseCase.d.ts +0 -8
  201. package/abstractions/IGetLockRecordUseCase.js +0 -7
  202. package/abstractions/IGetLockRecordUseCase.js.map +0 -1
  203. package/abstractions/IGetLockedEntryLockRecordUseCase.d.ts +0 -8
  204. package/abstractions/IGetLockedEntryLockRecordUseCase.js +0 -7
  205. package/abstractions/IGetLockedEntryLockRecordUseCase.js.map +0 -1
  206. package/abstractions/IIsEntryLocked.d.ts +0 -8
  207. package/abstractions/IIsEntryLocked.js +0 -7
  208. package/abstractions/IIsEntryLocked.js.map +0 -1
  209. package/abstractions/IKickOutCurrentUserUseCase.d.ts +0 -5
  210. package/abstractions/IKickOutCurrentUserUseCase.js +0 -7
  211. package/abstractions/IKickOutCurrentUserUseCase.js.map +0 -1
  212. package/abstractions/IListAllLockRecordsUseCase.d.ts +0 -9
  213. package/abstractions/IListAllLockRecordsUseCase.js +0 -7
  214. package/abstractions/IListAllLockRecordsUseCase.js.map +0 -1
  215. package/abstractions/IListLockRecordsUseCase.d.ts +0 -10
  216. package/abstractions/IListLockRecordsUseCase.js +0 -7
  217. package/abstractions/IListLockRecordsUseCase.js.map +0 -1
  218. package/abstractions/ILockEntryUseCase.d.ts +0 -11
  219. package/abstractions/ILockEntryUseCase.js +0 -7
  220. package/abstractions/ILockEntryUseCase.js.map +0 -1
  221. package/abstractions/IUnlockEntryRequestUseCase.d.ts +0 -11
  222. package/abstractions/IUnlockEntryRequestUseCase.js +0 -7
  223. package/abstractions/IUnlockEntryRequestUseCase.js.map +0 -1
  224. package/abstractions/IUnlockEntryUseCase.d.ts +0 -12
  225. package/abstractions/IUnlockEntryUseCase.js +0 -7
  226. package/abstractions/IUnlockEntryUseCase.js.map +0 -1
  227. package/abstractions/IUpdateEntryLockUseCase.d.ts +0 -11
  228. package/abstractions/IUpdateEntryLockUseCase.js +0 -7
  229. package/abstractions/IUpdateEntryLockUseCase.js.map +0 -1
  230. package/crud/crud.d.ts +0 -7
  231. package/crud/crud.js +0 -204
  232. package/crud/crud.js.map +0 -1
  233. package/crud/model.d.ts +0 -2
  234. package/crud/model.js +0 -127
  235. package/crud/model.js.map +0 -1
  236. package/useCases/GetLockRecord/GetLockRecordUseCase.d.ts +0 -16
  237. package/useCases/GetLockRecord/GetLockRecordUseCase.js +0 -39
  238. package/useCases/GetLockRecord/GetLockRecordUseCase.js.map +0 -1
  239. package/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.d.ts +0 -16
  240. package/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js +0 -29
  241. package/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js.map +0 -1
  242. package/useCases/IsEntryLocked/IsEntryLockedUseCase.d.ts +0 -13
  243. package/useCases/IsEntryLocked/IsEntryLockedUseCase.js +0 -31
  244. package/useCases/IsEntryLocked/IsEntryLockedUseCase.js.map +0 -1
  245. package/useCases/KickOutCurrentUser/KickOutCurrentUserUseCase.d.ts +0 -12
  246. package/useCases/KickOutCurrentUser/KickOutCurrentUserUseCase.js +0 -46
  247. package/useCases/KickOutCurrentUser/KickOutCurrentUserUseCase.js.map +0 -1
  248. package/useCases/ListAllLockRecordsUseCase/ListAllLockRecordsUseCase.d.ts +0 -13
  249. package/useCases/ListAllLockRecordsUseCase/ListAllLockRecordsUseCase.js +0 -34
  250. package/useCases/ListAllLockRecordsUseCase/ListAllLockRecordsUseCase.js.map +0 -1
  251. package/useCases/ListLockRecordsUseCase/ListLockRecordsUseCase.d.ts +0 -14
  252. package/useCases/ListLockRecordsUseCase/ListLockRecordsUseCase.js +0 -27
  253. package/useCases/ListLockRecordsUseCase/ListLockRecordsUseCase.js.map +0 -1
  254. package/useCases/LockEntryUseCase/LockEntryUseCase.d.ts +0 -21
  255. package/useCases/LockEntryUseCase/LockEntryUseCase.js +0 -64
  256. package/useCases/LockEntryUseCase/LockEntryUseCase.js.map +0 -1
  257. package/useCases/UnlockEntryUseCase/UnlockEntryUseCase.d.ts +0 -23
  258. package/useCases/UnlockEntryUseCase/UnlockEntryUseCase.js +0 -90
  259. package/useCases/UnlockEntryUseCase/UnlockEntryUseCase.js.map +0 -1
  260. package/useCases/UnlockRequestUseCase/UnlockEntryRequestUseCase.d.ts +0 -21
  261. package/useCases/UnlockRequestUseCase/UnlockEntryRequestUseCase.js +0 -82
  262. package/useCases/UnlockRequestUseCase/UnlockEntryRequestUseCase.js.map +0 -1
  263. package/useCases/UpdateEntryLock/UpdateEntryLockUseCase.d.ts +0 -26
  264. package/useCases/UpdateEntryLock/UpdateEntryLockUseCase.js +0 -93
  265. package/useCases/UpdateEntryLock/UpdateEntryLockUseCase.js.map +0 -1
  266. package/useCases/index.d.ts +0 -31
  267. package/useCases/index.js +0 -96
  268. package/useCases/index.js.map +0 -1
  269. package/useCases/types.d.ts +0 -5
  270. package/useCases/types.js +0 -7
  271. package/useCases/types.js.map +0 -1
  272. package/utils/calculateExpiresOn.d.ts +0 -2
  273. package/utils/calculateExpiresOn.js +0 -16
  274. package/utils/calculateExpiresOn.js.map +0 -1
  275. package/utils/checkPermissions.d.ts +0 -7
  276. package/utils/checkPermissions.js +0 -21
  277. package/utils/checkPermissions.js.map +0 -1
  278. package/utils/convertEntryToLockRecord.d.ts +0 -28
  279. package/utils/convertEntryToLockRecord.js +0 -91
  280. package/utils/convertEntryToLockRecord.js.map +0 -1
  281. package/utils/resolve.js +0 -30
  282. package/utils/resolve.js.map +0 -1
  283. package/utils/validateSameIdentity.d.ts +0 -6
  284. package/utils/validateSameIdentity.js +0 -24
  285. package/utils/validateSameIdentity.js.map +0 -1
@@ -1,82 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.UnlockEntryRequestUseCase = void 0;
8
- var _error = _interopRequireDefault(require("@webiny/error"));
9
- var _types = require("../../types");
10
- var _lockRecordDatabaseId = require("../../utils/lockRecordDatabaseId");
11
- var _utils = require("@webiny/utils");
12
- class UnlockEntryRequestUseCase {
13
- constructor(params) {
14
- this.getLockRecordUseCase = params.getLockRecordUseCase;
15
- this.getManager = params.getManager;
16
- this.getSecurity = params.getSecurity;
17
- this.getIdentity = params.getIdentity;
18
- this.convert = params.convert;
19
- }
20
- async execute(params) {
21
- const record = await this.getLockRecordUseCase.execute(params);
22
- if (!record || record.isExpired()) {
23
- throw new _error.default("Entry is not locked.", "ENTRY_NOT_LOCKED", {
24
- ...params
25
- });
26
- }
27
- const unlockRequested = record.getUnlockRequested();
28
- if (unlockRequested) {
29
- const currentIdentity = this.getIdentity();
30
- /**
31
- * If a current identity did not request unlock, we will not allow that user to continue.
32
- */
33
- if (unlockRequested.createdBy.id !== currentIdentity.id) {
34
- throw new _error.default("Unlock request already sent.", "UNLOCK_REQUEST_ALREADY_SENT", {
35
- ...params,
36
- identity: unlockRequested.createdBy
37
- });
38
- }
39
- const approved = record.getUnlockApproved();
40
- const denied = record.getUnlockDenied();
41
- if (approved || denied) {
42
- return record;
43
- }
44
- throw new _error.default("Unlock request already sent.", "UNLOCK_REQUEST_ALREADY_SENT", {
45
- ...params,
46
- identity: unlockRequested.createdBy
47
- });
48
- }
49
- record.addAction({
50
- type: _types.RecordLockingLockRecordActionType.requested,
51
- createdOn: new Date(),
52
- createdBy: this.getIdentity()
53
- });
54
- const security = this.getSecurity();
55
- try {
56
- const manager = await this.getManager();
57
- const entryId = (0, _lockRecordDatabaseId.createLockRecordDatabaseId)(record.id);
58
- const id = (0, _utils.createIdentifier)({
59
- id: entryId,
60
- version: 1
61
- });
62
- return await security.withoutAuthorization(async () => {
63
- const result = await manager.update(id, record.toObject());
64
- return this.convert(result);
65
- });
66
- } catch (ex) {
67
- throw new _error.default("Could not update record with a unlock request.", "UNLOCK_REQUEST_ERROR", {
68
- ...ex.data,
69
- error: {
70
- message: ex.message,
71
- code: ex.code
72
- },
73
- id: params.id,
74
- type: params.type,
75
- recordId: record.id
76
- });
77
- }
78
- }
79
- }
80
- exports.UnlockEntryRequestUseCase = UnlockEntryRequestUseCase;
81
-
82
- //# sourceMappingURL=UnlockEntryRequestUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_types","_lockRecordDatabaseId","_utils","UnlockEntryRequestUseCase","constructor","params","getLockRecordUseCase","getManager","getSecurity","getIdentity","convert","execute","record","isExpired","WebinyError","unlockRequested","getUnlockRequested","currentIdentity","createdBy","id","identity","approved","getUnlockApproved","denied","getUnlockDenied","addAction","type","RecordLockingLockRecordActionType","requested","createdOn","Date","security","manager","entryId","createLockRecordDatabaseId","createIdentifier","version","withoutAuthorization","result","update","toObject","ex","data","error","message","code","recordId","exports"],"sources":["UnlockEntryRequestUseCase.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n IUnlockEntryRequestUseCase,\n IUnlockEntryRequestUseCaseExecuteParams\n} from \"~/abstractions/IUnlockEntryRequestUseCase\";\nimport type { IGetIdentity, IRecordLockingLockRecord, IRecordLockingModelManager } from \"~/types\";\nimport { RecordLockingLockRecordActionType } from \"~/types\";\nimport type { IGetLockRecordUseCase } from \"~/abstractions/IGetLockRecordUseCase\";\nimport { createLockRecordDatabaseId } from \"~/utils/lockRecordDatabaseId\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport type { ConvertEntryToLockRecordCb } from \"~/useCases/types\";\nimport type { Security } from \"@webiny/api-security/types\";\n\nexport interface IUnlockEntryRequestUseCaseParams {\n getLockRecordUseCase: IGetLockRecordUseCase;\n getManager(): Promise<IRecordLockingModelManager>;\n getSecurity(): Pick<Security, \"withoutAuthorization\">;\n getIdentity: IGetIdentity;\n convert: ConvertEntryToLockRecordCb;\n}\n\nexport class UnlockEntryRequestUseCase implements IUnlockEntryRequestUseCase {\n private readonly getLockRecordUseCase: IGetLockRecordUseCase;\n private readonly getManager: IUnlockEntryRequestUseCaseParams[\"getManager\"];\n private readonly getSecurity: IUnlockEntryRequestUseCaseParams[\"getSecurity\"];\n private readonly getIdentity: IGetIdentity;\n private readonly convert: ConvertEntryToLockRecordCb;\n\n public constructor(params: IUnlockEntryRequestUseCaseParams) {\n this.getLockRecordUseCase = params.getLockRecordUseCase;\n this.getManager = params.getManager;\n this.getSecurity = params.getSecurity;\n this.getIdentity = params.getIdentity;\n this.convert = params.convert;\n }\n\n public async execute(\n params: IUnlockEntryRequestUseCaseExecuteParams\n ): Promise<IRecordLockingLockRecord> {\n const record = await this.getLockRecordUseCase.execute(params);\n if (!record || record.isExpired()) {\n throw new WebinyError(\"Entry is not locked.\", \"ENTRY_NOT_LOCKED\", {\n ...params\n });\n }\n const unlockRequested = record.getUnlockRequested();\n if (unlockRequested) {\n const currentIdentity = this.getIdentity();\n /**\n * If a current identity did not request unlock, we will not allow that user to continue.\n */\n if (unlockRequested.createdBy.id !== currentIdentity.id) {\n throw new WebinyError(\n \"Unlock request already sent.\",\n \"UNLOCK_REQUEST_ALREADY_SENT\",\n {\n ...params,\n identity: unlockRequested.createdBy\n }\n );\n }\n const approved = record.getUnlockApproved();\n const denied = record.getUnlockDenied();\n if (approved || denied) {\n return record;\n }\n throw new WebinyError(\"Unlock request already sent.\", \"UNLOCK_REQUEST_ALREADY_SENT\", {\n ...params,\n identity: unlockRequested.createdBy\n });\n }\n\n record.addAction({\n type: RecordLockingLockRecordActionType.requested,\n createdOn: new Date(),\n createdBy: this.getIdentity()\n });\n\n const security = this.getSecurity();\n\n try {\n const manager = await this.getManager();\n\n const entryId = createLockRecordDatabaseId(record.id);\n const id = createIdentifier({\n id: entryId,\n version: 1\n });\n return await security.withoutAuthorization(async () => {\n const result = await manager.update(id, record.toObject());\n return this.convert(result);\n });\n } catch (ex) {\n throw new WebinyError(\n \"Could not update record with a unlock request.\",\n \"UNLOCK_REQUEST_ERROR\",\n {\n ...ex.data,\n error: {\n message: ex.message,\n code: ex.code\n },\n id: params.id,\n type: params.type,\n recordId: record.id\n }\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,26 +0,0 @@
1
- import type { IUpdateEntryLockUseCase, IUpdateEntryLockUseCaseExecuteParams } from "../../abstractions/IUpdateEntryLockUseCase";
2
- import type { IGetIdentity, IRecordLockingLockRecord, IRecordLockingModelManager } from "../../types";
3
- import type { IGetLockRecordUseCase } from "../../abstractions/IGetLockRecordUseCase";
4
- import type { ILockEntryUseCase } from "../../abstractions/ILockEntryUseCase";
5
- import type { ConvertEntryToLockRecordCb } from "../types";
6
- import type { Security } from "@webiny/api-security/types";
7
- export interface IUpdateEntryLockUseCaseParams {
8
- readonly getLockRecordUseCase: IGetLockRecordUseCase;
9
- readonly lockEntryUseCase: ILockEntryUseCase;
10
- getManager(): Promise<IRecordLockingModelManager>;
11
- getSecurity(): Pick<Security, "withoutAuthorization">;
12
- getIdentity: IGetIdentity;
13
- convert: ConvertEntryToLockRecordCb;
14
- }
15
- export declare class UpdateEntryLockUseCase implements IUpdateEntryLockUseCase {
16
- private readonly getLockRecordUseCase;
17
- private readonly lockEntryUseCase;
18
- private readonly getManager;
19
- private readonly getSecurity;
20
- private readonly getIdentity;
21
- private readonly convert;
22
- constructor(params: IUpdateEntryLockUseCaseParams);
23
- execute(params: IUpdateEntryLockUseCaseExecuteParams): Promise<IRecordLockingLockRecord>;
24
- private updateOverExistingLockRecord;
25
- private updateExistingLockRecord;
26
- }
@@ -1,93 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.UpdateEntryLockUseCase = void 0;
7
- var _error = require("@webiny/error");
8
- var _lockRecordDatabaseId = require("../../utils/lockRecordDatabaseId");
9
- var _utils = require("@webiny/utils");
10
- var _validateSameIdentity = require("../../utils/validateSameIdentity");
11
- class UpdateEntryLockUseCase {
12
- constructor(params) {
13
- this.getLockRecordUseCase = params.getLockRecordUseCase;
14
- this.lockEntryUseCase = params.lockEntryUseCase;
15
- this.getManager = params.getManager;
16
- this.getSecurity = params.getSecurity;
17
- this.getIdentity = params.getIdentity;
18
- this.convert = params.convert;
19
- }
20
- async execute(params) {
21
- /**
22
- * There is a possibility that the lock record already exists, just that the entry is not actually locked - lock expired.
23
- */
24
- const record = await this.getLockRecordUseCase.execute(params);
25
- /**
26
- * If it exists, we will update the record with new user and dates.
27
- * But if it does not exist, we will create a new record.
28
- */
29
- if (!record) {
30
- return this.lockEntryUseCase.execute(params);
31
- } else if (record.isExpired()) {
32
- return this.updateOverExistingLockRecord(record);
33
- }
34
- /**
35
- * If the record exists and is not expired, we need to check if the user is the same as the one who locked it.
36
- */
37
- (0, _validateSameIdentity.validateSameIdentity)({
38
- getIdentity: this.getIdentity,
39
- target: record.lockedBy
40
- });
41
- return this.updateExistingLockRecord(record);
42
- }
43
- async updateOverExistingLockRecord(record) {
44
- try {
45
- const manager = await this.getManager();
46
- const security = this.getSecurity();
47
- const identity = this.getIdentity();
48
- const entryId = (0, _lockRecordDatabaseId.createLockRecordDatabaseId)(record.id);
49
- const id = (0, _utils.createIdentifier)({
50
- id: entryId,
51
- version: 1
52
- });
53
- return await security.withoutAuthorization(async () => {
54
- const date = new Date().toISOString();
55
- const result = await manager.update(id, {
56
- savedOn: date,
57
- createdOn: date,
58
- savedBy: identity,
59
- createdBy: identity
60
- });
61
- return this.convert(result);
62
- });
63
- } catch (ex) {
64
- throw new _error.WebinyError(`Could not update lock entry: ${ex.message}`, ex.code || "UPDATE_LOCK_ENTRY_ERROR", {
65
- ...ex.data
66
- });
67
- }
68
- }
69
- async updateExistingLockRecord(record) {
70
- try {
71
- const manager = await this.getManager();
72
- const security = this.getSecurity();
73
- const entryId = (0, _lockRecordDatabaseId.createLockRecordDatabaseId)(record.id);
74
- const id = (0, _utils.createIdentifier)({
75
- id: entryId,
76
- version: 1
77
- });
78
- return await security.withoutAuthorization(async () => {
79
- const result = await manager.update(id, {
80
- savedOn: new Date().toISOString()
81
- });
82
- return this.convert(result);
83
- });
84
- } catch (ex) {
85
- throw new _error.WebinyError(`Could not update lock entry: ${ex.message}`, ex.code || "UPDATE_LOCK_ENTRY_ERROR", {
86
- ...ex.data
87
- });
88
- }
89
- }
90
- }
91
- exports.UpdateEntryLockUseCase = UpdateEntryLockUseCase;
92
-
93
- //# sourceMappingURL=UpdateEntryLockUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_error","require","_lockRecordDatabaseId","_utils","_validateSameIdentity","UpdateEntryLockUseCase","constructor","params","getLockRecordUseCase","lockEntryUseCase","getManager","getSecurity","getIdentity","convert","execute","record","isExpired","updateOverExistingLockRecord","validateSameIdentity","target","lockedBy","updateExistingLockRecord","manager","security","identity","entryId","createLockRecordDatabaseId","id","createIdentifier","version","withoutAuthorization","date","Date","toISOString","result","update","savedOn","createdOn","savedBy","createdBy","ex","WebinyError","message","code","data","exports"],"sources":["UpdateEntryLockUseCase.ts"],"sourcesContent":["import type {\n IUpdateEntryLockUseCase,\n IUpdateEntryLockUseCaseExecuteParams\n} from \"~/abstractions/IUpdateEntryLockUseCase\";\nimport type { IGetIdentity, IRecordLockingLockRecord, IRecordLockingModelManager } from \"~/types\";\nimport type { IGetLockRecordUseCase } from \"~/abstractions/IGetLockRecordUseCase\";\nimport { WebinyError } from \"@webiny/error\";\nimport { createLockRecordDatabaseId } from \"~/utils/lockRecordDatabaseId\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { validateSameIdentity } from \"~/utils/validateSameIdentity\";\nimport type { ILockEntryUseCase } from \"~/abstractions/ILockEntryUseCase\";\nimport type { ConvertEntryToLockRecordCb } from \"~/useCases/types\";\nimport type { Security } from \"@webiny/api-security/types\";\n\nexport interface IUpdateEntryLockUseCaseParams {\n readonly getLockRecordUseCase: IGetLockRecordUseCase;\n readonly lockEntryUseCase: ILockEntryUseCase;\n getManager(): Promise<IRecordLockingModelManager>;\n getSecurity(): Pick<Security, \"withoutAuthorization\">;\n getIdentity: IGetIdentity;\n convert: ConvertEntryToLockRecordCb;\n}\n\nexport class UpdateEntryLockUseCase implements IUpdateEntryLockUseCase {\n private readonly getLockRecordUseCase: IGetLockRecordUseCase;\n private readonly lockEntryUseCase: ILockEntryUseCase;\n private readonly getManager: IUpdateEntryLockUseCaseParams[\"getManager\"];\n private readonly getSecurity: IUpdateEntryLockUseCaseParams[\"getSecurity\"];\n private readonly getIdentity: IGetIdentity;\n private readonly convert: ConvertEntryToLockRecordCb;\n\n public constructor(params: IUpdateEntryLockUseCaseParams) {\n this.getLockRecordUseCase = params.getLockRecordUseCase;\n this.lockEntryUseCase = params.lockEntryUseCase;\n this.getManager = params.getManager;\n this.getSecurity = params.getSecurity;\n this.getIdentity = params.getIdentity;\n this.convert = params.convert;\n }\n\n public async execute(\n params: IUpdateEntryLockUseCaseExecuteParams\n ): Promise<IRecordLockingLockRecord> {\n /**\n * There is a possibility that the lock record already exists, just that the entry is not actually locked - lock expired.\n */\n const record = await this.getLockRecordUseCase.execute(params);\n /**\n * If it exists, we will update the record with new user and dates.\n * But if it does not exist, we will create a new record.\n */\n if (!record) {\n return this.lockEntryUseCase.execute(params);\n } else if (record.isExpired()) {\n return this.updateOverExistingLockRecord(record);\n }\n /**\n * If the record exists and is not expired, we need to check if the user is the same as the one who locked it.\n */\n validateSameIdentity({\n getIdentity: this.getIdentity,\n target: record.lockedBy\n });\n return this.updateExistingLockRecord(record);\n }\n\n private async updateOverExistingLockRecord(\n record: Pick<IRecordLockingLockRecord, \"id\">\n ): Promise<IRecordLockingLockRecord> {\n try {\n const manager = await this.getManager();\n const security = this.getSecurity();\n const identity = this.getIdentity();\n\n const entryId = createLockRecordDatabaseId(record.id);\n const id = createIdentifier({\n id: entryId,\n version: 1\n });\n return await security.withoutAuthorization(async () => {\n const date = new Date().toISOString();\n const result = await manager.update(id, {\n savedOn: date,\n createdOn: date,\n savedBy: identity,\n createdBy: identity\n });\n return this.convert(result);\n });\n } catch (ex) {\n throw new WebinyError(\n `Could not update lock entry: ${ex.message}`,\n ex.code || \"UPDATE_LOCK_ENTRY_ERROR\",\n {\n ...ex.data\n }\n );\n }\n }\n\n private async updateExistingLockRecord(\n record: Pick<IRecordLockingLockRecord, \"id\">\n ): Promise<IRecordLockingLockRecord> {\n try {\n const manager = await this.getManager();\n const security = this.getSecurity();\n\n const entryId = createLockRecordDatabaseId(record.id);\n const id = createIdentifier({\n id: entryId,\n version: 1\n });\n return await security.withoutAuthorization(async () => {\n const result = await manager.update(id, {\n savedOn: new Date().toISOString()\n });\n return this.convert(result);\n });\n } catch (ex) {\n throw new WebinyError(\n `Could not update lock entry: ${ex.message}`,\n ex.code || \"UPDATE_LOCK_ENTRY_ERROR\",\n {\n ...ex.data\n }\n );\n }\n }\n}\n"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AAcO,MAAMI,sBAAsB,CAAoC;EAQ5DC,WAAWA,CAACC,MAAqC,EAAE;IACtD,IAAI,CAACC,oBAAoB,GAAGD,MAAM,CAACC,oBAAoB;IACvD,IAAI,CAACC,gBAAgB,GAAGF,MAAM,CAACE,gBAAgB;IAC/C,IAAI,CAACC,UAAU,GAAGH,MAAM,CAACG,UAAU;IACnC,IAAI,CAACC,WAAW,GAAGJ,MAAM,CAACI,WAAW;IACrC,IAAI,CAACC,WAAW,GAAGL,MAAM,CAACK,WAAW;IACrC,IAAI,CAACC,OAAO,GAAGN,MAAM,CAACM,OAAO;EACjC;EAEA,MAAaC,OAAOA,CAChBP,MAA4C,EACX;IACjC;AACR;AACA;IACQ,MAAMQ,MAAM,GAAG,MAAM,IAAI,CAACP,oBAAoB,CAACM,OAAO,CAACP,MAAM,CAAC;IAC9D;AACR;AACA;AACA;IACQ,IAAI,CAACQ,MAAM,EAAE;MACT,OAAO,IAAI,CAACN,gBAAgB,CAACK,OAAO,CAACP,MAAM,CAAC;IAChD,CAAC,MAAM,IAAIQ,MAAM,CAACC,SAAS,CAAC,CAAC,EAAE;MAC3B,OAAO,IAAI,CAACC,4BAA4B,CAACF,MAAM,CAAC;IACpD;IACA;AACR;AACA;IACQ,IAAAG,0CAAoB,EAAC;MACjBN,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BO,MAAM,EAAEJ,MAAM,CAACK;IACnB,CAAC,CAAC;IACF,OAAO,IAAI,CAACC,wBAAwB,CAACN,MAAM,CAAC;EAChD;EAEA,MAAcE,4BAA4BA,CACtCF,MAA4C,EACX;IACjC,IAAI;MACA,MAAMO,OAAO,GAAG,MAAM,IAAI,CAACZ,UAAU,CAAC,CAAC;MACvC,MAAMa,QAAQ,GAAG,IAAI,CAACZ,WAAW,CAAC,CAAC;MACnC,MAAMa,QAAQ,GAAG,IAAI,CAACZ,WAAW,CAAC,CAAC;MAEnC,MAAMa,OAAO,GAAG,IAAAC,gDAA0B,EAACX,MAAM,CAACY,EAAE,CAAC;MACrD,MAAMA,EAAE,GAAG,IAAAC,uBAAgB,EAAC;QACxBD,EAAE,EAAEF,OAAO;QACXI,OAAO,EAAE;MACb,CAAC,CAAC;MACF,OAAO,MAAMN,QAAQ,CAACO,oBAAoB,CAAC,YAAY;QACnD,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;QACrC,MAAMC,MAAM,GAAG,MAAMZ,OAAO,CAACa,MAAM,CAACR,EAAE,EAAE;UACpCS,OAAO,EAAEL,IAAI;UACbM,SAAS,EAAEN,IAAI;UACfO,OAAO,EAAEd,QAAQ;UACjBe,SAAS,EAAEf;QACf,CAAC,CAAC;QACF,OAAO,IAAI,CAACX,OAAO,CAACqB,MAAM,CAAC;MAC/B,CAAC,CAAC;IACN,CAAC,CAAC,OAAOM,EAAE,EAAE;MACT,MAAM,IAAIC,kBAAW,CACjB,gCAAgCD,EAAE,CAACE,OAAO,EAAE,EAC5CF,EAAE,CAACG,IAAI,IAAI,yBAAyB,EACpC;QACI,GAAGH,EAAE,CAACI;MACV,CACJ,CAAC;IACL;EACJ;EAEA,MAAcvB,wBAAwBA,CAClCN,MAA4C,EACX;IACjC,IAAI;MACA,MAAMO,OAAO,GAAG,MAAM,IAAI,CAACZ,UAAU,CAAC,CAAC;MACvC,MAAMa,QAAQ,GAAG,IAAI,CAACZ,WAAW,CAAC,CAAC;MAEnC,MAAMc,OAAO,GAAG,IAAAC,gDAA0B,EAACX,MAAM,CAACY,EAAE,CAAC;MACrD,MAAMA,EAAE,GAAG,IAAAC,uBAAgB,EAAC;QACxBD,EAAE,EAAEF,OAAO;QACXI,OAAO,EAAE;MACb,CAAC,CAAC;MACF,OAAO,MAAMN,QAAQ,CAACO,oBAAoB,CAAC,YAAY;QACnD,MAAMI,MAAM,GAAG,MAAMZ,OAAO,CAACa,MAAM,CAACR,EAAE,EAAE;UACpCS,OAAO,EAAE,IAAIJ,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC;QACpC,CAAC,CAAC;QACF,OAAO,IAAI,CAACpB,OAAO,CAACqB,MAAM,CAAC;MAC/B,CAAC,CAAC;IACN,CAAC,CAAC,OAAOM,EAAE,EAAE;MACT,MAAM,IAAIC,kBAAW,CACjB,gCAAgCD,EAAE,CAACE,OAAO,EAAE,EAC5CF,EAAE,CAACG,IAAI,IAAI,yBAAyB,EACpC;QACI,GAAGH,EAAE,CAACI;MACV,CACJ,CAAC;IACL;EACJ;AACJ;AAACC,OAAA,CAAAxC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1,31 +0,0 @@
1
- import type { IGetIdentity, IGetWebsocketsContextCallable, IHasRecordLockingAccessCallable, IRecordLockingModelManager } from "../types";
2
- import type { IListAllLockRecordsUseCase } from "../abstractions/IListAllLockRecordsUseCase";
3
- import type { IListLockRecordsUseCase } from "../abstractions/IListLockRecordsUseCase";
4
- import type { IGetLockRecordUseCase } from "../abstractions/IGetLockRecordUseCase";
5
- import type { IIsEntryLockedUseCase } from "../abstractions/IIsEntryLocked";
6
- import type { IGetLockedEntryLockRecordUseCase } from "../abstractions/IGetLockedEntryLockRecordUseCase";
7
- import type { ILockEntryUseCase } from "../abstractions/ILockEntryUseCase";
8
- import type { IUpdateEntryLockUseCase } from "../abstractions/IUpdateEntryLockUseCase";
9
- import type { IUnlockEntryUseCase } from "../abstractions/IUnlockEntryUseCase";
10
- import type { IUnlockEntryRequestUseCase } from "../abstractions/IUnlockEntryRequestUseCase";
11
- import type { Security } from "@webiny/api-security/types";
12
- export interface ICreateUseCasesParams {
13
- getTimeout: () => number;
14
- getIdentity: IGetIdentity;
15
- getManager(): Promise<IRecordLockingModelManager>;
16
- getSecurity(): Pick<Security, "withoutAuthorization">;
17
- hasRecordLockingAccess: IHasRecordLockingAccessCallable;
18
- getWebsockets: IGetWebsocketsContextCallable;
19
- }
20
- export interface ICreateUseCasesResponse {
21
- listAllLockRecordsUseCase: IListAllLockRecordsUseCase;
22
- listLockRecordsUseCase: IListLockRecordsUseCase;
23
- getLockRecordUseCase: IGetLockRecordUseCase;
24
- isEntryLockedUseCase: IIsEntryLockedUseCase;
25
- getLockedEntryLockRecordUseCase: IGetLockedEntryLockRecordUseCase;
26
- lockEntryUseCase: ILockEntryUseCase;
27
- updateEntryLockUseCase: IUpdateEntryLockUseCase;
28
- unlockEntryUseCase: IUnlockEntryUseCase;
29
- unlockEntryRequestUseCase: IUnlockEntryRequestUseCase;
30
- }
31
- export declare const createUseCases: (params: ICreateUseCasesParams) => ICreateUseCasesResponse;
package/useCases/index.js DELETED
@@ -1,96 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createUseCases = void 0;
7
- var _GetLockRecordUseCase = require("./GetLockRecord/GetLockRecordUseCase");
8
- var _IsEntryLockedUseCase = require("./IsEntryLocked/IsEntryLockedUseCase");
9
- var _LockEntryUseCase = require("./LockEntryUseCase/LockEntryUseCase");
10
- var _UnlockEntryUseCase = require("./UnlockEntryUseCase/UnlockEntryUseCase");
11
- var _UnlockEntryRequestUseCase = require("./UnlockRequestUseCase/UnlockEntryRequestUseCase");
12
- var _ListAllLockRecordsUseCase = require("./ListAllLockRecordsUseCase/ListAllLockRecordsUseCase");
13
- var _ListLockRecordsUseCase = require("./ListLockRecordsUseCase/ListLockRecordsUseCase");
14
- var _UpdateEntryLockUseCase = require("./UpdateEntryLock/UpdateEntryLockUseCase");
15
- var _KickOutCurrentUserUseCase = require("./KickOutCurrentUser/KickOutCurrentUserUseCase");
16
- var _GetLockedEntryLockRecordUseCase = require("./GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase");
17
- var _convertEntryToLockRecord = require("../utils/convertEntryToLockRecord");
18
- const createUseCases = params => {
19
- const {
20
- getTimeout
21
- } = params;
22
- const timeout = getTimeout();
23
- const convertEntryToLockRecord = entry => {
24
- return (0, _convertEntryToLockRecord.convertEntryToLockRecord)(entry, timeout);
25
- };
26
- const listAllLockRecordsUseCase = new _ListAllLockRecordsUseCase.ListAllLockRecordsUseCase({
27
- getManager: params.getManager,
28
- convert: convertEntryToLockRecord
29
- });
30
- const listLockRecordsUseCase = new _ListLockRecordsUseCase.ListLockRecordsUseCase({
31
- listAllLockRecordsUseCase,
32
- timeout,
33
- getIdentity: params.getIdentity
34
- });
35
- const getLockRecordUseCase = new _GetLockRecordUseCase.GetLockRecordUseCase({
36
- getManager: params.getManager,
37
- getSecurity: params.getSecurity,
38
- convert: convertEntryToLockRecord
39
- });
40
- const isEntryLockedUseCase = new _IsEntryLockedUseCase.IsEntryLockedUseCase({
41
- getLockRecordUseCase,
42
- getIdentity: params.getIdentity
43
- });
44
- const getLockedEntryLockRecordUseCase = new _GetLockedEntryLockRecordUseCase.GetLockedEntryLockRecordUseCase({
45
- getLockRecordUseCase,
46
- getIdentity: params.getIdentity
47
- });
48
- const lockEntryUseCase = new _LockEntryUseCase.LockEntryUseCase({
49
- isEntryLockedUseCase,
50
- getManager: params.getManager,
51
- getSecurity: params.getSecurity,
52
- getIdentity: params.getIdentity,
53
- convert: convertEntryToLockRecord
54
- });
55
- const updateEntryLockUseCase = new _UpdateEntryLockUseCase.UpdateEntryLockUseCase({
56
- getLockRecordUseCase,
57
- lockEntryUseCase,
58
- getManager: params.getManager,
59
- getSecurity: params.getSecurity,
60
- getIdentity: params.getIdentity,
61
- convert: convertEntryToLockRecord
62
- });
63
- const kickOutCurrentUserUseCase = new _KickOutCurrentUserUseCase.KickOutCurrentUserUseCase({
64
- getWebsockets: params.getWebsockets,
65
- getIdentity: params.getIdentity
66
- });
67
- const unlockEntryUseCase = new _UnlockEntryUseCase.UnlockEntryUseCase({
68
- getLockRecordUseCase,
69
- kickOutCurrentUserUseCase,
70
- getManager: params.getManager,
71
- getSecurity: params.getSecurity,
72
- getIdentity: params.getIdentity,
73
- hasRecordLockingAccess: params.hasRecordLockingAccess
74
- });
75
- const unlockEntryRequestUseCase = new _UnlockEntryRequestUseCase.UnlockEntryRequestUseCase({
76
- getLockRecordUseCase,
77
- getIdentity: params.getIdentity,
78
- getSecurity: params.getSecurity,
79
- getManager: params.getManager,
80
- convert: convertEntryToLockRecord
81
- });
82
- return {
83
- listAllLockRecordsUseCase,
84
- listLockRecordsUseCase,
85
- getLockRecordUseCase,
86
- isEntryLockedUseCase,
87
- getLockedEntryLockRecordUseCase,
88
- lockEntryUseCase,
89
- updateEntryLockUseCase,
90
- unlockEntryUseCase,
91
- unlockEntryRequestUseCase
92
- };
93
- };
94
- exports.createUseCases = createUseCases;
95
-
96
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_GetLockRecordUseCase","require","_IsEntryLockedUseCase","_LockEntryUseCase","_UnlockEntryUseCase","_UnlockEntryRequestUseCase","_ListAllLockRecordsUseCase","_ListLockRecordsUseCase","_UpdateEntryLockUseCase","_KickOutCurrentUserUseCase","_GetLockedEntryLockRecordUseCase","_convertEntryToLockRecord","createUseCases","params","getTimeout","timeout","convertEntryToLockRecord","entry","baseConvertEntryToLockRecord","listAllLockRecordsUseCase","ListAllLockRecordsUseCase","getManager","convert","listLockRecordsUseCase","ListLockRecordsUseCase","getIdentity","getLockRecordUseCase","GetLockRecordUseCase","getSecurity","isEntryLockedUseCase","IsEntryLockedUseCase","getLockedEntryLockRecordUseCase","GetLockedEntryLockRecordUseCase","lockEntryUseCase","LockEntryUseCase","updateEntryLockUseCase","UpdateEntryLockUseCase","kickOutCurrentUserUseCase","KickOutCurrentUserUseCase","getWebsockets","unlockEntryUseCase","UnlockEntryUseCase","hasRecordLockingAccess","unlockEntryRequestUseCase","UnlockEntryRequestUseCase","exports"],"sources":["index.ts"],"sourcesContent":["import type {\n IGetIdentity,\n IGetWebsocketsContextCallable,\n IHasRecordLockingAccessCallable,\n IRecordLockingModelManager\n} from \"~/types\";\nimport { GetLockRecordUseCase } from \"./GetLockRecord/GetLockRecordUseCase\";\nimport { IsEntryLockedUseCase } from \"./IsEntryLocked/IsEntryLockedUseCase\";\nimport { LockEntryUseCase } from \"./LockEntryUseCase/LockEntryUseCase\";\nimport { UnlockEntryUseCase } from \"./UnlockEntryUseCase/UnlockEntryUseCase\";\nimport { UnlockEntryRequestUseCase } from \"./UnlockRequestUseCase/UnlockEntryRequestUseCase\";\nimport { ListAllLockRecordsUseCase } from \"./ListAllLockRecordsUseCase/ListAllLockRecordsUseCase\";\nimport { ListLockRecordsUseCase } from \"./ListLockRecordsUseCase/ListLockRecordsUseCase\";\nimport { UpdateEntryLockUseCase } from \"~/useCases/UpdateEntryLock/UpdateEntryLockUseCase\";\nimport { KickOutCurrentUserUseCase } from \"./KickOutCurrentUser/KickOutCurrentUserUseCase\";\nimport { GetLockedEntryLockRecordUseCase } from \"~/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase\";\nimport type { IListAllLockRecordsUseCase } from \"~/abstractions/IListAllLockRecordsUseCase\";\nimport type { IListLockRecordsUseCase } from \"~/abstractions/IListLockRecordsUseCase\";\nimport type { IGetLockRecordUseCase } from \"~/abstractions/IGetLockRecordUseCase\";\nimport type { IIsEntryLockedUseCase } from \"~/abstractions/IIsEntryLocked\";\nimport type { IGetLockedEntryLockRecordUseCase } from \"~/abstractions/IGetLockedEntryLockRecordUseCase\";\nimport type { ILockEntryUseCase } from \"~/abstractions/ILockEntryUseCase\";\nimport type { IUpdateEntryLockUseCase } from \"~/abstractions/IUpdateEntryLockUseCase\";\nimport type { IUnlockEntryUseCase } from \"~/abstractions/IUnlockEntryUseCase\";\nimport type { IUnlockEntryRequestUseCase } from \"~/abstractions/IUnlockEntryRequestUseCase\";\nimport { convertEntryToLockRecord as baseConvertEntryToLockRecord } from \"~/utils/convertEntryToLockRecord\";\nimport type { ConvertEntryToLockRecordCb } from \"~/useCases/types\";\nimport type { Security } from \"@webiny/api-security/types\";\n\nexport interface ICreateUseCasesParams {\n getTimeout: () => number;\n getIdentity: IGetIdentity;\n getManager(): Promise<IRecordLockingModelManager>;\n getSecurity(): Pick<Security, \"withoutAuthorization\">;\n hasRecordLockingAccess: IHasRecordLockingAccessCallable;\n getWebsockets: IGetWebsocketsContextCallable;\n}\n\nexport interface ICreateUseCasesResponse {\n listAllLockRecordsUseCase: IListAllLockRecordsUseCase;\n listLockRecordsUseCase: IListLockRecordsUseCase;\n getLockRecordUseCase: IGetLockRecordUseCase;\n isEntryLockedUseCase: IIsEntryLockedUseCase;\n getLockedEntryLockRecordUseCase: IGetLockedEntryLockRecordUseCase;\n lockEntryUseCase: ILockEntryUseCase;\n updateEntryLockUseCase: IUpdateEntryLockUseCase;\n unlockEntryUseCase: IUnlockEntryUseCase;\n unlockEntryRequestUseCase: IUnlockEntryRequestUseCase;\n}\n\nexport const createUseCases = (params: ICreateUseCasesParams): ICreateUseCasesResponse => {\n const { getTimeout } = params;\n const timeout = getTimeout();\n\n const convertEntryToLockRecord: ConvertEntryToLockRecordCb = entry => {\n return baseConvertEntryToLockRecord(entry, timeout);\n };\n\n const listAllLockRecordsUseCase = new ListAllLockRecordsUseCase({\n getManager: params.getManager,\n convert: convertEntryToLockRecord\n });\n\n const listLockRecordsUseCase = new ListLockRecordsUseCase({\n listAllLockRecordsUseCase,\n timeout,\n getIdentity: params.getIdentity\n });\n\n const getLockRecordUseCase = new GetLockRecordUseCase({\n getManager: params.getManager,\n getSecurity: params.getSecurity,\n convert: convertEntryToLockRecord\n });\n\n const isEntryLockedUseCase = new IsEntryLockedUseCase({\n getLockRecordUseCase,\n getIdentity: params.getIdentity\n });\n\n const getLockedEntryLockRecordUseCase = new GetLockedEntryLockRecordUseCase({\n getLockRecordUseCase,\n getIdentity: params.getIdentity\n });\n\n const lockEntryUseCase = new LockEntryUseCase({\n isEntryLockedUseCase,\n getManager: params.getManager,\n getSecurity: params.getSecurity,\n getIdentity: params.getIdentity,\n convert: convertEntryToLockRecord\n });\n\n const updateEntryLockUseCase = new UpdateEntryLockUseCase({\n getLockRecordUseCase,\n lockEntryUseCase,\n getManager: params.getManager,\n getSecurity: params.getSecurity,\n getIdentity: params.getIdentity,\n convert: convertEntryToLockRecord\n });\n\n const kickOutCurrentUserUseCase = new KickOutCurrentUserUseCase({\n getWebsockets: params.getWebsockets,\n getIdentity: params.getIdentity\n });\n\n const unlockEntryUseCase = new UnlockEntryUseCase({\n getLockRecordUseCase,\n kickOutCurrentUserUseCase,\n getManager: params.getManager,\n getSecurity: params.getSecurity,\n getIdentity: params.getIdentity,\n hasRecordLockingAccess: params.hasRecordLockingAccess\n });\n\n const unlockEntryRequestUseCase = new UnlockEntryRequestUseCase({\n getLockRecordUseCase,\n getIdentity: params.getIdentity,\n getSecurity: params.getSecurity,\n getManager: params.getManager,\n convert: convertEntryToLockRecord\n });\n\n return {\n listAllLockRecordsUseCase,\n listLockRecordsUseCase,\n getLockRecordUseCase,\n isEntryLockedUseCase,\n getLockedEntryLockRecordUseCase,\n lockEntryUseCase,\n updateEntryLockUseCase,\n unlockEntryUseCase,\n unlockEntryRequestUseCase\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- import type { CmsEntry } from "@webiny/api-headless-cms/types";
2
- import type { IRecordLockingLockRecord, IRecordLockingLockRecordValues } from "../types";
3
- export interface ConvertEntryToLockRecordCb {
4
- (entry: CmsEntry<IRecordLockingLockRecordValues>): IRecordLockingLockRecord;
5
- }
package/useCases/types.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport type { IRecordLockingLockRecord, IRecordLockingLockRecordValues } from \"~/types\";\n\nexport interface ConvertEntryToLockRecordCb {\n (entry: CmsEntry<IRecordLockingLockRecordValues>): IRecordLockingLockRecord;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import type { IHeadlessCmsLockRecordParams } from "./convertEntryToLockRecord";
2
- export declare const calculateExpiresOn: (input: Pick<IHeadlessCmsLockRecordParams, "savedOn">, timeout: number) => Date;
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.calculateExpiresOn = void 0;
7
- const calculateExpiresOn = (input, timeout) => {
8
- if (!input.savedOn) {
9
- throw new Error("Missing savedOn property.");
10
- }
11
- const savedOn = new Date(input.savedOn);
12
- return new Date(savedOn.getTime() + timeout);
13
- };
14
- exports.calculateExpiresOn = calculateExpiresOn;
15
-
16
- //# sourceMappingURL=calculateExpiresOn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["calculateExpiresOn","input","timeout","savedOn","Error","Date","getTime","exports"],"sources":["calculateExpiresOn.ts"],"sourcesContent":["import type { IHeadlessCmsLockRecordParams } from \"./convertEntryToLockRecord\";\n\nexport const calculateExpiresOn = (\n input: Pick<IHeadlessCmsLockRecordParams, \"savedOn\">,\n timeout: number\n): Date => {\n if (!input.savedOn) {\n throw new Error(\"Missing savedOn property.\");\n }\n const savedOn = new Date(input.savedOn);\n\n return new Date(savedOn.getTime() + timeout);\n};\n"],"mappings":";;;;;;AAEO,MAAMA,kBAAkB,GAAGA,CAC9BC,KAAoD,EACpDC,OAAe,KACR;EACP,IAAI,CAACD,KAAK,CAACE,OAAO,EAAE;IAChB,MAAM,IAAIC,KAAK,CAAC,2BAA2B,CAAC;EAChD;EACA,MAAMD,OAAO,GAAG,IAAIE,IAAI,CAACJ,KAAK,CAACE,OAAO,CAAC;EAEvC,OAAO,IAAIE,IAAI,CAACF,OAAO,CAACG,OAAO,CAAC,CAAC,GAAGJ,OAAO,CAAC;AAChD,CAAC;AAACK,OAAA,CAAAP,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -1,7 +0,0 @@
1
- import type { Context } from "../types";
2
- /**
3
- * Simple permission check. Only full access can access the websockets API via GraphQL - ({name: "*"})
4
- *
5
- * @throws
6
- */
7
- export declare const checkPermissions: (context: Pick<Context, "security">) => Promise<void>;
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.checkPermissions = void 0;
7
- var _apiSecurity = require("@webiny/api-security");
8
- /**
9
- * Simple permission check. Only full access can access the websockets API via GraphQL - ({name: "*"})
10
- *
11
- * @throws
12
- */
13
- const checkPermissions = async context => {
14
- const identity = context.security.getIdentity();
15
- if (!identity.id) {
16
- throw new _apiSecurity.NotAuthorizedError();
17
- }
18
- };
19
- exports.checkPermissions = checkPermissions;
20
-
21
- //# sourceMappingURL=checkPermissions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_apiSecurity","require","checkPermissions","context","identity","security","getIdentity","id","NotAuthorizedError","exports"],"sources":["checkPermissions.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport type { Context } from \"~/types\";\n\n/**\n * Simple permission check. Only full access can access the websockets API via GraphQL - ({name: \"*\"})\n *\n * @throws\n */\nexport const checkPermissions = async (context: Pick<Context, \"security\">): Promise<void> => {\n const identity = context.security.getIdentity();\n if (!identity.id) {\n throw new NotAuthorizedError();\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAG,MAAOC,OAAkC,IAAoB;EACzF,MAAMC,QAAQ,GAAGD,OAAO,CAACE,QAAQ,CAACC,WAAW,CAAC,CAAC;EAC/C,IAAI,CAACF,QAAQ,CAACG,EAAE,EAAE;IACd,MAAM,IAAIC,+BAAkB,CAAC,CAAC;EAClC;AACJ,CAAC;AAACC,OAAA,CAAAP,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1,28 +0,0 @@
1
- import type { CmsEntry, IRecordLockingIdentity, IRecordLockingLockRecord, IRecordLockingLockRecordAction, IRecordLockingLockRecordApprovedAction, IRecordLockingLockRecordDeniedAction, IRecordLockingLockRecordEntryType, IRecordLockingLockRecordObject, IRecordLockingLockRecordRequestedAction, IRecordLockingLockRecordValues } from "../types";
2
- export declare const convertEntryToLockRecord: (entry: CmsEntry<IRecordLockingLockRecordValues>, timeout: number) => IRecordLockingLockRecord;
3
- export type IHeadlessCmsLockRecordParams = Pick<CmsEntry<IRecordLockingLockRecordValues>, "entryId" | "values" | "createdBy" | "createdOn" | "savedOn">;
4
- export declare class HeadlessCmsLockRecord implements IRecordLockingLockRecord {
5
- private readonly _id;
6
- private readonly _targetId;
7
- private readonly _type;
8
- private readonly _lockedBy;
9
- private readonly _lockedOn;
10
- private readonly _updatedOn;
11
- private readonly _expiresOn;
12
- private _actions?;
13
- get id(): string;
14
- get targetId(): string;
15
- get type(): IRecordLockingLockRecordEntryType;
16
- get lockedBy(): IRecordLockingIdentity;
17
- get lockedOn(): Date;
18
- get updatedOn(): Date;
19
- get expiresOn(): Date;
20
- get actions(): IRecordLockingLockRecordAction[] | undefined;
21
- constructor(input: IHeadlessCmsLockRecordParams, timeout: number);
22
- toObject(): IRecordLockingLockRecordObject;
23
- addAction(action: IRecordLockingLockRecordAction): void;
24
- getUnlockRequested(): IRecordLockingLockRecordRequestedAction | undefined;
25
- getUnlockApproved(): IRecordLockingLockRecordApprovedAction | undefined;
26
- getUnlockDenied(): IRecordLockingLockRecordDeniedAction | undefined;
27
- isExpired(): boolean;
28
- }
@@ -1,91 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.convertEntryToLockRecord = exports.HeadlessCmsLockRecord = void 0;
7
- var _types = require("../types");
8
- var _lockRecordDatabaseId = require("./lockRecordDatabaseId");
9
- var _calculateExpiresOn = require("./calculateExpiresOn");
10
- const convertEntryToLockRecord = (entry, timeout) => {
11
- return new HeadlessCmsLockRecord(entry, timeout);
12
- };
13
- exports.convertEntryToLockRecord = convertEntryToLockRecord;
14
- class HeadlessCmsLockRecord {
15
- get id() {
16
- return this._id;
17
- }
18
- get targetId() {
19
- return this._targetId;
20
- }
21
- get type() {
22
- return this._type;
23
- }
24
- get lockedBy() {
25
- return this._lockedBy;
26
- }
27
- get lockedOn() {
28
- return this._lockedOn;
29
- }
30
- get updatedOn() {
31
- return this._updatedOn;
32
- }
33
- get expiresOn() {
34
- return this._expiresOn;
35
- }
36
- get actions() {
37
- return this._actions;
38
- }
39
- constructor(input, timeout) {
40
- this._id = (0, _lockRecordDatabaseId.removeLockRecordDatabasePrefix)(input.entryId);
41
- this._targetId = input.values.targetId;
42
- this._type = input.values.type;
43
- this._lockedBy = input.createdBy;
44
- this._lockedOn = new Date(input.createdOn);
45
- this._updatedOn = new Date(input.savedOn);
46
- this._expiresOn = (0, _calculateExpiresOn.calculateExpiresOn)(input, timeout);
47
- this._actions = input.values.actions;
48
- }
49
- toObject() {
50
- return {
51
- id: this._id,
52
- targetId: this._targetId,
53
- type: this._type,
54
- lockedBy: this._lockedBy,
55
- lockedOn: this._lockedOn,
56
- updatedOn: this._updatedOn,
57
- expiresOn: this._expiresOn,
58
- actions: this._actions
59
- };
60
- }
61
- addAction(action) {
62
- if (!this._actions) {
63
- this._actions = [];
64
- }
65
- this._actions.push(action);
66
- }
67
- getUnlockRequested() {
68
- if (!this._actions?.length) {
69
- return undefined;
70
- }
71
- return this._actions.find(action => action.type === _types.RecordLockingLockRecordActionType.requested);
72
- }
73
- getUnlockApproved() {
74
- if (!this._actions?.length) {
75
- return undefined;
76
- }
77
- return this._actions.find(action => action.type === _types.RecordLockingLockRecordActionType.approved);
78
- }
79
- getUnlockDenied() {
80
- if (!this._actions?.length) {
81
- return undefined;
82
- }
83
- return this._actions.find(action => action.type === _types.RecordLockingLockRecordActionType.denied);
84
- }
85
- isExpired() {
86
- return this._expiresOn.getTime() < new Date().getTime();
87
- }
88
- }
89
- exports.HeadlessCmsLockRecord = HeadlessCmsLockRecord;
90
-
91
- //# sourceMappingURL=convertEntryToLockRecord.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_types","require","_lockRecordDatabaseId","_calculateExpiresOn","convertEntryToLockRecord","entry","timeout","HeadlessCmsLockRecord","exports","id","_id","targetId","_targetId","type","_type","lockedBy","_lockedBy","lockedOn","_lockedOn","updatedOn","_updatedOn","expiresOn","_expiresOn","actions","_actions","constructor","input","removeLockRecordDatabasePrefix","entryId","values","createdBy","Date","createdOn","savedOn","calculateExpiresOn","toObject","addAction","action","push","getUnlockRequested","length","undefined","find","RecordLockingLockRecordActionType","requested","getUnlockApproved","approved","getUnlockDenied","denied","isExpired","getTime"],"sources":["convertEntryToLockRecord.ts"],"sourcesContent":["import type {\n CmsEntry,\n IRecordLockingIdentity,\n IRecordLockingLockRecord,\n IRecordLockingLockRecordAction,\n IRecordLockingLockRecordApprovedAction,\n IRecordLockingLockRecordDeniedAction,\n IRecordLockingLockRecordEntryType,\n IRecordLockingLockRecordObject,\n IRecordLockingLockRecordRequestedAction,\n IRecordLockingLockRecordValues\n} from \"~/types\";\nimport { RecordLockingLockRecordActionType } from \"~/types\";\nimport { removeLockRecordDatabasePrefix } from \"~/utils/lockRecordDatabaseId\";\nimport { calculateExpiresOn } from \"~/utils/calculateExpiresOn\";\n\nexport const convertEntryToLockRecord = (\n entry: CmsEntry<IRecordLockingLockRecordValues>,\n timeout: number\n): IRecordLockingLockRecord => {\n return new HeadlessCmsLockRecord(entry, timeout);\n};\n\nexport type IHeadlessCmsLockRecordParams = Pick<\n CmsEntry<IRecordLockingLockRecordValues>,\n \"entryId\" | \"values\" | \"createdBy\" | \"createdOn\" | \"savedOn\"\n>;\n\nexport class HeadlessCmsLockRecord implements IRecordLockingLockRecord {\n private readonly _id: string;\n private readonly _targetId: string;\n private readonly _type: IRecordLockingLockRecordEntryType;\n private readonly _lockedBy: IRecordLockingIdentity;\n private readonly _lockedOn: Date;\n private readonly _updatedOn: Date;\n private readonly _expiresOn: Date;\n private _actions?: IRecordLockingLockRecordAction[];\n\n public get id(): string {\n return this._id;\n }\n\n public get targetId(): string {\n return this._targetId;\n }\n\n public get type(): IRecordLockingLockRecordEntryType {\n return this._type;\n }\n\n public get lockedBy(): IRecordLockingIdentity {\n return this._lockedBy;\n }\n\n public get lockedOn(): Date {\n return this._lockedOn;\n }\n\n public get updatedOn(): Date {\n return this._updatedOn;\n }\n\n public get expiresOn(): Date {\n return this._expiresOn;\n }\n\n public get actions(): IRecordLockingLockRecordAction[] | undefined {\n return this._actions;\n }\n\n public constructor(input: IHeadlessCmsLockRecordParams, timeout: number) {\n this._id = removeLockRecordDatabasePrefix(input.entryId);\n this._targetId = input.values.targetId;\n this._type = input.values.type;\n this._lockedBy = input.createdBy;\n this._lockedOn = new Date(input.createdOn);\n this._updatedOn = new Date(input.savedOn);\n this._expiresOn = calculateExpiresOn(input, timeout);\n this._actions = input.values.actions;\n }\n\n public toObject(): IRecordLockingLockRecordObject {\n return {\n id: this._id,\n targetId: this._targetId,\n type: this._type,\n lockedBy: this._lockedBy,\n lockedOn: this._lockedOn,\n updatedOn: this._updatedOn,\n expiresOn: this._expiresOn,\n actions: this._actions\n };\n }\n\n public addAction(action: IRecordLockingLockRecordAction) {\n if (!this._actions) {\n this._actions = [];\n }\n this._actions.push(action);\n }\n\n public getUnlockRequested(): IRecordLockingLockRecordRequestedAction | undefined {\n if (!this._actions?.length) {\n return undefined;\n }\n return this._actions.find(\n (action): action is IRecordLockingLockRecordRequestedAction =>\n action.type === RecordLockingLockRecordActionType.requested\n );\n }\n\n public getUnlockApproved(): IRecordLockingLockRecordApprovedAction | undefined {\n if (!this._actions?.length) {\n return undefined;\n }\n return this._actions.find(\n (action): action is IRecordLockingLockRecordApprovedAction =>\n action.type === RecordLockingLockRecordActionType.approved\n );\n }\n\n public getUnlockDenied(): IRecordLockingLockRecordDeniedAction | undefined {\n if (!this._actions?.length) {\n return undefined;\n }\n return this._actions.find(\n (action): action is IRecordLockingLockRecordDeniedAction =>\n action.type === RecordLockingLockRecordActionType.denied\n );\n }\n\n public isExpired(): boolean {\n return this._expiresOn.getTime() < new Date().getTime();\n }\n}\n"],"mappings":"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","ignoreList":[]}