@dosgato/api 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/access/access.model.d.ts +2 -0
  4. package/dist/access/access.model.js +14 -0
  5. package/dist/access/access.model.js.map +1 -0
  6. package/dist/access/access.resolver.d.ts +15 -0
  7. package/dist/access/access.resolver.js +133 -0
  8. package/dist/access/access.resolver.js.map +1 -0
  9. package/dist/asset/asset.database.d.ts +12 -0
  10. package/dist/asset/asset.database.js +116 -0
  11. package/dist/asset/asset.database.js.map +1 -0
  12. package/dist/asset/asset.model.d.ts +81 -0
  13. package/dist/asset/asset.model.js +271 -0
  14. package/dist/asset/asset.model.js.map +1 -0
  15. package/dist/asset/asset.resolver.d.ts +32 -0
  16. package/dist/asset/asset.resolver.js +325 -0
  17. package/dist/asset/asset.resolver.js.map +1 -0
  18. package/dist/asset/asset.service.d.ts +35 -0
  19. package/dist/asset/asset.service.js +225 -0
  20. package/dist/asset/asset.service.js.map +1 -0
  21. package/dist/assetfolder/assetfolder.database.d.ts +7 -0
  22. package/dist/assetfolder/assetfolder.database.js +85 -0
  23. package/dist/assetfolder/assetfolder.database.js.map +1 -0
  24. package/dist/assetfolder/assetfolder.model.d.ts +56 -0
  25. package/dist/assetfolder/assetfolder.model.js +160 -0
  26. package/dist/assetfolder/assetfolder.model.js.map +1 -0
  27. package/dist/assetfolder/assetfolder.resolver.d.ts +25 -0
  28. package/dist/assetfolder/assetfolder.resolver.js +255 -0
  29. package/dist/assetfolder/assetfolder.resolver.js.map +1 -0
  30. package/dist/assetfolder/assetfolder.service.d.ts +39 -0
  31. package/dist/assetfolder/assetfolder.service.js +355 -0
  32. package/dist/assetfolder/assetfolder.service.js.map +1 -0
  33. package/dist/assetrule/assetrule.database.d.ts +5 -0
  34. package/dist/assetrule/assetrule.database.js +161 -0
  35. package/dist/assetrule/assetrule.database.js.map +1 -0
  36. package/dist/assetrule/assetrule.model.d.ts +71 -0
  37. package/dist/assetrule/assetrule.model.js +221 -0
  38. package/dist/assetrule/assetrule.model.js.map +1 -0
  39. package/dist/assetrule/assetrule.resolver.d.ts +12 -0
  40. package/dist/assetrule/assetrule.resolver.js +100 -0
  41. package/dist/assetrule/assetrule.resolver.js.map +1 -0
  42. package/dist/assetrule/assetrule.service.d.ts +26 -0
  43. package/dist/assetrule/assetrule.service.js +184 -0
  44. package/dist/assetrule/assetrule.service.js.map +1 -0
  45. package/dist/createdb.d.ts +2 -0
  46. package/dist/createdb.js +541 -0
  47. package/dist/createdb.js.map +1 -0
  48. package/dist/data/data.database.d.ts +7 -0
  49. package/dist/data/data.database.js +265 -0
  50. package/dist/data/data.database.js.map +1 -0
  51. package/dist/data/data.indexing.d.ts +2 -0
  52. package/dist/data/data.indexing.js +23 -0
  53. package/dist/data/data.indexing.js.map +1 -0
  54. package/dist/data/data.model.d.ts +69 -0
  55. package/dist/data/data.model.js +206 -0
  56. package/dist/data/data.model.js.map +1 -0
  57. package/dist/data/data.resolver.d.ts +36 -0
  58. package/dist/data/data.resolver.js +384 -0
  59. package/dist/data/data.resolver.js.map +1 -0
  60. package/dist/data/data.service.d.ts +41 -0
  61. package/dist/data/data.service.js +374 -0
  62. package/dist/data/data.service.js.map +1 -0
  63. package/dist/datafolder/datafolder.database.d.ts +7 -0
  64. package/dist/datafolder/datafolder.database.js +72 -0
  65. package/dist/datafolder/datafolder.database.js.map +1 -0
  66. package/dist/datafolder/datafolder.model.d.ts +48 -0
  67. package/dist/datafolder/datafolder.model.js +139 -0
  68. package/dist/datafolder/datafolder.model.js.map +1 -0
  69. package/dist/datafolder/datafolder.resolver.d.ts +24 -0
  70. package/dist/datafolder/datafolder.resolver.js +243 -0
  71. package/dist/datafolder/datafolder.resolver.js.map +1 -0
  72. package/dist/datafolder/datafolder.service.d.ts +32 -0
  73. package/dist/datafolder/datafolder.service.js +223 -0
  74. package/dist/datafolder/datafolder.service.js.map +1 -0
  75. package/dist/dataroot/dataroot.model.d.ts +19 -0
  76. package/dist/dataroot/dataroot.model.js +72 -0
  77. package/dist/dataroot/dataroot.model.js.map +1 -0
  78. package/dist/dataroot/dataroot.resolver.d.ts +11 -0
  79. package/dist/dataroot/dataroot.resolver.js +87 -0
  80. package/dist/dataroot/dataroot.resolver.js.map +1 -0
  81. package/dist/dataroot/dataroot.service.d.ts +12 -0
  82. package/dist/dataroot/dataroot.service.js +62 -0
  83. package/dist/dataroot/dataroot.service.js.map +1 -0
  84. package/dist/datarule/datarule.database.d.ts +5 -0
  85. package/dist/datarule/datarule.database.js +144 -0
  86. package/dist/datarule/datarule.database.js.map +1 -0
  87. package/dist/datarule/datarule.model.d.ts +55 -0
  88. package/dist/datarule/datarule.model.js +200 -0
  89. package/dist/datarule/datarule.model.js.map +1 -0
  90. package/dist/datarule/datarule.resolver.d.ts +13 -0
  91. package/dist/datarule/datarule.resolver.js +114 -0
  92. package/dist/datarule/datarule.resolver.js.map +1 -0
  93. package/dist/datarule/datarule.service.d.ts +27 -0
  94. package/dist/datarule/datarule.service.js +191 -0
  95. package/dist/datarule/datarule.service.js.map +1 -0
  96. package/dist/fixtures.d.ts +1 -0
  97. package/dist/fixtures.js +697 -0
  98. package/dist/fixtures.js.map +1 -0
  99. package/dist/fixturetemplates.d.ts +110 -0
  100. package/dist/fixturetemplates.js +178 -0
  101. package/dist/fixturetemplates.js.map +1 -0
  102. package/dist/globalrule/globalrule.database.d.ts +5 -0
  103. package/dist/globalrule/globalrule.database.js +65 -0
  104. package/dist/globalrule/globalrule.database.js.map +1 -0
  105. package/dist/globalrule/globalrule.model.d.ts +34 -0
  106. package/dist/globalrule/globalrule.model.js +120 -0
  107. package/dist/globalrule/globalrule.model.js.map +1 -0
  108. package/dist/globalrule/globalrule.resolver.d.ts +11 -0
  109. package/dist/globalrule/globalrule.resolver.js +85 -0
  110. package/dist/globalrule/globalrule.resolver.js.map +1 -0
  111. package/dist/globalrule/globalrule.service.d.ts +18 -0
  112. package/dist/globalrule/globalrule.service.js +111 -0
  113. package/dist/globalrule/globalrule.service.js.map +1 -0
  114. package/dist/group/group.database.d.ts +41 -0
  115. package/dist/group/group.database.js +190 -0
  116. package/dist/group/group.database.js.map +1 -0
  117. package/dist/group/group.model.d.ts +19 -0
  118. package/dist/group/group.model.js +70 -0
  119. package/dist/group/group.model.js.map +1 -0
  120. package/dist/group/group.resolver.d.ts +27 -0
  121. package/dist/group/group.resolver.js +275 -0
  122. package/dist/group/group.resolver.js.map +1 -0
  123. package/dist/group/group.service.d.ts +46 -0
  124. package/dist/group/group.service.js +384 -0
  125. package/dist/group/group.service.js.map +1 -0
  126. package/dist/index.d.ts +18 -0
  127. package/dist/index.js +109 -0
  128. package/dist/index.js.map +1 -0
  129. package/dist/internal.d.ts +88 -0
  130. package/dist/internal.js +89 -0
  131. package/dist/internal.js.map +1 -0
  132. package/dist/migrations.d.ts +2 -0
  133. package/dist/migrations.js +41 -0
  134. package/dist/migrations.js.map +1 -0
  135. package/dist/organization/organization.database.d.ts +2 -0
  136. package/dist/organization/organization.database.js +16 -0
  137. package/dist/organization/organization.database.js.map +1 -0
  138. package/dist/organization/organization.model.d.ts +5 -0
  139. package/dist/organization/organization.model.js +35 -0
  140. package/dist/organization/organization.model.js.map +1 -0
  141. package/dist/organization/organization.resolver.d.ts +6 -0
  142. package/dist/organization/organization.resolver.js +43 -0
  143. package/dist/organization/organization.resolver.js.map +1 -0
  144. package/dist/organization/organization.service.d.ts +12 -0
  145. package/dist/organization/organization.service.js +35 -0
  146. package/dist/organization/organization.service.js.map +1 -0
  147. package/dist/page/page.database.d.ts +10 -0
  148. package/dist/page/page.database.js +269 -0
  149. package/dist/page/page.database.js.map +1 -0
  150. package/dist/page/page.indexing.d.ts +3 -0
  151. package/dist/page/page.indexing.js +26 -0
  152. package/dist/page/page.indexing.js.map +1 -0
  153. package/dist/page/page.migrations.d.ts +13 -0
  154. package/dist/page/page.migrations.js +55 -0
  155. package/dist/page/page.migrations.js.map +1 -0
  156. package/dist/page/page.model.d.ts +88 -0
  157. package/dist/page/page.model.js +272 -0
  158. package/dist/page/page.model.js.map +1 -0
  159. package/dist/page/page.resolver.d.ts +48 -0
  160. package/dist/page/page.resolver.js +542 -0
  161. package/dist/page/page.resolver.js.map +1 -0
  162. package/dist/page/page.service.d.ts +59 -0
  163. package/dist/page/page.service.js +399 -0
  164. package/dist/page/page.service.js.map +1 -0
  165. package/dist/page/page.util.d.ts +3 -0
  166. package/dist/page/page.util.js +16 -0
  167. package/dist/page/page.util.js.map +1 -0
  168. package/dist/page/page.validation.d.ts +2 -0
  169. package/dist/page/page.validation.js +21 -0
  170. package/dist/page/page.validation.js.map +1 -0
  171. package/dist/pagerule/pagerule.database.d.ts +5 -0
  172. package/dist/pagerule/pagerule.database.js +212 -0
  173. package/dist/pagerule/pagerule.database.js.map +1 -0
  174. package/dist/pagerule/pagerule.model.d.ts +71 -0
  175. package/dist/pagerule/pagerule.model.js +272 -0
  176. package/dist/pagerule/pagerule.model.js.map +1 -0
  177. package/dist/pagerule/pagerule.resolver.d.ts +13 -0
  178. package/dist/pagerule/pagerule.resolver.js +114 -0
  179. package/dist/pagerule/pagerule.resolver.js.map +1 -0
  180. package/dist/pagerule/pagerule.service.d.ts +23 -0
  181. package/dist/pagerule/pagerule.service.js +180 -0
  182. package/dist/pagerule/pagerule.service.js.map +1 -0
  183. package/dist/pagetree/pagetree.database.d.ts +13 -0
  184. package/dist/pagetree/pagetree.database.js +84 -0
  185. package/dist/pagetree/pagetree.database.js.map +1 -0
  186. package/dist/pagetree/pagetree.model.d.ts +43 -0
  187. package/dist/pagetree/pagetree.model.js +146 -0
  188. package/dist/pagetree/pagetree.model.js.map +1 -0
  189. package/dist/pagetree/pagetree.resolver.d.ts +23 -0
  190. package/dist/pagetree/pagetree.resolver.js +238 -0
  191. package/dist/pagetree/pagetree.resolver.js.map +1 -0
  192. package/dist/pagetree/pagetree.service.d.ts +25 -0
  193. package/dist/pagetree/pagetree.service.js +221 -0
  194. package/dist/pagetree/pagetree.service.js.map +1 -0
  195. package/dist/role/role.database.d.ts +17 -0
  196. package/dist/role/role.database.js +74 -0
  197. package/dist/role/role.database.js.map +1 -0
  198. package/dist/role/role.model.d.ts +26 -0
  199. package/dist/role/role.model.js +84 -0
  200. package/dist/role/role.model.js.map +1 -0
  201. package/dist/role/role.resolver.d.ts +27 -0
  202. package/dist/role/role.resolver.js +294 -0
  203. package/dist/role/role.resolver.js.map +1 -0
  204. package/dist/role/role.service.d.ts +33 -0
  205. package/dist/role/role.service.js +265 -0
  206. package/dist/role/role.service.js.map +1 -0
  207. package/dist/run.d.ts +1 -0
  208. package/dist/run.js +29 -0
  209. package/dist/run.js.map +1 -0
  210. package/dist/scalars/datetime.d.ts +2 -0
  211. package/dist/scalars/datetime.js +19 -0
  212. package/dist/scalars/datetime.js.map +1 -0
  213. package/dist/scalars/index.d.ts +3 -0
  214. package/dist/scalars/index.js +4 -0
  215. package/dist/scalars/index.js.map +1 -0
  216. package/dist/scalars/jsondata.d.ts +2 -0
  217. package/dist/scalars/jsondata.js +15 -0
  218. package/dist/scalars/jsondata.js.map +1 -0
  219. package/dist/scalars/urlsafestring.d.ts +4 -0
  220. package/dist/scalars/urlsafestring.js +28 -0
  221. package/dist/scalars/urlsafestring.js.map +1 -0
  222. package/dist/site/site.database.d.ts +15 -0
  223. package/dist/site/site.database.js +164 -0
  224. package/dist/site/site.database.js.map +1 -0
  225. package/dist/site/site.model.d.ts +62 -0
  226. package/dist/site/site.model.js +197 -0
  227. package/dist/site/site.model.js.map +1 -0
  228. package/dist/site/site.resolver.d.ts +30 -0
  229. package/dist/site/site.resolver.js +326 -0
  230. package/dist/site/site.resolver.js.map +1 -0
  231. package/dist/site/site.service.d.ts +35 -0
  232. package/dist/site/site.service.js +199 -0
  233. package/dist/site/site.service.js.map +1 -0
  234. package/dist/siterule/siterule.database.d.ts +5 -0
  235. package/dist/siterule/siterule.database.js +139 -0
  236. package/dist/siterule/siterule.database.js.map +1 -0
  237. package/dist/siterule/siterule.model.d.ts +53 -0
  238. package/dist/siterule/siterule.model.js +203 -0
  239. package/dist/siterule/siterule.model.js.map +1 -0
  240. package/dist/siterule/siterule.resolver.d.ts +12 -0
  241. package/dist/siterule/siterule.resolver.js +100 -0
  242. package/dist/siterule/siterule.resolver.js.map +1 -0
  243. package/dist/siterule/siterule.service.d.ts +23 -0
  244. package/dist/siterule/siterule.service.js +148 -0
  245. package/dist/siterule/siterule.service.js.map +1 -0
  246. package/dist/template/template.database.d.ts +15 -0
  247. package/dist/template/template.database.js +61 -0
  248. package/dist/template/template.database.js.map +1 -0
  249. package/dist/template/template.model.d.ts +32 -0
  250. package/dist/template/template.model.js +124 -0
  251. package/dist/template/template.model.js.map +1 -0
  252. package/dist/template/template.resolver.d.ts +22 -0
  253. package/dist/template/template.resolver.js +216 -0
  254. package/dist/template/template.resolver.js.map +1 -0
  255. package/dist/template/template.service.d.ts +27 -0
  256. package/dist/template/template.service.js +192 -0
  257. package/dist/template/template.service.js.map +1 -0
  258. package/dist/templaterule/templaterule.database.d.ts +5 -0
  259. package/dist/templaterule/templaterule.database.js +80 -0
  260. package/dist/templaterule/templaterule.database.js.map +1 -0
  261. package/dist/templaterule/templaterule.model.d.ts +38 -0
  262. package/dist/templaterule/templaterule.model.js +136 -0
  263. package/dist/templaterule/templaterule.model.js.map +1 -0
  264. package/dist/templaterule/templaterule.resolver.d.ts +12 -0
  265. package/dist/templaterule/templaterule.resolver.js +100 -0
  266. package/dist/templaterule/templaterule.resolver.js.map +1 -0
  267. package/dist/templaterule/templaterule.service.d.ts +19 -0
  268. package/dist/templaterule/templaterule.service.js +123 -0
  269. package/dist/templaterule/templaterule.service.js.map +1 -0
  270. package/dist/user/user.database.d.ts +22 -0
  271. package/dist/user/user.database.js +116 -0
  272. package/dist/user/user.database.js.map +1 -0
  273. package/dist/user/user.model.d.ts +42 -0
  274. package/dist/user/user.model.js +122 -0
  275. package/dist/user/user.model.js.map +1 -0
  276. package/dist/user/user.resolver.d.ts +16 -0
  277. package/dist/user/user.resolver.js +140 -0
  278. package/dist/user/user.resolver.js.map +1 -0
  279. package/dist/user/user.service.d.ts +29 -0
  280. package/dist/user/user.service.js +195 -0
  281. package/dist/user/user.service.js.map +1 -0
  282. package/dist/util/authservice.d.ts +28 -0
  283. package/dist/util/authservice.js +131 -0
  284. package/dist/util/authservice.js.map +1 -0
  285. package/dist/util/dates.d.ts +2 -0
  286. package/dist/util/dates.js +4 -0
  287. package/dist/util/dates.js.map +1 -0
  288. package/dist/util/filehandler.d.ts +15 -0
  289. package/dist/util/filehandler.js +48 -0
  290. package/dist/util/filehandler.js.map +1 -0
  291. package/dist/util/index.d.ts +13 -0
  292. package/dist/util/index.js +26 -0
  293. package/dist/util/index.js.map +1 -0
  294. package/dist/util/indexing.d.ts +12 -0
  295. package/dist/util/indexing.js +74 -0
  296. package/dist/util/indexing.js.map +1 -0
  297. package/dist/util/migrations.d.ts +15 -0
  298. package/dist/util/migrations.js +2 -0
  299. package/dist/util/migrations.js.map +1 -0
  300. package/dist/util/mutationlogger.d.ts +1 -0
  301. package/dist/util/mutationlogger.js +9 -0
  302. package/dist/util/mutationlogger.js.map +1 -0
  303. package/dist/util/registry.d.ts +25 -0
  304. package/dist/util/registry.js +66 -0
  305. package/dist/util/registry.js.map +1 -0
  306. package/dist/util/rules.d.ts +6 -0
  307. package/dist/util/rules.js +31 -0
  308. package/dist/util/rules.js.map +1 -0
  309. package/dist/util/sharedtypes.d.ts +3 -0
  310. package/dist/util/sharedtypes.js +2 -0
  311. package/dist/util/sharedtypes.js.map +1 -0
  312. package/dist/util/stopwords.d.ts +1 -0
  313. package/dist/util/stopwords.js +152 -0
  314. package/dist/util/stopwords.js.map +1 -0
  315. package/dist/version/version.model.d.ts +11 -0
  316. package/dist/version/version.model.js +46 -0
  317. package/dist/version/version.model.js.map +1 -0
  318. package/dist/version/version.resolver.d.ts +6 -0
  319. package/dist/version/version.resolver.js +45 -0
  320. package/dist/version/version.resolver.js.map +1 -0
  321. package/dist/versionedservice/service.d.ts +148 -0
  322. package/dist/versionedservice/service.js +547 -0
  323. package/dist/versionedservice/service.js.map +1 -0
  324. package/dist/versionedservice/types.d.ts +87 -0
  325. package/dist/versionedservice/types.js +11 -0
  326. package/dist/versionedservice/types.js.map +1 -0
  327. package/package.json +50 -0
  328. package/readme/DosGato.mwb +0 -0
  329. package/readme/DosGato.mwb.bak +0 -0
  330. package/readme/upgradeflow2.png +0 -0
