@webiny/api-record-locking 0.0.0-unstable.eb196ccd2f → 0.0.0-unstable.eb81deee7e

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 (294) hide show
  1. package/README.md +10 -9
  2. package/RecordLockingAppFeature.d.ts +11 -0
  3. package/RecordLockingAppFeature.js +20 -0
  4. package/RecordLockingAppFeature.js.map +1 -0
  5. package/domain/LockRecord.d.ts +45 -0
  6. package/domain/LockRecord.js +73 -0
  7. package/domain/LockRecord.js.map +1 -0
  8. package/domain/RecordLockingModel.d.ts +9 -0
  9. package/domain/RecordLockingModel.js +33 -0
  10. package/domain/RecordLockingModel.js.map +1 -0
  11. package/domain/abstractions.d.ts +24 -0
  12. package/domain/abstractions.js +6 -0
  13. package/domain/abstractions.js.map +1 -0
  14. package/domain/calculateExpiresOn.d.ts +1 -0
  15. package/domain/calculateExpiresOn.js +8 -0
  16. package/domain/calculateExpiresOn.js.map +1 -0
  17. package/domain/errors.d.ts +71 -0
  18. package/domain/errors.js +85 -0
  19. package/domain/errors.js.map +1 -0
  20. package/domain/index.d.ts +4 -0
  21. package/domain/index.js +4 -0
  22. package/domain/types.d.ts +44 -0
  23. package/domain/types.js +9 -0
  24. package/domain/types.js.map +1 -0
  25. package/features/GetLockRecord/GetLockRecordRepository.d.ts +17 -0
  26. package/features/GetLockRecord/GetLockRecordRepository.js +45 -0
  27. package/features/GetLockRecord/GetLockRecordRepository.js.map +1 -0
  28. package/features/GetLockRecord/GetLockRecordUseCase.d.ts +12 -0
  29. package/features/GetLockRecord/GetLockRecordUseCase.js +18 -0
  30. package/features/GetLockRecord/GetLockRecordUseCase.js.map +1 -0
  31. package/features/GetLockRecord/abstractions.d.ts +41 -0
  32. package/features/GetLockRecord/abstractions.js +6 -0
  33. package/features/GetLockRecord/abstractions.js.map +1 -0
  34. package/features/GetLockRecord/feature.d.ts +4 -0
  35. package/features/GetLockRecord/feature.js +13 -0
  36. package/features/GetLockRecord/feature.js.map +1 -0
  37. package/features/GetLockRecord/index.d.ts +2 -0
  38. package/features/GetLockRecord/index.js +2 -0
  39. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.d.ts +15 -0
  40. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js +30 -0
  41. package/features/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js.map +1 -0
  42. package/features/GetLockedEntryLockRecord/abstractions.d.ts +26 -0
  43. package/features/GetLockedEntryLockRecord/abstractions.js +5 -0
  44. package/features/GetLockedEntryLockRecord/abstractions.js.map +1 -0
  45. package/features/GetLockedEntryLockRecord/feature.d.ts +4 -0
  46. package/features/GetLockedEntryLockRecord/feature.js +11 -0
  47. package/features/GetLockedEntryLockRecord/feature.js.map +1 -0
  48. package/features/GetLockedEntryLockRecord/index.d.ts +2 -0
  49. package/features/GetLockedEntryLockRecord/index.js +2 -0
  50. package/features/IsEntryLocked/IsEntryLockedUseCase.d.ts +14 -0
  51. package/features/IsEntryLocked/IsEntryLockedUseCase.js +33 -0
  52. package/features/IsEntryLocked/IsEntryLockedUseCase.js.map +1 -0
  53. package/features/IsEntryLocked/abstractions.d.ts +24 -0
  54. package/features/IsEntryLocked/abstractions.js +5 -0
  55. package/features/IsEntryLocked/abstractions.js.map +1 -0
  56. package/features/IsEntryLocked/feature.d.ts +4 -0
  57. package/features/IsEntryLocked/feature.js +11 -0
  58. package/features/IsEntryLocked/feature.js.map +1 -0
  59. package/features/IsEntryLocked/index.d.ts +1 -0
  60. package/features/IsEntryLocked/index.js +1 -0
  61. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.d.ts +15 -0
  62. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.js +36 -0
  63. package/features/KickOutCurrentUser/KickOutCurrentUserUseCase.js.map +1 -0
  64. package/features/KickOutCurrentUser/abstractions.d.ts +17 -0
  65. package/features/KickOutCurrentUser/abstractions.js +5 -0
  66. package/features/KickOutCurrentUser/abstractions.js.map +1 -0
  67. package/features/KickOutCurrentUser/feature.d.ts +4 -0
  68. package/features/KickOutCurrentUser/feature.js +11 -0
  69. package/features/KickOutCurrentUser/feature.js.map +1 -0
  70. package/features/KickOutCurrentUser/index.d.ts +1 -0
  71. package/features/KickOutCurrentUser/index.js +1 -0
  72. package/features/ListAllLockRecords/ListAllLockRecordsRepository.d.ts +18 -0
  73. package/features/ListAllLockRecords/ListAllLockRecordsRepository.js +50 -0
  74. package/features/ListAllLockRecords/ListAllLockRecordsRepository.js.map +1 -0
  75. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.d.ts +11 -0
  76. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.js +18 -0
  77. package/features/ListAllLockRecords/ListAllLockRecordsUseCase.js.map +1 -0
  78. package/features/ListAllLockRecords/abstractions.d.ts +40 -0
  79. package/features/ListAllLockRecords/abstractions.js +6 -0
  80. package/features/ListAllLockRecords/abstractions.js.map +1 -0
  81. package/features/ListAllLockRecords/feature.d.ts +4 -0
  82. package/features/ListAllLockRecords/feature.js +13 -0
  83. package/features/ListAllLockRecords/feature.js.map +1 -0
  84. package/features/ListAllLockRecords/index.d.ts +2 -0
  85. package/features/ListAllLockRecords/index.js +2 -0
  86. package/features/ListLockRecords/ListLockRecordsRepository.d.ts +18 -0
  87. package/features/ListLockRecords/ListLockRecordsRepository.js +50 -0
  88. package/features/ListLockRecords/ListLockRecordsRepository.js.map +1 -0
  89. package/features/ListLockRecords/ListLockRecordsUseCase.d.ts +15 -0
  90. package/features/ListLockRecords/ListLockRecordsUseCase.js +33 -0
  91. package/features/ListLockRecords/ListLockRecordsUseCase.js.map +1 -0
  92. package/features/ListLockRecords/abstractions.d.ts +45 -0
  93. package/features/ListLockRecords/abstractions.js +6 -0
  94. package/features/ListLockRecords/abstractions.js.map +1 -0
  95. package/features/ListLockRecords/feature.d.ts +4 -0
  96. package/features/ListLockRecords/feature.js +13 -0
  97. package/features/ListLockRecords/feature.js.map +1 -0
  98. package/features/ListLockRecords/index.d.ts +1 -0
  99. package/features/ListLockRecords/index.js +1 -0
  100. package/features/LockEntry/LockEntryEventsDecorator.d.ts +14 -0
  101. package/features/LockEntry/LockEntryEventsDecorator.js +40 -0
  102. package/features/LockEntry/LockEntryEventsDecorator.js.map +1 -0
  103. package/features/LockEntry/LockEntryRepository.d.ts +17 -0
  104. package/features/LockEntry/LockEntryRepository.js +46 -0
  105. package/features/LockEntry/LockEntryRepository.js.map +1 -0
  106. package/features/LockEntry/LockEntryUseCase.d.ts +14 -0
  107. package/features/LockEntry/LockEntryUseCase.js +31 -0
  108. package/features/LockEntry/LockEntryUseCase.js.map +1 -0
  109. package/features/LockEntry/abstractions.d.ts +41 -0
  110. package/features/LockEntry/abstractions.js +6 -0
  111. package/features/LockEntry/abstractions.js.map +1 -0
  112. package/features/LockEntry/events.d.ts +45 -0
  113. package/features/LockEntry/events.js +32 -0
  114. package/features/LockEntry/events.js.map +1 -0
  115. package/features/LockEntry/feature.d.ts +4 -0
  116. package/features/LockEntry/feature.js +15 -0
  117. package/features/LockEntry/feature.js.map +1 -0
  118. package/features/LockEntry/index.d.ts +1 -0
  119. package/features/LockEntry/index.js +1 -0
  120. package/features/RecordLockingFeature.d.ts +10 -0
  121. package/features/RecordLockingFeature.js +35 -0
  122. package/features/RecordLockingFeature.js.map +1 -0
  123. package/features/RecordLockingModelProvider.d.ts +18 -0
  124. package/features/RecordLockingModelProvider.js +22 -0
  125. package/features/RecordLockingModelProvider.js.map +1 -0
  126. package/features/UnlockEntry/UnlockEntryEventsDecorator.d.ts +14 -0
  127. package/features/UnlockEntry/UnlockEntryEventsDecorator.js +41 -0
  128. package/features/UnlockEntry/UnlockEntryEventsDecorator.js.map +1 -0
  129. package/features/UnlockEntry/UnlockEntryRepository.d.ts +14 -0
  130. package/features/UnlockEntry/UnlockEntryRepository.js +43 -0
  131. package/features/UnlockEntry/UnlockEntryRepository.js.map +1 -0
  132. package/features/UnlockEntry/UnlockEntryUseCase.d.ts +18 -0
  133. package/features/UnlockEntry/UnlockEntryUseCase.js +65 -0
  134. package/features/UnlockEntry/UnlockEntryUseCase.js.map +1 -0
  135. package/features/UnlockEntry/abstractions.d.ts +44 -0
  136. package/features/UnlockEntry/abstractions.js +6 -0
  137. package/features/UnlockEntry/abstractions.js.map +1 -0
  138. package/features/UnlockEntry/events.d.ts +46 -0
  139. package/features/UnlockEntry/events.js +32 -0
  140. package/features/UnlockEntry/events.js.map +1 -0
  141. package/features/UnlockEntry/feature.d.ts +4 -0
  142. package/features/UnlockEntry/feature.js +15 -0
  143. package/features/UnlockEntry/feature.js.map +1 -0
  144. package/features/UnlockEntry/hasFullAccessPermission.d.ts +2 -0
  145. package/features/UnlockEntry/hasFullAccessPermission.js +9 -0
  146. package/features/UnlockEntry/hasFullAccessPermission.js.map +1 -0
  147. package/features/UnlockEntry/index.d.ts +1 -0
  148. package/features/UnlockEntry/index.js +1 -0
  149. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.d.ts +14 -0
  150. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.js +40 -0
  151. package/features/UnlockEntryRequest/UnlockEntryRequestEventsDecorator.js.map +1 -0
  152. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.d.ts +17 -0
  153. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.js +45 -0
  154. package/features/UnlockEntryRequest/UnlockEntryRequestRepository.js.map +1 -0
  155. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.d.ts +16 -0
  156. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.js +75 -0
  157. package/features/UnlockEntryRequest/UnlockEntryRequestUseCase.js.map +1 -0
  158. package/features/UnlockEntryRequest/abstractions.d.ts +42 -0
  159. package/features/UnlockEntryRequest/abstractions.js +6 -0
  160. package/features/UnlockEntryRequest/abstractions.js.map +1 -0
  161. package/features/UnlockEntryRequest/events.d.ts +45 -0
  162. package/features/UnlockEntryRequest/events.js +32 -0
  163. package/features/UnlockEntryRequest/events.js.map +1 -0
  164. package/features/UnlockEntryRequest/feature.d.ts +4 -0
  165. package/features/UnlockEntryRequest/feature.js +15 -0
  166. package/features/UnlockEntryRequest/feature.js.map +1 -0
  167. package/features/UnlockEntryRequest/index.d.ts +3 -0
  168. package/features/UnlockEntryRequest/index.js +3 -0
  169. package/features/UpdateEntryLock/UpdateEntryLockRepository.d.ts +21 -0
  170. package/features/UpdateEntryLock/UpdateEntryLockRepository.js +61 -0
  171. package/features/UpdateEntryLock/UpdateEntryLockRepository.js.map +1 -0
  172. package/features/UpdateEntryLock/UpdateEntryLockUseCase.d.ts +18 -0
  173. package/features/UpdateEntryLock/UpdateEntryLockUseCase.js +51 -0
  174. package/features/UpdateEntryLock/UpdateEntryLockUseCase.js.map +1 -0
  175. package/features/UpdateEntryLock/abstractions.d.ts +42 -0
  176. package/features/UpdateEntryLock/abstractions.js +6 -0
  177. package/features/UpdateEntryLock/abstractions.js.map +1 -0
  178. package/features/UpdateEntryLock/feature.d.ts +4 -0
  179. package/features/UpdateEntryLock/feature.js +13 -0
  180. package/features/UpdateEntryLock/feature.js.map +1 -0
  181. package/features/UpdateEntryLock/index.d.ts +1 -0
  182. package/features/UpdateEntryLock/index.js +1 -0
  183. package/graphql/RecordLockingGraphQLSchema.d.ts +25 -0
  184. package/graphql/RecordLockingGraphQLSchema.js +390 -0
  185. package/graphql/RecordLockingGraphQLSchema.js.map +1 -0
  186. package/graphql/checkPermissions.d.ts +5 -0
  187. package/graphql/checkPermissions.js +8 -0
  188. package/graphql/checkPermissions.js.map +1 -0
  189. package/{utils → graphql}/resolve.d.ts +3 -3
  190. package/graphql/resolve.js +20 -0
  191. package/graphql/resolve.js.map +1 -0
  192. package/index.d.ts +2 -9
  193. package/index.js +1 -39
  194. package/package.json +29 -28
  195. package/types.d.ts +3 -132
  196. package/types.js +6 -27
  197. package/types.js.map +1 -1
  198. package/utils/convertWhereCondition.d.ts +1 -1
  199. package/utils/convertWhereCondition.js +21 -36
  200. package/utils/convertWhereCondition.js.map +1 -1
  201. package/utils/getTimeout.js +8 -22
  202. package/utils/getTimeout.js.map +1 -1
  203. package/utils/lockRecordDatabaseId.js +7 -20
  204. package/utils/lockRecordDatabaseId.js.map +1 -1
  205. package/abstractions/IGetLockRecordUseCase.d.ts +0 -8
  206. package/abstractions/IGetLockRecordUseCase.js +0 -7
  207. package/abstractions/IGetLockRecordUseCase.js.map +0 -1
  208. package/abstractions/IGetLockedEntryLockRecordUseCase.d.ts +0 -8
  209. package/abstractions/IGetLockedEntryLockRecordUseCase.js +0 -7
  210. package/abstractions/IGetLockedEntryLockRecordUseCase.js.map +0 -1
  211. package/abstractions/IIsEntryLocked.d.ts +0 -8
  212. package/abstractions/IIsEntryLocked.js +0 -7
  213. package/abstractions/IIsEntryLocked.js.map +0 -1
  214. package/abstractions/IKickOutCurrentUserUseCase.d.ts +0 -5
  215. package/abstractions/IKickOutCurrentUserUseCase.js +0 -7
  216. package/abstractions/IKickOutCurrentUserUseCase.js.map +0 -1
  217. package/abstractions/IListAllLockRecordsUseCase.d.ts +0 -9
  218. package/abstractions/IListAllLockRecordsUseCase.js +0 -7
  219. package/abstractions/IListAllLockRecordsUseCase.js.map +0 -1
  220. package/abstractions/IListLockRecordsUseCase.d.ts +0 -10
  221. package/abstractions/IListLockRecordsUseCase.js +0 -7
  222. package/abstractions/IListLockRecordsUseCase.js.map +0 -1
  223. package/abstractions/ILockEntryUseCase.d.ts +0 -11
  224. package/abstractions/ILockEntryUseCase.js +0 -7
  225. package/abstractions/ILockEntryUseCase.js.map +0 -1
  226. package/abstractions/IUnlockEntryRequestUseCase.d.ts +0 -11
  227. package/abstractions/IUnlockEntryRequestUseCase.js +0 -7
  228. package/abstractions/IUnlockEntryRequestUseCase.js.map +0 -1
  229. package/abstractions/IUnlockEntryUseCase.d.ts +0 -12
  230. package/abstractions/IUnlockEntryUseCase.js +0 -7
  231. package/abstractions/IUnlockEntryUseCase.js.map +0 -1
  232. package/abstractions/IUpdateEntryLockUseCase.d.ts +0 -11
  233. package/abstractions/IUpdateEntryLockUseCase.js +0 -7
  234. package/abstractions/IUpdateEntryLockUseCase.js.map +0 -1
  235. package/crud/crud.d.ts +0 -7
  236. package/crud/crud.js +0 -204
  237. package/crud/crud.js.map +0 -1
  238. package/crud/model.d.ts +0 -2
  239. package/crud/model.js +0 -127
  240. package/crud/model.js.map +0 -1
  241. package/graphql/schema.d.ts +0 -7
  242. package/graphql/schema.js +0 -280
  243. package/graphql/schema.js.map +0 -1
  244. package/index.js.map +0 -1
  245. package/useCases/GetLockRecord/GetLockRecordUseCase.d.ts +0 -16
  246. package/useCases/GetLockRecord/GetLockRecordUseCase.js +0 -39
  247. package/useCases/GetLockRecord/GetLockRecordUseCase.js.map +0 -1
  248. package/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.d.ts +0 -16
  249. package/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js +0 -29
  250. package/useCases/GetLockedEntryLockRecord/GetLockedEntryLockRecordUseCase.js.map +0 -1
  251. package/useCases/IsEntryLocked/IsEntryLockedUseCase.d.ts +0 -13
  252. package/useCases/IsEntryLocked/IsEntryLockedUseCase.js +0 -31
  253. package/useCases/IsEntryLocked/IsEntryLockedUseCase.js.map +0 -1
  254. package/useCases/KickOutCurrentUser/KickOutCurrentUserUseCase.d.ts +0 -12
  255. package/useCases/KickOutCurrentUser/KickOutCurrentUserUseCase.js +0 -46
  256. package/useCases/KickOutCurrentUser/KickOutCurrentUserUseCase.js.map +0 -1
  257. package/useCases/ListAllLockRecordsUseCase/ListAllLockRecordsUseCase.d.ts +0 -13
  258. package/useCases/ListAllLockRecordsUseCase/ListAllLockRecordsUseCase.js +0 -34
  259. package/useCases/ListAllLockRecordsUseCase/ListAllLockRecordsUseCase.js.map +0 -1
  260. package/useCases/ListLockRecordsUseCase/ListLockRecordsUseCase.d.ts +0 -14
  261. package/useCases/ListLockRecordsUseCase/ListLockRecordsUseCase.js +0 -27
  262. package/useCases/ListLockRecordsUseCase/ListLockRecordsUseCase.js.map +0 -1
  263. package/useCases/LockEntryUseCase/LockEntryUseCase.d.ts +0 -21
  264. package/useCases/LockEntryUseCase/LockEntryUseCase.js +0 -64
  265. package/useCases/LockEntryUseCase/LockEntryUseCase.js.map +0 -1
  266. package/useCases/UnlockEntryUseCase/UnlockEntryUseCase.d.ts +0 -23
  267. package/useCases/UnlockEntryUseCase/UnlockEntryUseCase.js +0 -90
  268. package/useCases/UnlockEntryUseCase/UnlockEntryUseCase.js.map +0 -1
  269. package/useCases/UnlockRequestUseCase/UnlockEntryRequestUseCase.d.ts +0 -21
  270. package/useCases/UnlockRequestUseCase/UnlockEntryRequestUseCase.js +0 -82
  271. package/useCases/UnlockRequestUseCase/UnlockEntryRequestUseCase.js.map +0 -1
  272. package/useCases/UpdateEntryLock/UpdateEntryLockUseCase.d.ts +0 -26
  273. package/useCases/UpdateEntryLock/UpdateEntryLockUseCase.js +0 -93
  274. package/useCases/UpdateEntryLock/UpdateEntryLockUseCase.js.map +0 -1
  275. package/useCases/index.d.ts +0 -31
  276. package/useCases/index.js +0 -96
  277. package/useCases/index.js.map +0 -1
  278. package/useCases/types.d.ts +0 -5
  279. package/useCases/types.js +0 -7
  280. package/useCases/types.js.map +0 -1
  281. package/utils/calculateExpiresOn.d.ts +0 -2
  282. package/utils/calculateExpiresOn.js +0 -16
  283. package/utils/calculateExpiresOn.js.map +0 -1
  284. package/utils/checkPermissions.d.ts +0 -7
  285. package/utils/checkPermissions.js +0 -21
  286. package/utils/checkPermissions.js.map +0 -1
  287. package/utils/convertEntryToLockRecord.d.ts +0 -28
  288. package/utils/convertEntryToLockRecord.js +0 -91
  289. package/utils/convertEntryToLockRecord.js.map +0 -1
  290. package/utils/resolve.js +0 -30
  291. package/utils/resolve.js.map +0 -1
  292. package/utils/validateSameIdentity.d.ts +0 -6
  293. package/utils/validateSameIdentity.js +0 -24
  294. package/utils/validateSameIdentity.js.map +0 -1
package/graphql/schema.js DELETED
@@ -1,280 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createGraphQLSchema = void 0;
7
- var _resolve = require("../utils/resolve");
8
- var _handlerGraphql = require("@webiny/handler-graphql");
9
- var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
10
- var _createFieldTypePluginRecords = require("@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords");
11
- var _renderListFilterFields = require("@webiny/api-headless-cms/utils/renderListFilterFields");
12
- var _renderSortEnum = require("@webiny/api-headless-cms/utils/renderSortEnum");
13
- var _checkPermissions = require("../utils/checkPermissions");
14
- const createGraphQLSchema = async params => {
15
- const context = params.context;
16
- const model = await context.recordLocking.getModel();
17
- const models = await context.security.withoutAuthorization(async () => {
18
- return (await context.cms.listModels()).filter(model => {
19
- if (model.fields.length === 0) {
20
- return false;
21
- } else if (model.isPrivate) {
22
- return false;
23
- }
24
- return true;
25
- });
26
- });
27
- const fieldTypePlugins = (0, _createFieldTypePluginRecords.createFieldTypePluginRecords)(context.plugins);
28
- const recordLockingFields = (0, _renderFields.renderFields)({
29
- models,
30
- model,
31
- fields: model.fields,
32
- type: "manage",
33
- fieldTypePlugins
34
- });
35
- const listFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
36
- model,
37
- fields: model.fields,
38
- type: "manage",
39
- fieldTypePlugins,
40
- excludeFields: ["entryId"]
41
- });
42
- const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
43
- model,
44
- fields: model.fields,
45
- fieldTypePlugins,
46
- sorterPlugins: []
47
- });
48
- const plugin = (0, _handlerGraphql.createGraphQLSchemaPlugin)({
49
- typeDefs: /* GraphQL */`
50
- ${recordLockingFields.map(f => f.typeDefs).join("\n")}
51
-
52
- type RecordLockingError {
53
- message: String
54
- code: String
55
- data: JSON
56
- stack: String
57
- }
58
-
59
- enum RecordLockingRecordActionType {
60
- requested
61
- approved
62
- denied
63
- }
64
-
65
- type RecordLockingIdentity {
66
- id: String!
67
- displayName: String
68
- type: String
69
- }
70
-
71
- type RecordLockingRecordAction {
72
- id: ID!
73
- type: RecordLockingRecordActionType!
74
- message: String
75
- createdBy: RecordLockingIdentity!
76
- createdOn: DateTime!
77
- }
78
-
79
- type RecordLockingRecord {
80
- id: ID!
81
- lockedBy: RecordLockingIdentity!
82
- lockedOn: DateTime!
83
- updatedOn: DateTime!
84
- expiresOn: DateTime!
85
- ${recordLockingFields.map(f => f.fields).join("\n")}
86
- }
87
-
88
- type RecordLockingIsEntryLockedResponse {
89
- data: Boolean
90
- error: RecordLockingError
91
- }
92
-
93
- type RecordLockingGetLockRecordResponse {
94
- data: RecordLockingRecord
95
- error: RecordLockingError
96
- }
97
-
98
- type RecordLockingGetLockedEntryLockRecordResponse {
99
- data: RecordLockingRecord
100
- error: RecordLockingError
101
- }
102
-
103
- type RecordLockingListLockRecordsResponse {
104
- data: [RecordLockingRecord!]
105
- error: RecordLockingError
106
- }
107
-
108
- type RecordLockingLockEntryResponse {
109
- data: RecordLockingRecord
110
- error: RecordLockingError
111
- }
112
-
113
- type RecordLockingUpdateLockResponse {
114
- data: RecordLockingRecord
115
- error: RecordLockingError
116
- }
117
-
118
- type RecordLockingUnlockEntryResponse {
119
- data: RecordLockingRecord
120
- error: RecordLockingError
121
- }
122
-
123
- type RecordLockingUnlockEntryRequestResponse {
124
- data: RecordLockingRecord
125
- error: RecordLockingError
126
- }
127
-
128
- input RecordLockingListWhereInput {
129
- ${listFilterFieldsRender}
130
- }
131
-
132
- enum RecordLockingListSorter {
133
- ${sortEnumRender}
134
- }
135
-
136
- type RecordLockingQuery {
137
- _empty: String
138
- }
139
-
140
- type RecordLockingMutation {
141
- _empty: String
142
- }
143
-
144
- extend type RecordLockingQuery {
145
- isEntryLocked(id: ID!, type: String!): RecordLockingIsEntryLockedResponse!
146
- getLockRecord(id: ID!, type: String!): RecordLockingGetLockRecordResponse!
147
- # Returns lock record or null - if entry is locked in context of the current user, does not throw an error like getLockRecord if no record in the DB
148
- getLockedEntryLockRecord(id: ID!, type: String!): RecordLockingGetLockedEntryLockRecordResponse!
149
- listAllLockRecords(
150
- where: RecordLockingListWhereInput
151
- sort: [RecordLockingListSorter!]
152
- limit: Int
153
- after: String
154
- ): RecordLockingListLockRecordsResponse!
155
- # Basically same as listAllLockRecords except this one will filter out records with expired lock.
156
- listLockRecords(
157
- where: RecordLockingListWhereInput
158
- sort: [RecordLockingListSorter!]
159
- limit: Int
160
- after: String
161
- ): RecordLockingListLockRecordsResponse!
162
- }
163
-
164
- extend type RecordLockingMutation {
165
- lockEntry(id: ID!, type: String!): RecordLockingLockEntryResponse!
166
- updateEntryLock(id: ID!, type: String!): RecordLockingUpdateLockResponse!
167
- unlockEntry(id: ID!, type: String!, force: Boolean): RecordLockingUnlockEntryResponse!
168
- unlockEntryRequest(
169
- id: ID!
170
- type: String!
171
- ): RecordLockingUnlockEntryRequestResponse!
172
- }
173
-
174
- extend type Query {
175
- recordLocking: RecordLockingQuery
176
- }
177
-
178
- extend type Mutation {
179
- recordLocking: RecordLockingMutation
180
- }
181
- `,
182
- resolvers: {
183
- Query: {
184
- recordLocking: async () => ({})
185
- },
186
- Mutation: {
187
- recordLocking: async () => ({})
188
- },
189
- RecordLockingQuery: {
190
- async isEntryLocked(_, args, context) {
191
- return (0, _resolve.resolve)(async () => {
192
- await (0, _checkPermissions.checkPermissions)(context);
193
- return context.recordLocking.isEntryLocked({
194
- id: args.id,
195
- type: args.type
196
- });
197
- });
198
- },
199
- async getLockRecord(_, args, context) {
200
- return (0, _resolve.resolve)(async () => {
201
- await (0, _checkPermissions.checkPermissions)(context);
202
- const result = await context.recordLocking.getLockRecord({
203
- id: args.id,
204
- type: args.type
205
- });
206
- if (result) {
207
- return result;
208
- }
209
- throw new _handlerGraphql.NotFoundError("Lock record not found.");
210
- });
211
- },
212
- async getLockedEntryLockRecord(_, args, context) {
213
- return (0, _resolve.resolve)(async () => {
214
- await (0, _checkPermissions.checkPermissions)(context);
215
- return await context.recordLocking.getLockedEntryLockRecord({
216
- id: args.id,
217
- type: args.type
218
- });
219
- });
220
- },
221
- async listLockRecords(_, args, context) {
222
- return (0, _resolve.resolveList)(async () => {
223
- await (0, _checkPermissions.checkPermissions)(context);
224
- return await context.recordLocking.listLockRecords(args);
225
- });
226
- },
227
- listAllLockRecords(_, args, context) {
228
- return (0, _resolve.resolveList)(async () => {
229
- await (0, _checkPermissions.checkPermissions)(context);
230
- return await context.recordLocking.listAllLockRecords(args);
231
- });
232
- }
233
- },
234
- RecordLockingMutation: {
235
- async lockEntry(_, args, context) {
236
- return (0, _resolve.resolve)(async () => {
237
- await (0, _checkPermissions.checkPermissions)(context);
238
- return context.recordLocking.lockEntry({
239
- id: args.id,
240
- type: args.type
241
- });
242
- });
243
- },
244
- async updateEntryLock(_, args, context) {
245
- return (0, _resolve.resolve)(async () => {
246
- await (0, _checkPermissions.checkPermissions)(context);
247
- return context.recordLocking.updateEntryLock({
248
- id: args.id,
249
- type: args.type
250
- });
251
- });
252
- },
253
- async unlockEntry(_, args, context) {
254
- return (0, _resolve.resolve)(async () => {
255
- await (0, _checkPermissions.checkPermissions)(context);
256
- return await context.recordLocking.unlockEntry({
257
- id: args.id,
258
- type: args.type,
259
- force: args.force
260
- });
261
- });
262
- },
263
- async unlockEntryRequest(_, args, context) {
264
- return (0, _resolve.resolve)(async () => {
265
- await (0, _checkPermissions.checkPermissions)(context);
266
- return await context.recordLocking.unlockEntryRequest({
267
- id: args.id,
268
- type: args.type
269
- });
270
- });
271
- }
272
- }
273
- }
274
- });
275
- plugin.name = "recordLocking.graphql.schema.locking";
276
- return plugin;
277
- };
278
- exports.createGraphQLSchema = createGraphQLSchema;
279
-
280
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_resolve","require","_handlerGraphql","_renderFields","_createFieldTypePluginRecords","_renderListFilterFields","_renderSortEnum","_checkPermissions","createGraphQLSchema","params","context","model","recordLocking","getModel","models","security","withoutAuthorization","cms","listModels","filter","fields","length","isPrivate","fieldTypePlugins","createFieldTypePluginRecords","plugins","recordLockingFields","renderFields","type","listFilterFieldsRender","renderListFilterFields","excludeFields","sortEnumRender","renderSortEnum","sorterPlugins","plugin","createGraphQLSchemaPlugin","typeDefs","map","f","join","resolvers","Query","Mutation","RecordLockingQuery","isEntryLocked","_","args","resolve","checkPermissions","id","getLockRecord","result","NotFoundError","getLockedEntryLockRecord","listLockRecords","resolveList","listAllLockRecords","RecordLockingMutation","lockEntry","updateEntryLock","unlockEntry","force","unlockEntryRequest","name","exports"],"sources":["schema.ts"],"sourcesContent":["import { resolve, resolveList } from \"~/utils/resolve\";\nimport type { Context } from \"~/types\";\nimport type { IGraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { createGraphQLSchemaPlugin, NotFoundError } from \"@webiny/handler-graphql\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum\";\nimport { checkPermissions } from \"~/utils/checkPermissions\";\n\ninterface Params {\n context: Pick<Context, \"plugins\" | \"recordLocking\" | \"security\" | \"cms\">;\n}\nexport const createGraphQLSchema = async (\n params: Params\n): Promise<IGraphQLSchemaPlugin<Context>> => {\n const context = params.context;\n\n const model = await context.recordLocking.getModel();\n\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n if (model.fields.length === 0) {\n return false;\n } else if (model.isPrivate) {\n return false;\n }\n return true;\n });\n });\n\n const fieldTypePlugins = createFieldTypePluginRecords(context.plugins);\n\n const recordLockingFields = renderFields({\n models,\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\"]\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n const plugin = createGraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n ${recordLockingFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type RecordLockingError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n\n enum RecordLockingRecordActionType {\n requested\n approved\n denied\n }\n\n type RecordLockingIdentity {\n id: String!\n displayName: String\n type: String\n }\n\n type RecordLockingRecordAction {\n id: ID!\n type: RecordLockingRecordActionType!\n message: String\n createdBy: RecordLockingIdentity!\n createdOn: DateTime!\n }\n\n type RecordLockingRecord {\n id: ID!\n lockedBy: RecordLockingIdentity!\n lockedOn: DateTime!\n updatedOn: DateTime!\n expiresOn: DateTime!\n ${recordLockingFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type RecordLockingIsEntryLockedResponse {\n data: Boolean\n error: RecordLockingError\n }\n\n type RecordLockingGetLockRecordResponse {\n data: RecordLockingRecord\n error: RecordLockingError\n }\n\n type RecordLockingGetLockedEntryLockRecordResponse {\n data: RecordLockingRecord\n error: RecordLockingError\n }\n\n type RecordLockingListLockRecordsResponse {\n data: [RecordLockingRecord!]\n error: RecordLockingError\n }\n\n type RecordLockingLockEntryResponse {\n data: RecordLockingRecord\n error: RecordLockingError\n }\n \n type RecordLockingUpdateLockResponse {\n data: RecordLockingRecord\n error: RecordLockingError\n }\n\n type RecordLockingUnlockEntryResponse {\n data: RecordLockingRecord\n error: RecordLockingError\n }\n\n type RecordLockingUnlockEntryRequestResponse {\n data: RecordLockingRecord\n error: RecordLockingError\n }\n\n input RecordLockingListWhereInput {\n ${listFilterFieldsRender}\n }\n\n enum RecordLockingListSorter {\n ${sortEnumRender}\n }\n\n type RecordLockingQuery {\n _empty: String\n }\n\n type RecordLockingMutation {\n _empty: String\n }\n\n extend type RecordLockingQuery {\n isEntryLocked(id: ID!, type: String!): RecordLockingIsEntryLockedResponse!\n getLockRecord(id: ID!, type: String!): RecordLockingGetLockRecordResponse!\n # Returns lock record or null - if entry is locked in context of the current user, does not throw an error like getLockRecord if no record in the DB\n getLockedEntryLockRecord(id: ID!, type: String!): RecordLockingGetLockedEntryLockRecordResponse!\n listAllLockRecords(\n where: RecordLockingListWhereInput\n sort: [RecordLockingListSorter!]\n limit: Int\n after: String\n ): RecordLockingListLockRecordsResponse!\n # Basically same as listAllLockRecords except this one will filter out records with expired lock.\n listLockRecords(\n where: RecordLockingListWhereInput\n sort: [RecordLockingListSorter!]\n limit: Int\n after: String\n ): RecordLockingListLockRecordsResponse!\n }\n\n extend type RecordLockingMutation {\n lockEntry(id: ID!, type: String!): RecordLockingLockEntryResponse!\n updateEntryLock(id: ID!, type: String!): RecordLockingUpdateLockResponse!\n unlockEntry(id: ID!, type: String!, force: Boolean): RecordLockingUnlockEntryResponse!\n unlockEntryRequest(\n id: ID!\n type: String!\n ): RecordLockingUnlockEntryRequestResponse!\n }\n\n extend type Query {\n recordLocking: RecordLockingQuery\n }\n\n extend type Mutation {\n recordLocking: RecordLockingMutation\n }\n `,\n resolvers: {\n Query: {\n recordLocking: async () => ({})\n },\n Mutation: {\n recordLocking: async () => ({})\n },\n RecordLockingQuery: {\n async isEntryLocked(_, args, context) {\n return resolve(async () => {\n await checkPermissions(context);\n return context.recordLocking.isEntryLocked({\n id: args.id,\n type: args.type\n });\n });\n },\n async getLockRecord(_, args, context) {\n return resolve(async () => {\n await checkPermissions(context);\n const result = await context.recordLocking.getLockRecord({\n id: args.id,\n type: args.type\n });\n if (result) {\n return result;\n }\n throw new NotFoundError(\"Lock record not found.\");\n });\n },\n async getLockedEntryLockRecord(_, args, context) {\n return resolve(async () => {\n await checkPermissions(context);\n return await context.recordLocking.getLockedEntryLockRecord({\n id: args.id,\n type: args.type\n });\n });\n },\n\n async listLockRecords(_, args, context) {\n return resolveList(async () => {\n await checkPermissions(context);\n return await context.recordLocking.listLockRecords(args);\n });\n },\n listAllLockRecords(_, args, context) {\n return resolveList(async () => {\n await checkPermissions(context);\n return await context.recordLocking.listAllLockRecords(args);\n });\n }\n },\n RecordLockingMutation: {\n async lockEntry(_, args, context) {\n return resolve(async () => {\n await checkPermissions(context);\n return context.recordLocking.lockEntry({\n id: args.id,\n type: args.type\n });\n });\n },\n async updateEntryLock(_, args, context) {\n return resolve(async () => {\n await checkPermissions(context);\n return context.recordLocking.updateEntryLock({\n id: args.id,\n type: args.type\n });\n });\n },\n async unlockEntry(_, args, context) {\n return resolve(async () => {\n await checkPermissions(context);\n return await context.recordLocking.unlockEntry({\n id: args.id,\n type: args.type,\n force: args.force\n });\n });\n },\n async unlockEntryRequest(_, args, context) {\n return resolve(async () => {\n await checkPermissions(context);\n return await context.recordLocking.unlockEntryRequest({\n id: args.id,\n type: args.type\n });\n });\n }\n }\n }\n });\n\n plugin.name = \"recordLocking.graphql.schema.locking\";\n\n return plugin;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,6BAAA,GAAAH,OAAA;AACA,IAAAI,uBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AAKO,MAAMO,mBAAmB,GAAG,MAC/BC,MAAc,IAC2B;EACzC,MAAMC,OAAO,GAAGD,MAAM,CAACC,OAAO;EAE9B,MAAMC,KAAK,GAAG,MAAMD,OAAO,CAACE,aAAa,CAACC,QAAQ,CAAC,CAAC;EAEpD,MAAMC,MAAM,GAAG,MAAMJ,OAAO,CAACK,QAAQ,CAACC,oBAAoB,CAAC,YAAY;IACnE,OAAO,CAAC,MAAMN,OAAO,CAACO,GAAG,CAACC,UAAU,CAAC,CAAC,EAAEC,MAAM,CAACR,KAAK,IAAI;MACpD,IAAIA,KAAK,CAACS,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,KAAK;MAChB,CAAC,MAAM,IAAIV,KAAK,CAACW,SAAS,EAAE;QACxB,OAAO,KAAK;MAChB;MACA,OAAO,IAAI;IACf,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,MAAMC,gBAAgB,GAAG,IAAAC,0DAA4B,EAACd,OAAO,CAACe,OAAO,CAAC;EAEtE,MAAMC,mBAAmB,GAAG,IAAAC,0BAAY,EAAC;IACrCb,MAAM;IACNH,KAAK;IACLS,MAAM,EAAET,KAAK,CAACS,MAAM;IACpBQ,IAAI,EAAE,QAAQ;IACdL;EACJ,CAAC,CAAC;EAEF,MAAMM,sBAAsB,GAAG,IAAAC,8CAAsB,EAAC;IAClDnB,KAAK;IACLS,MAAM,EAAET,KAAK,CAACS,MAAM;IACpBQ,IAAI,EAAE,QAAQ;IACdL,gBAAgB;IAChBQ,aAAa,EAAE,CAAC,SAAS;EAC7B,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAG,IAAAC,8BAAc,EAAC;IAClCtB,KAAK;IACLS,MAAM,EAAET,KAAK,CAACS,MAAM;IACpBG,gBAAgB;IAChBW,aAAa,EAAE;EACnB,CAAC,CAAC;EAEF,MAAMC,MAAM,GAAG,IAAAC,yCAAyB,EAAU;IAC9CC,QAAQ,EAAE,aAAc;AAChC,cAAcX,mBAAmB,CAACY,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACF,QAAQ,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkBd,mBAAmB,CAACY,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACnB,MAAM,CAAC,CAACoB,IAAI,CAAC,IAAI,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkBX,sBAAsB;AACxC;AACA;AACA;AACA,kBAAkBG,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDS,SAAS,EAAE;MACPC,KAAK,EAAE;QACH9B,aAAa,EAAE,MAAAA,CAAA,MAAa,CAAC,CAAC;MAClC,CAAC;MACD+B,QAAQ,EAAE;QACN/B,aAAa,EAAE,MAAAA,CAAA,MAAa,CAAC,CAAC;MAClC,CAAC;MACDgC,kBAAkB,EAAE;QAChB,MAAMC,aAAaA,CAACC,CAAC,EAAEC,IAAI,EAAErC,OAAO,EAAE;UAClC,OAAO,IAAAsC,gBAAO,EAAC,YAAY;YACvB,MAAM,IAAAC,kCAAgB,EAACvC,OAAO,CAAC;YAC/B,OAAOA,OAAO,CAACE,aAAa,CAACiC,aAAa,CAAC;cACvCK,EAAE,EAAEH,IAAI,CAACG,EAAE;cACXtB,IAAI,EAAEmB,IAAI,CAACnB;YACf,CAAC,CAAC;UACN,CAAC,CAAC;QACN,CAAC;QACD,MAAMuB,aAAaA,CAACL,CAAC,EAAEC,IAAI,EAAErC,OAAO,EAAE;UAClC,OAAO,IAAAsC,gBAAO,EAAC,YAAY;YACvB,MAAM,IAAAC,kCAAgB,EAACvC,OAAO,CAAC;YAC/B,MAAM0C,MAAM,GAAG,MAAM1C,OAAO,CAACE,aAAa,CAACuC,aAAa,CAAC;cACrDD,EAAE,EAAEH,IAAI,CAACG,EAAE;cACXtB,IAAI,EAAEmB,IAAI,CAACnB;YACf,CAAC,CAAC;YACF,IAAIwB,MAAM,EAAE;cACR,OAAOA,MAAM;YACjB;YACA,MAAM,IAAIC,6BAAa,CAAC,wBAAwB,CAAC;UACrD,CAAC,CAAC;QACN,CAAC;QACD,MAAMC,wBAAwBA,CAACR,CAAC,EAAEC,IAAI,EAAErC,OAAO,EAAE;UAC7C,OAAO,IAAAsC,gBAAO,EAAC,YAAY;YACvB,MAAM,IAAAC,kCAAgB,EAACvC,OAAO,CAAC;YAC/B,OAAO,MAAMA,OAAO,CAACE,aAAa,CAAC0C,wBAAwB,CAAC;cACxDJ,EAAE,EAAEH,IAAI,CAACG,EAAE;cACXtB,IAAI,EAAEmB,IAAI,CAACnB;YACf,CAAC,CAAC;UACN,CAAC,CAAC;QACN,CAAC;QAED,MAAM2B,eAAeA,CAACT,CAAC,EAAEC,IAAI,EAAErC,OAAO,EAAE;UACpC,OAAO,IAAA8C,oBAAW,EAAC,YAAY;YAC3B,MAAM,IAAAP,kCAAgB,EAACvC,OAAO,CAAC;YAC/B,OAAO,MAAMA,OAAO,CAACE,aAAa,CAAC2C,eAAe,CAACR,IAAI,CAAC;UAC5D,CAAC,CAAC;QACN,CAAC;QACDU,kBAAkBA,CAACX,CAAC,EAAEC,IAAI,EAAErC,OAAO,EAAE;UACjC,OAAO,IAAA8C,oBAAW,EAAC,YAAY;YAC3B,MAAM,IAAAP,kCAAgB,EAACvC,OAAO,CAAC;YAC/B,OAAO,MAAMA,OAAO,CAACE,aAAa,CAAC6C,kBAAkB,CAACV,IAAI,CAAC;UAC/D,CAAC,CAAC;QACN;MACJ,CAAC;MACDW,qBAAqB,EAAE;QACnB,MAAMC,SAASA,CAACb,CAAC,EAAEC,IAAI,EAAErC,OAAO,EAAE;UAC9B,OAAO,IAAAsC,gBAAO,EAAC,YAAY;YACvB,MAAM,IAAAC,kCAAgB,EAACvC,OAAO,CAAC;YAC/B,OAAOA,OAAO,CAACE,aAAa,CAAC+C,SAAS,CAAC;cACnCT,EAAE,EAAEH,IAAI,CAACG,EAAE;cACXtB,IAAI,EAAEmB,IAAI,CAACnB;YACf,CAAC,CAAC;UACN,CAAC,CAAC;QACN,CAAC;QACD,MAAMgC,eAAeA,CAACd,CAAC,EAAEC,IAAI,EAAErC,OAAO,EAAE;UACpC,OAAO,IAAAsC,gBAAO,EAAC,YAAY;YACvB,MAAM,IAAAC,kCAAgB,EAACvC,OAAO,CAAC;YAC/B,OAAOA,OAAO,CAACE,aAAa,CAACgD,eAAe,CAAC;cACzCV,EAAE,EAAEH,IAAI,CAACG,EAAE;cACXtB,IAAI,EAAEmB,IAAI,CAACnB;YACf,CAAC,CAAC;UACN,CAAC,CAAC;QACN,CAAC;QACD,MAAMiC,WAAWA,CAACf,CAAC,EAAEC,IAAI,EAAErC,OAAO,EAAE;UAChC,OAAO,IAAAsC,gBAAO,EAAC,YAAY;YACvB,MAAM,IAAAC,kCAAgB,EAACvC,OAAO,CAAC;YAC/B,OAAO,MAAMA,OAAO,CAACE,aAAa,CAACiD,WAAW,CAAC;cAC3CX,EAAE,EAAEH,IAAI,CAACG,EAAE;cACXtB,IAAI,EAAEmB,IAAI,CAACnB,IAAI;cACfkC,KAAK,EAAEf,IAAI,CAACe;YAChB,CAAC,CAAC;UACN,CAAC,CAAC;QACN,CAAC;QACD,MAAMC,kBAAkBA,CAACjB,CAAC,EAAEC,IAAI,EAAErC,OAAO,EAAE;UACvC,OAAO,IAAAsC,gBAAO,EAAC,YAAY;YACvB,MAAM,IAAAC,kCAAgB,EAACvC,OAAO,CAAC;YAC/B,OAAO,MAAMA,OAAO,CAACE,aAAa,CAACmD,kBAAkB,CAAC;cAClDb,EAAE,EAAEH,IAAI,CAACG,EAAE;cACXtB,IAAI,EAAEmB,IAAI,CAACnB;YACf,CAAC,CAAC;UACN,CAAC,CAAC;QACN;MACJ;IACJ;EACJ,CAAC,CAAC;EAEFO,MAAM,CAAC6B,IAAI,GAAG,sCAAsC;EAEpD,OAAO7B,MAAM;AACjB,CAAC;AAAC8B,OAAA,CAAAzD,mBAAA,GAAAA,mBAAA","ignoreList":[]}
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"names":["_schema","require","_api","_crud","_model","_apiHeadlessCms","createContextPlugin","params","plugin","ContextPlugin","context","wcp","canUseRecordLocking","ready","isHeadlessCmsReady","plugins","register","createLockingModel","recordLocking","createRecordLockingCrud","timeout","graphQlPlugin","createGraphQLSchema","name","createRecordLocking","exports"],"sources":["index.ts"],"sourcesContent":["import { createGraphQLSchema } from \"~/graphql/schema\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport type { Context } from \"~/types\";\nimport { createRecordLockingCrud } from \"~/crud/crud\";\nimport { createLockingModel } from \"~/crud/model\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\n\nexport interface ICreateContextPluginParams {\n /**\n * A number of seconds after last activity to wait before the record is automatically unlocked.\n */\n timeout?: number;\n}\n\nconst createContextPlugin = (params?: ICreateContextPluginParams) => {\n const plugin = new ContextPlugin<Context>(async context => {\n if (!context.wcp.canUseRecordLocking()) {\n return;\n }\n\n const ready = await isHeadlessCmsReady(context);\n if (!ready) {\n return;\n }\n context.plugins.register(createLockingModel());\n\n context.recordLocking = await createRecordLockingCrud({\n context,\n timeout: params?.timeout\n });\n\n const graphQlPlugin = await createGraphQLSchema({ context });\n context.plugins.register(graphQlPlugin);\n });\n plugin.name = \"context.recordLocking\";\n\n return plugin;\n};\n\nexport const createRecordLocking = (params?: ICreateContextPluginParams) => {\n return [createContextPlugin(params)];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AASA,MAAMK,mBAAmB,GAAIC,MAAmC,IAAK;EACjE,MAAMC,MAAM,GAAG,IAAIC,kBAAa,CAAU,MAAMC,OAAO,IAAI;IACvD,IAAI,CAACA,OAAO,CAACC,GAAG,CAACC,mBAAmB,CAAC,CAAC,EAAE;MACpC;IACJ;IAEA,MAAMC,KAAK,GAAG,MAAM,IAAAC,kCAAkB,EAACJ,OAAO,CAAC;IAC/C,IAAI,CAACG,KAAK,EAAE;MACR;IACJ;IACAH,OAAO,CAACK,OAAO,CAACC,QAAQ,CAAC,IAAAC,yBAAkB,EAAC,CAAC,CAAC;IAE9CP,OAAO,CAACQ,aAAa,GAAG,MAAM,IAAAC,6BAAuB,EAAC;MAClDT,OAAO;MACPU,OAAO,EAAEb,MAAM,EAAEa;IACrB,CAAC,CAAC;IAEF,MAAMC,aAAa,GAAG,MAAM,IAAAC,2BAAmB,EAAC;MAAEZ;IAAQ,CAAC,CAAC;IAC5DA,OAAO,CAACK,OAAO,CAACC,QAAQ,CAACK,aAAa,CAAC;EAC3C,CAAC,CAAC;EACFb,MAAM,CAACe,IAAI,GAAG,uBAAuB;EAErC,OAAOf,MAAM;AACjB,CAAC;AAEM,MAAMgB,mBAAmB,GAAIjB,MAAmC,IAAK;EACxE,OAAO,CAACD,mBAAmB,CAACC,MAAM,CAAC,CAAC;AACxC,CAAC;AAACkB,OAAA,CAAAD,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1,16 +0,0 @@
1
- import type { IGetLockRecordUseCase, IGetLockRecordUseCaseExecuteParams } from "../../abstractions/IGetLockRecordUseCase";
2
- import type { IRecordLockingLockRecord, IRecordLockingModelManager } from "../../types";
3
- import type { ConvertEntryToLockRecordCb } from "../types";
4
- import type { Security } from "@webiny/api-security/types";
5
- export interface IGetLockRecordUseCaseParams {
6
- getManager(): Promise<IRecordLockingModelManager>;
7
- getSecurity(): Pick<Security, "withoutAuthorization">;
8
- convert: ConvertEntryToLockRecordCb;
9
- }
10
- export declare class GetLockRecordUseCase implements IGetLockRecordUseCase {
11
- private readonly getManager;
12
- private readonly getSecurity;
13
- private readonly convert;
14
- constructor(params: IGetLockRecordUseCaseParams);
15
- execute(input: IGetLockRecordUseCaseExecuteParams): Promise<IRecordLockingLockRecord | null>;
16
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.GetLockRecordUseCase = void 0;
7
- var _handlerGraphql = require("@webiny/handler-graphql");
8
- var _lockRecordDatabaseId = require("../../utils/lockRecordDatabaseId");
9
- var _utils = require("@webiny/utils");
10
- class GetLockRecordUseCase {
11
- constructor(params) {
12
- this.getManager = params.getManager;
13
- this.getSecurity = params.getSecurity;
14
- this.convert = params.convert;
15
- }
16
- async execute(input) {
17
- const recordId = (0, _lockRecordDatabaseId.createLockRecordDatabaseId)(input.id);
18
- const id = (0, _utils.createIdentifier)({
19
- id: recordId,
20
- version: 1
21
- });
22
- const security = this.getSecurity();
23
- try {
24
- const manager = await this.getManager();
25
- return await security.withoutAuthorization(async () => {
26
- const result = await manager.get(id);
27
- return this.convert(result);
28
- });
29
- } catch (ex) {
30
- if (ex instanceof _handlerGraphql.NotFoundError) {
31
- return null;
32
- }
33
- throw ex;
34
- }
35
- }
36
- }
37
- exports.GetLockRecordUseCase = GetLockRecordUseCase;
38
-
39
- //# sourceMappingURL=GetLockRecordUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_handlerGraphql","require","_lockRecordDatabaseId","_utils","GetLockRecordUseCase","constructor","params","getManager","getSecurity","convert","execute","input","recordId","createLockRecordDatabaseId","id","createIdentifier","version","security","manager","withoutAuthorization","result","get","ex","NotFoundError","exports"],"sources":["GetLockRecordUseCase.ts"],"sourcesContent":["import type {\n IGetLockRecordUseCase,\n IGetLockRecordUseCaseExecuteParams\n} from \"~/abstractions/IGetLockRecordUseCase\";\nimport type { IRecordLockingLockRecord, IRecordLockingModelManager } from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\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 IGetLockRecordUseCaseParams {\n getManager(): Promise<IRecordLockingModelManager>;\n getSecurity(): Pick<Security, \"withoutAuthorization\">;\n convert: ConvertEntryToLockRecordCb;\n}\n\nexport class GetLockRecordUseCase implements IGetLockRecordUseCase {\n private readonly getManager: IGetLockRecordUseCaseParams[\"getManager\"];\n private readonly getSecurity: IGetLockRecordUseCaseParams[\"getSecurity\"];\n private readonly convert: ConvertEntryToLockRecordCb;\n\n public constructor(params: IGetLockRecordUseCaseParams) {\n this.getManager = params.getManager;\n this.getSecurity = params.getSecurity;\n this.convert = params.convert;\n }\n\n public async execute(\n input: IGetLockRecordUseCaseExecuteParams\n ): Promise<IRecordLockingLockRecord | null> {\n const recordId = createLockRecordDatabaseId(input.id);\n const id = createIdentifier({\n id: recordId,\n version: 1\n });\n const security = this.getSecurity();\n try {\n const manager = await this.getManager();\n return await security.withoutAuthorization(async () => {\n const result = await manager.get(id);\n return this.convert(result);\n });\n } catch (ex) {\n if (ex instanceof NotFoundError) {\n return null;\n }\n throw ex;\n }\n }\n}\n"],"mappings":";;;;;;AAKA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAUO,MAAMG,oBAAoB,CAAkC;EAKxDC,WAAWA,CAACC,MAAmC,EAAE;IACpD,IAAI,CAACC,UAAU,GAAGD,MAAM,CAACC,UAAU;IACnC,IAAI,CAACC,WAAW,GAAGF,MAAM,CAACE,WAAW;IACrC,IAAI,CAACC,OAAO,GAAGH,MAAM,CAACG,OAAO;EACjC;EAEA,MAAaC,OAAOA,CAChBC,KAAyC,EACD;IACxC,MAAMC,QAAQ,GAAG,IAAAC,gDAA0B,EAACF,KAAK,CAACG,EAAE,CAAC;IACrD,MAAMA,EAAE,GAAG,IAAAC,uBAAgB,EAAC;MACxBD,EAAE,EAAEF,QAAQ;MACZI,OAAO,EAAE;IACb,CAAC,CAAC;IACF,MAAMC,QAAQ,GAAG,IAAI,CAACT,WAAW,CAAC,CAAC;IACnC,IAAI;MACA,MAAMU,OAAO,GAAG,MAAM,IAAI,CAACX,UAAU,CAAC,CAAC;MACvC,OAAO,MAAMU,QAAQ,CAACE,oBAAoB,CAAC,YAAY;QACnD,MAAMC,MAAM,GAAG,MAAMF,OAAO,CAACG,GAAG,CAACP,EAAE,CAAC;QACpC,OAAO,IAAI,CAACL,OAAO,CAACW,MAAM,CAAC;MAC/B,CAAC,CAAC;IACN,CAAC,CAAC,OAAOE,EAAE,EAAE;MACT,IAAIA,EAAE,YAAYC,6BAAa,EAAE;QAC7B,OAAO,IAAI;MACf;MACA,MAAMD,EAAE;IACZ;EACJ;AACJ;AAACE,OAAA,CAAApB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -1,16 +0,0 @@
1
- import type { IGetLockRecordUseCase } from "../../abstractions/IGetLockRecordUseCase";
2
- import type { IGetIdentity, IRecordLockingLockRecord } from "../../types";
3
- import type { IGetLockedEntryLockRecordUseCase, IGetLockedEntryLockRecordUseCaseExecuteParams } from "../../abstractions/IGetLockedEntryLockRecordUseCase";
4
- export interface IGetLockedEntryLockRecordUseCaseParams {
5
- getLockRecordUseCase: IGetLockRecordUseCase;
6
- getIdentity: IGetIdentity;
7
- }
8
- /**
9
- * This use case is used to get a lock record for an entry - and the entry is still locked by someone other than the current user.
10
- */
11
- export declare class GetLockedEntryLockRecordUseCase implements IGetLockedEntryLockRecordUseCase {
12
- private readonly getLockRecordUseCase;
13
- private readonly getIdentity;
14
- constructor(params: IGetLockedEntryLockRecordUseCaseParams);
15
- execute(params: IGetLockedEntryLockRecordUseCaseExecuteParams): Promise<IRecordLockingLockRecord | null>;
16
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.GetLockedEntryLockRecordUseCase = void 0;
7
- /**
8
- * This use case is used to get a lock record for an entry - and the entry is still locked by someone other than the current user.
9
- */
10
- class GetLockedEntryLockRecordUseCase {
11
- constructor(params) {
12
- this.getLockRecordUseCase = params.getLockRecordUseCase;
13
- this.getIdentity = params.getIdentity;
14
- }
15
- async execute(params) {
16
- const result = await this.getLockRecordUseCase.execute(params);
17
- if (!result?.lockedBy?.id || result.isExpired()) {
18
- return null;
19
- }
20
- const identity = this.getIdentity();
21
- if (identity.id === result.lockedBy.id) {
22
- return null;
23
- }
24
- return result;
25
- }
26
- }
27
- exports.GetLockedEntryLockRecordUseCase = GetLockedEntryLockRecordUseCase;
28
-
29
- //# sourceMappingURL=GetLockedEntryLockRecordUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["GetLockedEntryLockRecordUseCase","constructor","params","getLockRecordUseCase","getIdentity","execute","result","lockedBy","id","isExpired","identity","exports"],"sources":["GetLockedEntryLockRecordUseCase.ts"],"sourcesContent":["import type { IGetLockRecordUseCase } from \"~/abstractions/IGetLockRecordUseCase\";\nimport type { IGetIdentity, IRecordLockingLockRecord } from \"~/types\";\nimport type {\n IGetLockedEntryLockRecordUseCase,\n IGetLockedEntryLockRecordUseCaseExecuteParams\n} from \"~/abstractions/IGetLockedEntryLockRecordUseCase\";\n\nexport interface IGetLockedEntryLockRecordUseCaseParams {\n getLockRecordUseCase: IGetLockRecordUseCase;\n getIdentity: IGetIdentity;\n}\n\n/**\n * This use case is used to get a lock record for an entry - and the entry is still locked by someone other than the current user.\n */\nexport class GetLockedEntryLockRecordUseCase implements IGetLockedEntryLockRecordUseCase {\n private readonly getLockRecordUseCase: IGetLockRecordUseCase;\n private readonly getIdentity: IGetIdentity;\n\n public constructor(params: IGetLockedEntryLockRecordUseCaseParams) {\n this.getLockRecordUseCase = params.getLockRecordUseCase;\n this.getIdentity = params.getIdentity;\n }\n\n public async execute(\n params: IGetLockedEntryLockRecordUseCaseExecuteParams\n ): Promise<IRecordLockingLockRecord | null> {\n const result = await this.getLockRecordUseCase.execute(params);\n if (!result?.lockedBy?.id || result.isExpired()) {\n return null;\n }\n const identity = this.getIdentity();\n if (identity.id === result.lockedBy.id) {\n return null;\n }\n return result;\n }\n}\n"],"mappings":";;;;;;AAYA;AACA;AACA;AACO,MAAMA,+BAA+B,CAA6C;EAI9EC,WAAWA,CAACC,MAA8C,EAAE;IAC/D,IAAI,CAACC,oBAAoB,GAAGD,MAAM,CAACC,oBAAoB;IACvD,IAAI,CAACC,WAAW,GAAGF,MAAM,CAACE,WAAW;EACzC;EAEA,MAAaC,OAAOA,CAChBH,MAAqD,EACb;IACxC,MAAMI,MAAM,GAAG,MAAM,IAAI,CAACH,oBAAoB,CAACE,OAAO,CAACH,MAAM,CAAC;IAC9D,IAAI,CAACI,MAAM,EAAEC,QAAQ,EAAEC,EAAE,IAAIF,MAAM,CAACG,SAAS,CAAC,CAAC,EAAE;MAC7C,OAAO,IAAI;IACf;IACA,MAAMC,QAAQ,GAAG,IAAI,CAACN,WAAW,CAAC,CAAC;IACnC,IAAIM,QAAQ,CAACF,EAAE,KAAKF,MAAM,CAACC,QAAQ,CAACC,EAAE,EAAE;MACpC,OAAO,IAAI;IACf;IACA,OAAOF,MAAM;EACjB;AACJ;AAACK,OAAA,CAAAX,+BAAA,GAAAA,+BAAA","ignoreList":[]}
@@ -1,13 +0,0 @@
1
- import type { IIsEntryLockedUseCase, IIsEntryLockedUseCaseExecuteParams } from "../../abstractions/IIsEntryLocked";
2
- import type { IGetLockRecordUseCase } from "../../abstractions/IGetLockRecordUseCase";
3
- import type { IGetIdentity } from "../../types";
4
- export interface IIsEntryLockedParams {
5
- getLockRecordUseCase: IGetLockRecordUseCase;
6
- getIdentity: IGetIdentity;
7
- }
8
- export declare class IsEntryLockedUseCase implements IIsEntryLockedUseCase {
9
- private readonly getLockRecordUseCase;
10
- private readonly getIdentity;
11
- constructor(params: IIsEntryLockedParams);
12
- execute(params: IIsEntryLockedUseCaseExecuteParams): Promise<boolean>;
13
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.IsEntryLockedUseCase = void 0;
7
- var _handlerGraphql = require("@webiny/handler-graphql");
8
- class IsEntryLockedUseCase {
9
- constructor(params) {
10
- this.getLockRecordUseCase = params.getLockRecordUseCase;
11
- this.getIdentity = params.getIdentity;
12
- }
13
- async execute(params) {
14
- try {
15
- const result = await this.getLockRecordUseCase.execute(params);
16
- if (!result || result.isExpired()) {
17
- return false;
18
- }
19
- const identity = this.getIdentity();
20
- return result.lockedBy.id !== identity.id;
21
- } catch (ex) {
22
- if (ex instanceof _handlerGraphql.NotFoundError === false) {
23
- throw ex;
24
- }
25
- return false;
26
- }
27
- }
28
- }
29
- exports.IsEntryLockedUseCase = IsEntryLockedUseCase;
30
-
31
- //# sourceMappingURL=IsEntryLockedUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_handlerGraphql","require","IsEntryLockedUseCase","constructor","params","getLockRecordUseCase","getIdentity","execute","result","isExpired","identity","lockedBy","id","ex","NotFoundError","exports"],"sources":["IsEntryLockedUseCase.ts"],"sourcesContent":["import type {\n IIsEntryLockedUseCase,\n IIsEntryLockedUseCaseExecuteParams\n} from \"~/abstractions/IIsEntryLocked\";\nimport type { IGetLockRecordUseCase } from \"~/abstractions/IGetLockRecordUseCase\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport type { IGetIdentity } from \"~/types\";\n\nexport interface IIsEntryLockedParams {\n getLockRecordUseCase: IGetLockRecordUseCase;\n getIdentity: IGetIdentity;\n}\n\nexport class IsEntryLockedUseCase implements IIsEntryLockedUseCase {\n private readonly getLockRecordUseCase: IGetLockRecordUseCase;\n private readonly getIdentity: IGetIdentity;\n\n public constructor(params: IIsEntryLockedParams) {\n this.getLockRecordUseCase = params.getLockRecordUseCase;\n this.getIdentity = params.getIdentity;\n }\n\n public async execute(params: IIsEntryLockedUseCaseExecuteParams): Promise<boolean> {\n try {\n const result = await this.getLockRecordUseCase.execute(params);\n if (!result || result.isExpired()) {\n return false;\n }\n const identity = this.getIdentity();\n\n return result.lockedBy.id !== identity.id;\n } catch (ex) {\n if (ex instanceof NotFoundError === false) {\n throw ex;\n }\n return false;\n }\n }\n}\n"],"mappings":";;;;;;AAKA,IAAAA,eAAA,GAAAC,OAAA;AAQO,MAAMC,oBAAoB,CAAkC;EAIxDC,WAAWA,CAACC,MAA4B,EAAE;IAC7C,IAAI,CAACC,oBAAoB,GAAGD,MAAM,CAACC,oBAAoB;IACvD,IAAI,CAACC,WAAW,GAAGF,MAAM,CAACE,WAAW;EACzC;EAEA,MAAaC,OAAOA,CAACH,MAA0C,EAAoB;IAC/E,IAAI;MACA,MAAMI,MAAM,GAAG,MAAM,IAAI,CAACH,oBAAoB,CAACE,OAAO,CAACH,MAAM,CAAC;MAC9D,IAAI,CAACI,MAAM,IAAIA,MAAM,CAACC,SAAS,CAAC,CAAC,EAAE;QAC/B,OAAO,KAAK;MAChB;MACA,MAAMC,QAAQ,GAAG,IAAI,CAACJ,WAAW,CAAC,CAAC;MAEnC,OAAOE,MAAM,CAACG,QAAQ,CAACC,EAAE,KAAKF,QAAQ,CAACE,EAAE;IAC7C,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,IAAIA,EAAE,YAAYC,6BAAa,KAAK,KAAK,EAAE;QACvC,MAAMD,EAAE;MACZ;MACA,OAAO,KAAK;IAChB;EACJ;AACJ;AAACE,OAAA,CAAAb,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -1,12 +0,0 @@
1
- import type { IKickOutCurrentUserUseCase, IKickOutCurrentUserUseCaseExecuteParams } from "../../abstractions/IKickOutCurrentUserUseCase";
2
- import type { IGetIdentity, IGetWebsocketsContextCallable } from "../../types";
3
- export interface IKickOutCurrentUserUseCaseParams {
4
- getWebsockets: IGetWebsocketsContextCallable;
5
- getIdentity: IGetIdentity;
6
- }
7
- export declare class KickOutCurrentUserUseCase implements IKickOutCurrentUserUseCase {
8
- private readonly getWebsockets;
9
- private readonly getIdentity;
10
- constructor(params: IKickOutCurrentUserUseCaseParams);
11
- execute(record: IKickOutCurrentUserUseCaseExecuteParams): Promise<void>;
12
- }
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.KickOutCurrentUserUseCase = void 0;
7
- var _utils = require("@webiny/utils");
8
- class KickOutCurrentUserUseCase {
9
- constructor(params) {
10
- this.getWebsockets = params.getWebsockets;
11
- this.getIdentity = params.getIdentity;
12
- }
13
- async execute(record) {
14
- const {
15
- lockedBy,
16
- id
17
- } = record;
18
- const websockets = this.getWebsockets();
19
- const {
20
- id: entryId
21
- } = (0, _utils.parseIdentifier)(id);
22
- const identity = this.getIdentity();
23
-
24
- /**
25
- * We do not want any errors to leak out of this method.
26
- * Just log the error, if any.
27
- */
28
- try {
29
- await websockets.send({
30
- id: lockedBy.id
31
- }, {
32
- action: `recordLocking.entry.kickOut.${entryId}`,
33
- data: {
34
- record: record.toObject(),
35
- user: identity
36
- }
37
- });
38
- } catch (ex) {
39
- console.error(`Could not send the kickOut message to a user with identity id: ${lockedBy.id}. More info in next log line.`);
40
- console.info(ex);
41
- }
42
- }
43
- }
44
- exports.KickOutCurrentUserUseCase = KickOutCurrentUserUseCase;
45
-
46
- //# sourceMappingURL=KickOutCurrentUserUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_utils","require","KickOutCurrentUserUseCase","constructor","params","getWebsockets","getIdentity","execute","record","lockedBy","id","websockets","entryId","parseIdentifier","identity","send","action","data","toObject","user","ex","console","error","info","exports"],"sources":["KickOutCurrentUserUseCase.ts"],"sourcesContent":["import type {\n IKickOutCurrentUserUseCase,\n IKickOutCurrentUserUseCaseExecuteParams\n} from \"~/abstractions/IKickOutCurrentUserUseCase\";\nimport type { IGetIdentity, IGetWebsocketsContextCallable } from \"~/types\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\nexport interface IKickOutCurrentUserUseCaseParams {\n getWebsockets: IGetWebsocketsContextCallable;\n getIdentity: IGetIdentity;\n}\n\nexport class KickOutCurrentUserUseCase implements IKickOutCurrentUserUseCase {\n private readonly getWebsockets: IGetWebsocketsContextCallable;\n private readonly getIdentity: IGetIdentity;\n\n public constructor(params: IKickOutCurrentUserUseCaseParams) {\n this.getWebsockets = params.getWebsockets;\n this.getIdentity = params.getIdentity;\n }\n\n public async execute(record: IKickOutCurrentUserUseCaseExecuteParams): Promise<void> {\n const { lockedBy, id } = record;\n\n const websockets = this.getWebsockets();\n\n const { id: entryId } = parseIdentifier(id);\n\n const identity = this.getIdentity();\n\n /**\n * We do not want any errors to leak out of this method.\n * Just log the error, if any.\n */\n try {\n await websockets.send(\n { id: lockedBy.id },\n {\n action: `recordLocking.entry.kickOut.${entryId}`,\n data: {\n record: record.toObject(),\n user: identity\n }\n }\n );\n } catch (ex) {\n console.error(\n `Could not send the kickOut message to a user with identity id: ${lockedBy.id}. More info in next log line.`\n );\n console.info(ex);\n }\n }\n}\n"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AAOO,MAAMC,yBAAyB,CAAuC;EAIlEC,WAAWA,CAACC,MAAwC,EAAE;IACzD,IAAI,CAACC,aAAa,GAAGD,MAAM,CAACC,aAAa;IACzC,IAAI,CAACC,WAAW,GAAGF,MAAM,CAACE,WAAW;EACzC;EAEA,MAAaC,OAAOA,CAACC,MAA+C,EAAiB;IACjF,MAAM;MAAEC,QAAQ;MAAEC;IAAG,CAAC,GAAGF,MAAM;IAE/B,MAAMG,UAAU,GAAG,IAAI,CAACN,aAAa,CAAC,CAAC;IAEvC,MAAM;MAAEK,EAAE,EAAEE;IAAQ,CAAC,GAAG,IAAAC,sBAAe,EAACH,EAAE,CAAC;IAE3C,MAAMI,QAAQ,GAAG,IAAI,CAACR,WAAW,CAAC,CAAC;;IAEnC;AACR;AACA;AACA;IACQ,IAAI;MACA,MAAMK,UAAU,CAACI,IAAI,CACjB;QAAEL,EAAE,EAAED,QAAQ,CAACC;MAAG,CAAC,EACnB;QACIM,MAAM,EAAE,+BAA+BJ,OAAO,EAAE;QAChDK,IAAI,EAAE;UACFT,MAAM,EAAEA,MAAM,CAACU,QAAQ,CAAC,CAAC;UACzBC,IAAI,EAAEL;QACV;MACJ,CACJ,CAAC;IACL,CAAC,CAAC,OAAOM,EAAE,EAAE;MACTC,OAAO,CAACC,KAAK,CACT,kEAAkEb,QAAQ,CAACC,EAAE,+BACjF,CAAC;MACDW,OAAO,CAACE,IAAI,CAACH,EAAE,CAAC;IACpB;EACJ;AACJ;AAACI,OAAA,CAAAtB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -1,13 +0,0 @@
1
- import type { IListAllLockRecordsUseCase, IListAllLockRecordsUseCaseExecuteParams, IListAllLockRecordsUseCaseExecuteResponse } from "../../abstractions/IListAllLockRecordsUseCase";
2
- import type { IRecordLockingModelManager } from "../../types";
3
- import type { ConvertEntryToLockRecordCb } from "../types";
4
- export interface IListAllLockRecordsUseCaseParams {
5
- getManager(): Promise<IRecordLockingModelManager>;
6
- convert: ConvertEntryToLockRecordCb;
7
- }
8
- export declare class ListAllLockRecordsUseCase implements IListAllLockRecordsUseCase {
9
- private readonly getManager;
10
- private readonly convert;
11
- constructor(params: IListAllLockRecordsUseCaseParams);
12
- execute(input: IListAllLockRecordsUseCaseExecuteParams): Promise<IListAllLockRecordsUseCaseExecuteResponse>;
13
- }
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ListAllLockRecordsUseCase = void 0;
7
- var _convertWhereCondition = require("../../utils/convertWhereCondition");
8
- class ListAllLockRecordsUseCase {
9
- constructor(params) {
10
- this.getManager = params.getManager;
11
- this.convert = params.convert;
12
- }
13
- async execute(input) {
14
- try {
15
- const manager = await this.getManager();
16
- const params = {
17
- ...input,
18
- where: (0, _convertWhereCondition.convertWhereCondition)(input.where)
19
- };
20
- const [items, meta] = await manager.listLatest(params);
21
- return {
22
- items: items.map(item => {
23
- return this.convert(item);
24
- }),
25
- meta
26
- };
27
- } catch (ex) {
28
- throw ex;
29
- }
30
- }
31
- }
32
- exports.ListAllLockRecordsUseCase = ListAllLockRecordsUseCase;
33
-
34
- //# sourceMappingURL=ListAllLockRecordsUseCase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_convertWhereCondition","require","ListAllLockRecordsUseCase","constructor","params","getManager","convert","execute","input","manager","where","convertWhereCondition","items","meta","listLatest","map","item","ex","exports"],"sources":["ListAllLockRecordsUseCase.ts"],"sourcesContent":["import type {\n IListAllLockRecordsUseCase,\n IListAllLockRecordsUseCaseExecuteParams,\n IListAllLockRecordsUseCaseExecuteResponse\n} from \"~/abstractions/IListAllLockRecordsUseCase\";\nimport type { IRecordLockingModelManager } from \"~/types\";\nimport { convertWhereCondition } from \"~/utils/convertWhereCondition\";\nimport type { ConvertEntryToLockRecordCb } from \"~/useCases/types\";\n\nexport interface IListAllLockRecordsUseCaseParams {\n getManager(): Promise<IRecordLockingModelManager>;\n convert: ConvertEntryToLockRecordCb;\n}\n\nexport class ListAllLockRecordsUseCase implements IListAllLockRecordsUseCase {\n private readonly getManager: () => Promise<IRecordLockingModelManager>;\n private readonly convert: ConvertEntryToLockRecordCb;\n\n public constructor(params: IListAllLockRecordsUseCaseParams) {\n this.getManager = params.getManager;\n this.convert = params.convert;\n }\n public async execute(\n input: IListAllLockRecordsUseCaseExecuteParams\n ): Promise<IListAllLockRecordsUseCaseExecuteResponse> {\n try {\n const manager = await this.getManager();\n const params: IListAllLockRecordsUseCaseExecuteParams = {\n ...input,\n where: convertWhereCondition(input.where)\n };\n\n const [items, meta] = await manager.listLatest(params);\n return {\n items: items.map(item => {\n return this.convert(item);\n }),\n meta\n };\n } catch (ex) {\n throw ex;\n }\n }\n}\n"],"mappings":";;;;;;AAMA,IAAAA,sBAAA,GAAAC,OAAA;AAQO,MAAMC,yBAAyB,CAAuC;EAIlEC,WAAWA,CAACC,MAAwC,EAAE;IACzD,IAAI,CAACC,UAAU,GAAGD,MAAM,CAACC,UAAU;IACnC,IAAI,CAACC,OAAO,GAAGF,MAAM,CAACE,OAAO;EACjC;EACA,MAAaC,OAAOA,CAChBC,KAA8C,EACI;IAClD,IAAI;MACA,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACJ,UAAU,CAAC,CAAC;MACvC,MAAMD,MAA+C,GAAG;QACpD,GAAGI,KAAK;QACRE,KAAK,EAAE,IAAAC,4CAAqB,EAACH,KAAK,CAACE,KAAK;MAC5C,CAAC;MAED,MAAM,CAACE,KAAK,EAAEC,IAAI,CAAC,GAAG,MAAMJ,OAAO,CAACK,UAAU,CAACV,MAAM,CAAC;MACtD,OAAO;QACHQ,KAAK,EAAEA,KAAK,CAACG,GAAG,CAACC,IAAI,IAAI;UACrB,OAAO,IAAI,CAACV,OAAO,CAACU,IAAI,CAAC;QAC7B,CAAC,CAAC;QACFH;MACJ,CAAC;IACL,CAAC,CAAC,OAAOI,EAAE,EAAE;MACT,MAAMA,EAAE;IACZ;EACJ;AACJ;AAACC,OAAA,CAAAhB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -1,14 +0,0 @@
1
- import type { IListLockRecordsUseCase, IListLockRecordsUseCaseExecuteParams, IListLockRecordsUseCaseExecuteResponse } from "../../abstractions/IListLockRecordsUseCase";
2
- import type { IGetIdentity } from "../../types";
3
- export interface IListLockRecordsUseCaseParams {
4
- listAllLockRecordsUseCase: IListLockRecordsUseCase;
5
- timeout: number;
6
- getIdentity: IGetIdentity;
7
- }
8
- export declare class ListLockRecordsUseCase implements IListLockRecordsUseCase {
9
- private readonly listAllLockRecordsUseCase;
10
- private readonly timeout;
11
- private readonly getIdentity;
12
- constructor(params: IListLockRecordsUseCaseParams);
13
- execute(input: IListLockRecordsUseCaseExecuteParams): Promise<IListLockRecordsUseCaseExecuteResponse>;
14
- }