@@ -0,0 +1,255 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Context } from '@txstate-mws/graphql-server';
14
+ import { Resolver, Arg, Ctx, FieldResolver, Root, Mutation, ID, Query } from 'type-graphql';
15
+ import { Asset, AssetFilter, Role, RoleService, User, AssetFolder, AssetFolderFilter, AssetFolderPermission, AssetFolderPermissions, AssetFolderService, AssetRuleService, UserService, AssetFolderResponse, CreateAssetFolderInput } from '../internal.js';
16
+ import { isNull } from 'txstate-utils';
17
+ let AssetFolderResolver = class AssetFolderResolver {
18
+ async assetfolders(ctx, filter) {
19
+ return await ctx.svc(AssetFolderService).find(filter);
20
+ }
21
+ async deletedBy(ctx, folder) {
22
+ if (isNull(folder.deletedBy))
23
+ return null;
24
+ else
25
+ return await ctx.svc(UserService).findByInternalId(folder.deletedBy);
26
+ }
27
+ async folder(ctx, folder) {
28
+ return await ctx.svc(AssetFolderService).getParent(folder);
29
+ }
30
+ async ancestors(ctx, folder) {
31
+ return await ctx.svc(AssetFolderService).getAncestors(folder);
32
+ }
33
+ async path(ctx, folder) {
34
+ return await ctx.svc(AssetFolderService).getPath(folder);
35
+ }
36
+ async assets(ctx, folder, filter, recursive) {
37
+ return await ctx.svc(AssetFolderService).getChildAssets(folder, recursive, filter);
38
+ }
39
+ async folders(ctx, folder, filter, recursive) {
40
+ return await ctx.svc(AssetFolderService).getChildFolders(folder, recursive, filter);
41
+ }
42
+ async roles(ctx, folder, withPermission) {
43
+ let rules = await ctx.svc(AssetRuleService).findByAssetFolder(folder);
44
+ if (withPermission)
45
+ rules = rules.filter(r => withPermission.some(p => r.grants[p]));
46
+ return await ctx.svc(RoleService).findByIds(rules.map(r => r.roleId));
47
+ }
48
+ permissions(folder) {
49
+ return folder;
50
+ }
51
+ async createAssetFolder(ctx, args) {
52
+ return await ctx.svc(AssetFolderService).create(args);
53
+ }
54
+ async renameAssetFolder(ctx, folderId, name) {
55
+ return await ctx.svc(AssetFolderService).rename(folderId, name);
56
+ }
57
+ async moveAssetFolder(ctx, folderId, targetId) {
58
+ return await ctx.svc(AssetFolderService).move(folderId, targetId);
59
+ }
60
+ async deleteAssetFolder(ctx, folderId) {
61
+ return await ctx.svc(AssetFolderService).delete(folderId);
62
+ }
63
+ async undeleteAssetFolder(ctx, folderId) {
64
+ return await ctx.svc(AssetFolderService).undelete(folderId);
65
+ }
66
+ };
67
+ __decorate([
68
+ Query(returns => [AssetFolder]),
69
+ __param(0, Ctx()),
70
+ __param(1, Arg('filter', { nullable: true })),
71
+ __metadata("design:type", Function),
72
+ __metadata("design:paramtypes", [Context, AssetFolderFilter]),
73
+ __metadata("design:returntype", Promise)
74
+ ], AssetFolderResolver.prototype, "assetfolders", null);
75
+ __decorate([
76
+ FieldResolver(returns => User, { nullable: true, description: 'Null when the folder is not in the soft-deleted state.' }),
77
+ __param(0, Ctx()),
78
+ __param(1, Root()),
79
+ __metadata("design:type", Function),
80
+ __metadata("design:paramtypes", [Context, AssetFolder]),
81
+ __metadata("design:returntype", Promise)
82
+ ], AssetFolderResolver.prototype, "deletedBy", null);
83
+ __decorate([
84
+ FieldResolver(returns => AssetFolder, { nullable: true, description: 'Returns parent folder, or null if this folder is the site root.' }),
85
+ __param(0, Ctx()),
86
+ __param(1, Root()),
87
+ __metadata("design:type", Function),
88
+ __metadata("design:paramtypes", [Context, AssetFolder]),
89
+ __metadata("design:returntype", Promise)
90
+ ], AssetFolderResolver.prototype, "folder", null);
91
+ __decorate([
92
+ FieldResolver(returns => [AssetFolder]),
93
+ __param(0, Ctx()),
94
+ __param(1, Root()),
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", [Context, AssetFolder]),
97
+ __metadata("design:returntype", Promise)
98
+ ], AssetFolderResolver.prototype, "ancestors", null);
99
+ __decorate([
100
+ FieldResolver(returns => String),
101
+ __param(0, Ctx()),
102
+ __param(1, Root()),
103
+ __metadata("design:type", Function),
104
+ __metadata("design:paramtypes", [Context, AssetFolder]),
105
+ __metadata("design:returntype", Promise)
106
+ ], AssetFolderResolver.prototype, "path", null);
107
+ __decorate([
108
+ FieldResolver(returns => [Asset]),
109
+ __param(0, Ctx()),
110
+ __param(1, Root()),
111
+ __param(2, Arg('filter', { nullable: true })),
112
+ __param(3, Arg('recursive', { nullable: true })),
113
+ __metadata("design:type", Function),
114
+ __metadata("design:paramtypes", [Context, AssetFolder,
115
+ AssetFilter, Boolean]),
116
+ __metadata("design:returntype", Promise)
117
+ ], AssetFolderResolver.prototype, "assets", null);
118
+ __decorate([
119
+ FieldResolver(returns => [AssetFolder]),
120
+ __param(0, Ctx()),
121
+ __param(1, Root()),
122
+ __param(2, Arg('filter', { nullable: true })),
123
+ __param(3, Arg('recursive', { nullable: true })),
124
+ __metadata("design:type", Function),
125
+ __metadata("design:paramtypes", [Context, AssetFolder,
126
+ AssetFolderFilter, Boolean]),
127
+ __metadata("design:returntype", Promise)
128
+ ], AssetFolderResolver.prototype, "folders", null);
129
+ __decorate([
130
+ FieldResolver(returns => [Role], { description: 'Returns a list of all roles with at least one of the specified permissions on this folder, or any permission if null.' }),
131
+ __param(0, Ctx()),
132
+ __param(1, Root()),
133
+ __param(2, Arg('withPermission', type => [AssetFolderPermission], { nullable: true })),
134
+ __metadata("design:type", Function),
135
+ __metadata("design:paramtypes", [Context, AssetFolder, Array]),
136
+ __metadata("design:returntype", Promise)
137
+ ], AssetFolderResolver.prototype, "roles", null);
138
+ __decorate([
139
+ FieldResolver(returns => AssetFolderPermissions, {
140
+ description: `Reveal the simplified results after all authorization rules are taken into account
141
+ for the current user. Makes it easy to light up, disable, or hide buttons in the UI.`
142
+ }),
143
+ __param(0, Root()),
144
+ __metadata("design:type", Function),
145
+ __metadata("design:paramtypes", [AssetFolder]),
146
+ __metadata("design:returntype", void 0)
147
+ ], AssetFolderResolver.prototype, "permissions", null);
148
+ __decorate([
149
+ Mutation(returns => AssetFolderResponse, { description: 'Create a new asset folder.' }),
150
+ __param(0, Ctx()),
151
+ __param(1, Arg('args', type => CreateAssetFolderInput)),
152
+ __metadata("design:type", Function),
153
+ __metadata("design:paramtypes", [Context, CreateAssetFolderInput]),
154
+ __metadata("design:returntype", Promise)
155
+ ], AssetFolderResolver.prototype, "createAssetFolder", null);
156
+ __decorate([
157
+ Mutation(returns => AssetFolderResponse),
158
+ __param(0, Ctx()),
159
+ __param(1, Arg('folderId', type => ID)),
160
+ __param(2, Arg('name')),
161
+ __metadata("design:type", Function),
162
+ __metadata("design:paramtypes", [Context, String, String]),
163
+ __metadata("design:returntype", Promise)
164
+ ], AssetFolderResolver.prototype, "renameAssetFolder", null);
165
+ __decorate([
166
+ Mutation(returns => AssetFolderResponse),
167
+ __param(0, Ctx()),
168
+ __param(1, Arg('folderId', type => ID)),
169
+ __param(2, Arg('targetId', type => ID)),
170
+ __metadata("design:type", Function),
171
+ __metadata("design:paramtypes", [Context, String, String]),
172
+ __metadata("design:returntype", Promise)
173
+ ], AssetFolderResolver.prototype, "moveAssetFolder", null);
174
+ __decorate([
175
+ Mutation(returns => AssetFolderResponse),
176
+ __param(0, Ctx()),
177
+ __param(1, Arg('folderId', type => ID)),
178
+ __metadata("design:type", Function),
179
+ __metadata("design:paramtypes", [Context, String]),
180
+ __metadata("design:returntype", Promise)
181
+ ], AssetFolderResolver.prototype, "deleteAssetFolder", null);
182
+ __decorate([
183
+ Mutation(returns => AssetFolderResponse),
184
+ __param(0, Ctx()),
185
+ __param(1, Arg('folderId', type => ID)),
186
+ __metadata("design:type", Function),
187
+ __metadata("design:paramtypes", [Context, String]),
188
+ __metadata("design:returntype", Promise)
189
+ ], AssetFolderResolver.prototype, "undeleteAssetFolder", null);
190
+ AssetFolderResolver = __decorate([
191
+ Resolver(of => AssetFolder)
192
+ ], AssetFolderResolver);
193
+ export { AssetFolderResolver };
194
+ let AssetFolderPermissionsResolver = class AssetFolderPermissionsResolver {
195
+ async create(ctx, folder) {
196
+ return await ctx.svc(AssetFolderService).mayCreate(folder);
197
+ }
198
+ async update(ctx, folder) {
199
+ return await ctx.svc(AssetFolderService).mayUpdate(folder);
200
+ }
201
+ async move(ctx, folder) {
202
+ return await ctx.svc(AssetFolderService).mayMove(folder);
203
+ }
204
+ async delete(ctx, folder) {
205
+ return await ctx.svc(AssetFolderService).mayDelete(folder);
206
+ }
207
+ async undelete(ctx, folder) {
208
+ return await ctx.svc(AssetFolderService).mayUndelete(folder);
209
+ }
210
+ };
211
+ __decorate([
212
+ FieldResolver(returns => Boolean, { description: 'User may create or move assets or folders inside this folder.' }),
213
+ __param(0, Ctx()),
214
+ __param(1, Root()),
215
+ __metadata("design:type", Function),
216
+ __metadata("design:paramtypes", [Context, AssetFolder]),
217
+ __metadata("design:returntype", Promise)
218
+ ], AssetFolderPermissionsResolver.prototype, "create", null);
219
+ __decorate([
220
+ FieldResolver(returns => Boolean, { description: 'User may update this folder but not necessarily move or publish it.' }),
221
+ __param(0, Ctx()),
222
+ __param(1, Root()),
223
+ __metadata("design:type", Function),
224
+ __metadata("design:paramtypes", [Context, AssetFolder]),
225
+ __metadata("design:returntype", Promise)
226
+ ], AssetFolderPermissionsResolver.prototype, "update", null);
227
+ __decorate([
228
+ FieldResolver(returns => Boolean, { description: 'User may move this asset folder beneath a folder for which they have the `create` permission.' }),
229
+ __param(0, Ctx()),
230
+ __param(1, Root()),
231
+ __metadata("design:type", Function),
232
+ __metadata("design:paramtypes", [Context, AssetFolder]),
233
+ __metadata("design:returntype", Promise)
234
+ ], AssetFolderPermissionsResolver.prototype, "move", null);
235
+ __decorate([
236
+ FieldResolver(returns => Boolean, { description: 'User may soft-delete this asset folder.' }),
237
+ __param(0, Ctx()),
238
+ __param(1, Root()),
239
+ __metadata("design:type", Function),
240
+ __metadata("design:paramtypes", [Context, AssetFolder]),
241
+ __metadata("design:returntype", Promise)
242
+ ], AssetFolderPermissionsResolver.prototype, "delete", null);
243
+ __decorate([
244
+ FieldResolver(returns => Boolean, { description: 'User may undelete this asset folder. Returns false when the asset folder is not deleted.' }),
245
+ __param(0, Ctx()),
246
+ __param(1, Root()),
247
+ __metadata("design:type", Function),
248
+ __metadata("design:paramtypes", [Context, AssetFolder]),
249
+ __metadata("design:returntype", Promise)
250
+ ], AssetFolderPermissionsResolver.prototype, "undelete", null);
251
+ AssetFolderPermissionsResolver = __decorate([
252
+ Resolver(of => AssetFolderPermissions)
253
+ ], AssetFolderPermissionsResolver);
254
+ export { AssetFolderPermissionsResolver };
255
+ //# sourceMappingURL=assetfolder.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetfolder.resolver.js","sourceRoot":"","sources":["../../src/assetfolder/assetfolder.resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { BaseService } from '@txstate-mws/graphql-server';
2
+ import { DosGatoService, AssetFolder, CreateAssetFolderInput, AssetFolderResponse, AssetFilter, AssetFolderFilter } from '../internal.js';
3
+ export declare class AssetFolderServiceInternal extends BaseService {
4
+ find(filter?: AssetFolderFilter): Promise<AssetFolder[]>;
5
+ findByInternalId(id: number): Promise<AssetFolder | undefined>;
6
+ findById(id: string): Promise<AssetFolder | undefined>;
7
+ findByIds(ids: string[]): Promise<AssetFolder[]>;
8
+ getAncestors(folder: AssetFolder): Promise<AssetFolder[]>;
9
+ getParent(folder: AssetFolder): Promise<AssetFolder | undefined>;
10
+ convertPathsToIDPaths(pathstrings: string[]): Promise<string[]>;
11
+ processFolderFilters(filter?: AssetFolderFilter): Promise<AssetFolderFilter | undefined>;
12
+ getChildFolders(folder: AssetFolder, recursive?: boolean, filter?: AssetFolderFilter): Promise<AssetFolder[]>;
13
+ getChildFoldersByIDPaths(idpaths: string[]): Promise<AssetFolder[]>;
14
+ getChildAssets(folder: AssetFolder, recursive?: boolean, filter?: AssetFilter): Promise<import("../internal.js").Asset[]>;
15
+ getPath(folder: AssetFolder): Promise<string>;
16
+ }
17
+ export declare class AssetFolderService extends DosGatoService<AssetFolder> {
18
+ raw: AssetFolderServiceInternal;
19
+ find(filter?: AssetFolderFilter): Promise<AssetFolder[]>;
20
+ findByInternalId(internalId: number): Promise<AssetFolder | undefined>;
21
+ findById(id: string): Promise<AssetFolder | undefined>;
22
+ getAncestors(folder: AssetFolder): Promise<AssetFolder[]>;
23
+ getParent(folder: AssetFolder): Promise<AssetFolder | undefined>;
24
+ getChildFolders(folder: AssetFolder, recursive?: boolean, filter?: AssetFolderFilter): Promise<AssetFolder[]>;
25
+ getChildAssets(folder: AssetFolder, recursive?: boolean, filter?: AssetFilter): Promise<import("../internal.js").Asset[]>;
26
+ getPath(folder: AssetFolder): Promise<string>;
27
+ create(args: CreateAssetFolderInput): Promise<AssetFolderResponse>;
28
+ rename(folderId: string, name: string): Promise<AssetFolderResponse>;
29
+ move(folderId: string, targetFolderId: string): Promise<AssetFolderResponse>;
30
+ delete(folderId: string): Promise<AssetFolderResponse>;
31
+ undelete(folderId: string): Promise<AssetFolderResponse>;
32
+ mayView(folder: AssetFolder): Promise<boolean>;
33
+ mayViewForEdit(folder: AssetFolder): Promise<boolean>;
34
+ mayCreate(folder: AssetFolder): Promise<boolean>;
35
+ mayMove(folder: AssetFolder): Promise<boolean>;
36
+ mayUpdate(folder: AssetFolder): Promise<boolean>;
37
+ mayDelete(folder: AssetFolder): Promise<boolean>;
38
+ mayUndelete(folder: AssetFolder): Promise<boolean>;
39
+ }
@@ -0,0 +1,355 @@
1
+ import { BaseService } from '@txstate-mws/graphql-server';
2
+ import { OneToManyLoader, PrimaryKeyLoader } from 'dataloader-factory';
3
+ import { AssetService, DosGatoService, getAssetFolders, AssetServiceInternal, createAssetFolder, AssetFolderResponse, renameAssetFolder, moveAssetFolder, deleteAssetFolder, undeleteAssetFolder, normalizePath } from '../internal.js';
4
+ import { isNull, isNotNull, unique, mapConcurrent, intersect, isNotBlank, keyby } from 'txstate-utils';
5
+ const assetFolderByInternalIdLoader = new PrimaryKeyLoader({
6
+ fetch: async (ids) => await getAssetFolders({ internalIds: ids }),
7
+ extractId: af => af.internalId
8
+ });
9
+ const assetFolderByIdLoader = new PrimaryKeyLoader({
10
+ fetch: async (ids) => await getAssetFolders({ ids }),
11
+ idLoader: assetFolderByInternalIdLoader
12
+ });
13
+ assetFolderByInternalIdLoader.addIdLoader(assetFolderByIdLoader);
14
+ const foldersByNameLoader = new OneToManyLoader({
15
+ fetch: async (names) => await getAssetFolders({ names }),
16
+ extractKey: folder => folder.name,
17
+ idLoader: [assetFolderByIdLoader, assetFolderByInternalIdLoader]
18
+ });
19
+ const foldersByInternalIdPathLoader = new OneToManyLoader({
20
+ fetch: async (internalIdPaths, filter) => {
21
+ return await getAssetFolders({ ...filter, internalIdPaths });
22
+ },
23
+ keysFromFilter: (filter) => filter?.internalIdPaths ?? [],
24
+ extractKey: (f) => f.path,
25
+ idLoader: [assetFolderByInternalIdLoader, assetFolderByIdLoader]
26
+ });
27
+ const foldersByInternalIdPathRecursiveLoader = new OneToManyLoader({
28
+ fetch: async (internalIdPathsRecursive, filter) => {
29
+ const pages = await getAssetFolders({ ...filter, internalIdPathsRecursive });
30
+ return pages;
31
+ },
32
+ keysFromFilter: (filter) => filter?.internalIdPathsRecursive ?? [],
33
+ matchKey: (path, f) => f.path.startsWith(path),
34
+ idLoader: [assetFolderByInternalIdLoader, assetFolderByIdLoader]
35
+ });
36
+ export class AssetFolderServiceInternal extends BaseService {
37
+ async find(filter) {
38
+ const folders = await getAssetFolders(await this.processFolderFilters(filter));
39
+ for (const folder of folders) {
40
+ this.loaders.get(assetFolderByIdLoader).prime(folder.id, folder);
41
+ this.loaders.get(assetFolderByInternalIdLoader).prime(folder.internalId, folder);
42
+ }
43
+ return folders;
44
+ }
45
+ async findByInternalId(id) {
46
+ return await this.loaders.get(assetFolderByInternalIdLoader).load(id);
47
+ }
48
+ async findById(id) {
49
+ return await this.loaders.get(assetFolderByIdLoader).load(id);
50
+ }
51
+ async findByIds(ids) {
52
+ return await this.loaders.loadMany(assetFolderByIdLoader, ids);
53
+ }
54
+ async getAncestors(folder) {
55
+ return await this.loaders.loadMany(assetFolderByInternalIdLoader, folder.pathSplit);
56
+ }
57
+ async getParent(folder) {
58
+ if (!folder.parentInternalId)
59
+ return undefined;
60
+ return await this.loaders.get(assetFolderByInternalIdLoader).load(folder.parentInternalId);
61
+ }
62
+ async convertPathsToIDPaths(pathstrings) {
63
+ var _a, _b, _c;
64
+ const paths = pathstrings.map(normalizePath).map(p => p.split(/\//).filter(isNotBlank));
65
+ const names = new Set(paths.flat());
66
+ const folders = await this.loaders.loadMany(foldersByNameLoader, Array.from(names));
67
+ const rowsByNameAndIDPath = {};
68
+ for (const row of folders) {
69
+ rowsByNameAndIDPath[_a = row.name] ?? (rowsByNameAndIDPath[_a] = {});
70
+ (_b = rowsByNameAndIDPath[row.name])[_c = row.path] ?? (_b[_c] = []);
71
+ rowsByNameAndIDPath[row.name][row.path].push(row);
72
+ }
73
+ const idpaths = [];
74
+ for (const pt of paths) {
75
+ let searchpaths = ['/'];
76
+ for (const segment of pt) {
77
+ const pages = searchpaths.flatMap(sp => rowsByNameAndIDPath[segment][sp]);
78
+ searchpaths = pages.map(pg => `${pg.path}${pg.path === '/' ? '' : '/'}${pg.internalId}`);
79
+ if (!searchpaths.length)
80
+ break;
81
+ }
82
+ idpaths.push(...searchpaths);
83
+ }
84
+ return idpaths;
85
+ }
86
+ async processFolderFilters(filter) {
87
+ if (filter?.parentOfFolderIds) {
88
+ const folders = await this.loaders.loadMany(assetFolderByIdLoader, filter.parentOfFolderIds);
89
+ const parentIds = folders.map(f => f.parentInternalId).filter(isNotNull);
90
+ if (filter.internalIds?.length) {
91
+ filter.internalIds.push(...parentIds);
92
+ filter.internalIds = unique(filter.internalIds);
93
+ }
94
+ else
95
+ filter.internalIds = parentIds;
96
+ }
97
+ if (filter?.parentOfFolderInternalIds) {
98
+ const folders = await this.loaders.loadMany(assetFolderByInternalIdLoader, filter.parentOfFolderInternalIds);
99
+ const parentIds = folders.map(f => f.parentInternalId).filter(isNotNull);
100
+ if (filter.internalIds?.length) {
101
+ filter.internalIds.push(...parentIds);
102
+ filter.internalIds = unique(filter.internalIds);
103
+ }
104
+ else
105
+ filter.internalIds = parentIds;
106
+ }
107
+ if (filter?.childOfFolderIds) {
108
+ const folders = await this.loaders.loadMany(assetFolderByIdLoader, filter.childOfFolderIds);
109
+ const childFolders = await (await mapConcurrent(folders, async (folder) => await this.getChildFolders(folder, false))).flat();
110
+ if (filter.internalIds?.length) {
111
+ filter.internalIds.push(...childFolders.map(f => f.internalId));
112
+ }
113
+ else
114
+ filter.internalIds = childFolders.map(f => f.internalId);
115
+ }
116
+ // named paths e.g. /site1/about
117
+ if (filter?.paths?.length) {
118
+ const idpaths = await this.convertPathsToIDPaths(filter.paths);
119
+ const ids = idpaths.map(p => +p.split(/\//).slice(-1)[0]);
120
+ console.log('ids', ids, idpaths);
121
+ filter.internalIds = intersect({ skipEmpty: true }, filter.internalIds, ids);
122
+ }
123
+ // beneath a named path e.g. /site1/about
124
+ if (filter?.beneath?.length) {
125
+ const idpaths = await this.convertPathsToIDPaths(filter.beneath);
126
+ filter.internalIdPathsRecursive = intersect({ skipEmpty: true }, filter.internalIdPaths, idpaths);
127
+ }
128
+ // direct children of a named path e.g. /site1/about
129
+ if (filter?.parentPaths?.length) {
130
+ const idpaths = await this.convertPathsToIDPaths(filter.parentPaths);
131
+ filter.internalIdPaths = intersect({ skipEmpty: true }, filter.internalIdPaths, idpaths);
132
+ }
133
+ if (filter?.links?.length) {
134
+ const folders = await this.findByIds(filter.links.map(l => l.id));
135
+ const foldersById = keyby(folders, 'id');
136
+ const notFoundById = filter.links.filter(l => !foldersById[l.id]);
137
+ if (notFoundById.length) {
138
+ const pathFolders = await this.find({ paths: notFoundById.map(l => l.path) });
139
+ const foldersByPath = {};
140
+ await Promise.all(pathFolders.map(async (a) => {
141
+ foldersByPath[await this.getPath(a)] = a;
142
+ }));
143
+ folders.push(...notFoundById.map(link => foldersByPath[link.path]).filter(isNotNull));
144
+ }
145
+ if (!folders.length)
146
+ filter.internalIds = [-1];
147
+ else
148
+ filter.internalIds = intersect({ skipEmpty: true }, filter.internalIds, folders.map(a => a.internalId));
149
+ }
150
+ return filter;
151
+ }
152
+ async getChildFolders(folder, recursive, filter) {
153
+ const loader = recursive ? foldersByInternalIdPathRecursiveLoader : foldersByInternalIdPathLoader;
154
+ filter = await this.processFolderFilters(filter);
155
+ return await this.loaders.get(loader, filter).load(`${folder.path}${folder.path === '/' ? '' : '/'}${folder.internalId}`);
156
+ }
157
+ async getChildFoldersByIDPaths(idpaths) {
158
+ return await this.loaders.loadMany(foldersByInternalIdPathRecursiveLoader, idpaths);
159
+ }
160
+ async getChildAssets(folder, recursive, filter) {
161
+ if (recursive) {
162
+ const folders = await this.getChildFolders(folder, true);
163
+ return await this.svc(AssetServiceInternal).findByFolders([...folders, folder], filter);
164
+ }
165
+ else {
166
+ return await this.svc(AssetServiceInternal).findByFolder(folder, filter);
167
+ }
168
+ }
169
+ async getPath(folder) {
170
+ const ancestors = await this.getAncestors(folder);
171
+ return '/' + [...ancestors, folder].map(f => f.name).join('/');
172
+ }
173
+ }
174
+ export class AssetFolderService extends DosGatoService {
175
+ constructor() {
176
+ super(...arguments);
177
+ this.raw = this.svc(AssetFolderServiceInternal);
178
+ }
179
+ async find(filter) {
180
+ return await this.removeUnauthorized(await this.raw.find(filter));
181
+ }
182
+ async findByInternalId(internalId) {
183
+ return await this.removeUnauthorized(await this.raw.findByInternalId(internalId));
184
+ }
185
+ async findById(id) {
186
+ return await this.removeUnauthorized(await this.raw.findById(id));
187
+ }
188
+ async getAncestors(folder) {
189
+ return await this.removeUnauthorized(await this.raw.getAncestors(folder));
190
+ }
191
+ async getParent(folder) {
192
+ return await this.removeUnauthorized(await this.raw.getParent(folder));
193
+ }
194
+ async getChildFolders(folder, recursive, filter) {
195
+ return await this.removeUnauthorized(await this.raw.getChildFolders(folder, recursive, filter));
196
+ }
197
+ async getChildAssets(folder, recursive, filter) {
198
+ return await this.svc(AssetService).removeUnauthorized(await this.raw.getChildAssets(folder, recursive, filter));
199
+ }
200
+ async getPath(folder) {
201
+ return await this.raw.getPath(folder);
202
+ }
203
+ async create(args) {
204
+ const parentFolder = await this.loaders.get(assetFolderByIdLoader).load(args.parentId);
205
+ if (!parentFolder)
206
+ throw new Error('Parent folder does not exist.');
207
+ if (!(await this.haveAssetFolderPerm(parentFolder, 'create')))
208
+ throw new Error(`Current user is not permitted to create folders in ${String(parentFolder.name)}.`);
209
+ try {
210
+ const assetfolder = await createAssetFolder(args);
211
+ this.loaders.clear();
212
+ return new AssetFolderResponse({ assetFolder: assetfolder, success: true });
213
+ }
214
+ catch (err) {
215
+ console.error(err);
216
+ throw new Error('Could not create asset folder');
217
+ }
218
+ }
219
+ async rename(folderId, name) {
220
+ const folder = await this.raw.findById(folderId);
221
+ if (!folder)
222
+ throw new Error('Folder to be renamed does not exist');
223
+ if (isNull(folder.parentInternalId))
224
+ throw new Error('Root asset folders cannot be renamed.');
225
+ if (!(await this.haveAssetFolderPerm(folder, 'update')))
226
+ throw new Error(`Current user is not permitted to rename folder ${String(folder.name)}.`);
227
+ try {
228
+ await renameAssetFolder(folderId, name);
229
+ this.loaders.clear();
230
+ const updatedFolder = await this.loaders.get(assetFolderByIdLoader).load(folderId);
231
+ return new AssetFolderResponse({ assetFolder: updatedFolder, success: true });
232
+ }
233
+ catch (err) {
234
+ console.error(err);
235
+ throw new Error('Could not rename asset folder');
236
+ }
237
+ }
238
+ async move(folderId, targetFolderId) {
239
+ const [folder, targetFolder] = await Promise.all([
240
+ this.raw.findById(folderId),
241
+ this.raw.findById(targetFolderId)
242
+ ]);
243
+ if (!folder)
244
+ throw new Error('Folder to be moved does not exist');
245
+ if (!targetFolder)
246
+ throw new Error('Target folder does not exist');
247
+ if (isNull(folder.parentInternalId))
248
+ throw new Error('Root asset folders cannot be moved.');
249
+ if (targetFolder.path.startsWith(`${folder.path}/${folder.internalId}`))
250
+ throw new Error('Cannot move an asset folder into its own subtree');
251
+ if (!(await this.haveAssetFolderPerm(folder, 'move')))
252
+ throw new Error(`Current user is not permitted to move folder ${String(folder.name)}.`);
253
+ if (!(await this.haveAssetFolderPerm(targetFolder, 'create')))
254
+ throw new Error(`Current user is not permitted to move folders to folder ${String(targetFolder.name)}.`);
255
+ try {
256
+ await moveAssetFolder(folder.internalId, targetFolder);
257
+ this.loaders.clear();
258
+ const movedFolder = await this.loaders.get(assetFolderByIdLoader).load(folderId);
259
+ return new AssetFolderResponse({ assetFolder: movedFolder, success: true });
260
+ }
261
+ catch (err) {
262
+ console.error(err);
263
+ throw new Error('Could not move asset folder');
264
+ }
265
+ }
266
+ async delete(folderId) {
267
+ const folder = await this.raw.findById(folderId);
268
+ if (!folder)
269
+ throw new Error('Folder to be deleted does not exist');
270
+ if (isNull(folder.parentInternalId))
271
+ throw new Error('Root asset folders cannot be deleted.');
272
+ if (!(await this.haveAssetFolderPerm(folder, 'delete')))
273
+ throw new Error(`Current user is not permitted to delete folder ${String(folder.name)}.`);
274
+ const currentUser = await this.currentUser();
275
+ try {
276
+ await deleteAssetFolder(folder.internalId, currentUser.internalId);
277
+ this.loaders.clear();
278
+ const deletedfolder = await this.loaders.get(assetFolderByIdLoader).load(folderId);
279
+ return new AssetFolderResponse({ assetFolder: deletedfolder, success: true });
280
+ }
281
+ catch (err) {
282
+ console.error(err);
283
+ throw new Error('Could not delete asset folder');
284
+ }
285
+ }
286
+ async undelete(folderId) {
287
+ const folder = await this.raw.findById(folderId);
288
+ if (!folder)
289
+ throw new Error('Folder to be restored does not exist');
290
+ if (!(await this.haveAssetFolderPerm(folder, 'undelete')))
291
+ throw new Error(`Current user is not permitted to restore folder ${String(folder.name)}.`);
292
+ try {
293
+ await undeleteAssetFolder(folder.internalId);
294
+ this.loaders.clear();
295
+ const restoredfolder = await this.loaders.get(assetFolderByIdLoader).load(folderId);
296
+ return new AssetFolderResponse({ assetFolder: restoredfolder, success: true });
297
+ }
298
+ catch (err) {
299
+ console.error(err);
300
+ throw new Error('Could not restore asset folder');
301
+ }
302
+ }
303
+ async mayView(folder) {
304
+ if (await this.haveAssetFolderPerm(folder, 'view'))
305
+ return true;
306
+ // if we are able to view any child pages, we have to be able to view the ancestors so that we can draw the tree
307
+ const [folders, assets] = await Promise.all([
308
+ this.raw.getChildFolders(folder, true),
309
+ this.raw.getChildAssets(folder, true)
310
+ ]);
311
+ for (const f of folders) {
312
+ if (await this.haveAssetFolderPerm(f, 'view'))
313
+ return true;
314
+ }
315
+ for (const a of assets) {
316
+ if (await this.haveAssetPerm(a, 'view'))
317
+ return true;
318
+ }
319
+ return false;
320
+ }
321
+ async mayViewForEdit(folder) {
322
+ if (await this.haveAssetFolderPerm(folder, 'viewForEdit'))
323
+ return true;
324
+ // if we are able to view any child pages, we have to be able to view the ancestors so that we can draw the tree
325
+ const [folders, assets] = await Promise.all([
326
+ this.raw.getChildFolders(folder, true),
327
+ this.raw.getChildAssets(folder, true)
328
+ ]);
329
+ for (const f of folders) {
330
+ if (await this.haveAssetFolderPerm(f, 'viewForEdit'))
331
+ return true;
332
+ }
333
+ for (const a of assets) {
334
+ if (await this.haveAssetPerm(a, 'viewForEdit'))
335
+ return true;
336
+ }
337
+ return false;
338
+ }
339
+ async mayCreate(folder) {
340
+ return await this.haveAssetFolderPerm(folder, 'create');
341
+ }
342
+ async mayMove(folder) {
343
+ return await this.haveAssetFolderPerm(folder, 'move');
344
+ }
345
+ async mayUpdate(folder) {
346
+ return await this.haveAssetFolderPerm(folder, 'update');
347
+ }
348
+ async mayDelete(folder) {
349
+ return await this.haveAssetFolderPerm(folder, 'delete');
350
+ }
351
+ async mayUndelete(folder) {
352
+ return await this.haveAssetFolderPerm(folder, 'undelete');
353
+ }
354
+ }
355
+ //# sourceMappingURL=assetfolder.service.js.map