@vived/host 4.0.2 → 4.0.3

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 (196) hide show
  1. package/dist/cjs/AppSandbox/Factories/setupAppSandbox.js +6 -0
  2. package/dist/cjs/AppSandbox/Factories/setupAppSandbox.js.map +1 -1
  3. package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js +37 -0
  4. package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js.map +1 -0
  5. package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.js +55 -0
  6. package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.js.map +1 -0
  7. package/dist/cjs/Assets/Factories/setupAssetsForSandbox.js +1 -0
  8. package/dist/cjs/Assets/Factories/setupAssetsForSandbox.js.map +1 -1
  9. package/dist/cjs/Assets/Mocks/MockNewAssetUC.js +16 -0
  10. package/dist/cjs/Assets/Mocks/MockNewAssetUC.js.map +1 -0
  11. package/dist/cjs/Assets/Mocks/index.js +1 -0
  12. package/dist/cjs/Assets/Mocks/index.js.map +1 -1
  13. package/dist/cjs/Assets/UCs/NewAppAssetUC.js.map +1 -1
  14. package/dist/cjs/Assets/UCs/NewAppAssetUC.test.js.map +1 -1
  15. package/dist/cjs/Assets/UCs/NewAssetUC.js +53 -0
  16. package/dist/cjs/Assets/UCs/NewAssetUC.js.map +1 -0
  17. package/dist/cjs/Assets/UCs/NewAssetUC.test.js +104 -0
  18. package/dist/cjs/Assets/UCs/NewAssetUC.test.js.map +1 -0
  19. package/dist/cjs/Assets/UCs/index.js +1 -0
  20. package/dist/cjs/Assets/UCs/index.js.map +1 -1
  21. package/dist/cjs/Dialog/Entities/Alert.js +2 -0
  22. package/dist/cjs/Dialog/Entities/Alert.js.map +1 -1
  23. package/dist/cjs/Dialog/Entities/Alert.test.js +6 -0
  24. package/dist/cjs/Dialog/Entities/Alert.test.js.map +1 -1
  25. package/dist/cjs/Dialog/Entities/Confirm.js +3 -0
  26. package/dist/cjs/Dialog/Entities/Confirm.js.map +1 -1
  27. package/dist/cjs/Dialog/Entities/Confirm.test.js +12 -0
  28. package/dist/cjs/Dialog/Entities/Confirm.test.js.map +1 -1
  29. package/dist/cjs/Dialog/Entities/DialogQueue.js +16 -3
  30. package/dist/cjs/Dialog/Entities/DialogQueue.js.map +1 -1
  31. package/dist/cjs/Dialog/Entities/DialogQueue.test.js +21 -0
  32. package/dist/cjs/Dialog/Entities/DialogQueue.test.js.map +1 -1
  33. package/dist/cjs/Dialog/Entities/MarkDownEditor.js +3 -0
  34. package/dist/cjs/Dialog/Entities/MarkDownEditor.js.map +1 -1
  35. package/dist/cjs/Dialog/Entities/MarkDownEditor.test.js +12 -0
  36. package/dist/cjs/Dialog/Entities/MarkDownEditor.test.js.map +1 -1
  37. package/dist/cjs/Dialog/Entities/SelectModel.js +1 -0
  38. package/dist/cjs/Dialog/Entities/SelectModel.js.map +1 -1
  39. package/dist/cjs/Dialog/Entities/Spinner.js +2 -0
  40. package/dist/cjs/Dialog/Entities/Spinner.js.map +1 -1
  41. package/dist/cjs/Dialog/Entities/Spinner.test.js +17 -0
  42. package/dist/cjs/Dialog/Entities/Spinner.test.js.map +1 -1
  43. package/dist/cjs/Handler/setupStandardHostHandlers.js +1 -0
  44. package/dist/cjs/Handler/setupStandardHostHandlers.js.map +1 -1
  45. package/dist/cjs/VivedAPI/Mocks/MockSignedAuthToken.js +1 -2
  46. package/dist/cjs/VivedAPI/Mocks/MockSignedAuthToken.js.map +1 -1
  47. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.js +1 -1
  48. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
  49. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.test.js +2 -2
  50. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.test.js.map +1 -1
  51. package/dist/cjs/VivedAPI/UCs/GetAppFromAPIUC.js +1 -1
  52. package/dist/cjs/VivedAPI/UCs/GetAppFromAPIUC.js.map +1 -1
  53. package/dist/cjs/VivedAPI/UCs/GetAppFromAPIUC.test.js +2 -2
  54. package/dist/cjs/VivedAPI/UCs/GetAppFromAPIUC.test.js.map +1 -1
  55. package/dist/cjs/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js +1 -1
  56. package/dist/cjs/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js.map +1 -1
  57. package/dist/cjs/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.test.js +2 -2
  58. package/dist/cjs/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.test.js.map +1 -1
  59. package/dist/cjs/VivedAPI/UCs/PatchAssetFileUC.js +1 -1
  60. package/dist/cjs/VivedAPI/UCs/PatchAssetFileUC.js.map +1 -1
  61. package/dist/cjs/VivedAPI/UCs/PatchAssetFileUC.test.js +2 -2
  62. package/dist/cjs/VivedAPI/UCs/PatchAssetFileUC.test.js.map +1 -1
  63. package/dist/cjs/VivedAPI/UCs/PatchAssetIsArchivedUC.js +1 -1
  64. package/dist/cjs/VivedAPI/UCs/PatchAssetIsArchivedUC.js.map +1 -1
  65. package/dist/cjs/VivedAPI/UCs/PatchAssetIsArchivedUC.test.js +2 -2
  66. package/dist/cjs/VivedAPI/UCs/PatchAssetIsArchivedUC.test.js.map +1 -1
  67. package/dist/cjs/VivedAPI/UCs/PatchAssetMetaUC.js +1 -1
  68. package/dist/cjs/VivedAPI/UCs/PatchAssetMetaUC.js.map +1 -1
  69. package/dist/cjs/VivedAPI/UCs/PatchAssetMetaUC.test.js +2 -2
  70. package/dist/cjs/VivedAPI/UCs/PatchAssetMetaUC.test.js.map +1 -1
  71. package/dist/cjs/VivedAPI/UCs/PatchAssetUC.js +2 -3
  72. package/dist/cjs/VivedAPI/UCs/PatchAssetUC.js.map +1 -1
  73. package/dist/cjs/VivedAPI/UCs/PatchAssetUC.test.js +2 -2
  74. package/dist/cjs/VivedAPI/UCs/PatchAssetUC.test.js.map +1 -1
  75. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.js +2 -3
  76. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
  77. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.test.js +2 -2
  78. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.test.js.map +1 -1
  79. package/dist/cjs/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
  80. package/dist/esm/AppSandbox/Factories/setupAppSandbox.js +6 -0
  81. package/dist/esm/AppSandbox/Factories/setupAppSandbox.js.map +1 -1
  82. package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js +34 -0
  83. package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js.map +1 -0
  84. package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.js +53 -0
  85. package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.js.map +1 -0
  86. package/dist/esm/Assets/Factories/setupAssetsForSandbox.js +2 -1
  87. package/dist/esm/Assets/Factories/setupAssetsForSandbox.js.map +1 -1
  88. package/dist/esm/Assets/Mocks/MockNewAssetUC.js +11 -0
  89. package/dist/esm/Assets/Mocks/MockNewAssetUC.js.map +1 -0
  90. package/dist/esm/Assets/Mocks/index.js +1 -0
  91. package/dist/esm/Assets/Mocks/index.js.map +1 -1
  92. package/dist/esm/Assets/UCs/NewAppAssetUC.js.map +1 -1
  93. package/dist/esm/Assets/UCs/NewAppAssetUC.test.js.map +1 -1
  94. package/dist/esm/Assets/UCs/NewAssetUC.js +48 -0
  95. package/dist/esm/Assets/UCs/NewAssetUC.js.map +1 -0
  96. package/dist/esm/Assets/UCs/NewAssetUC.test.js +102 -0
  97. package/dist/esm/Assets/UCs/NewAssetUC.test.js.map +1 -0
  98. package/dist/esm/Assets/UCs/index.js +1 -0
  99. package/dist/esm/Assets/UCs/index.js.map +1 -1
  100. package/dist/esm/Dialog/Entities/Alert.js +2 -0
  101. package/dist/esm/Dialog/Entities/Alert.js.map +1 -1
  102. package/dist/esm/Dialog/Entities/Alert.test.js +6 -0
  103. package/dist/esm/Dialog/Entities/Alert.test.js.map +1 -1
  104. package/dist/esm/Dialog/Entities/Confirm.js +3 -0
  105. package/dist/esm/Dialog/Entities/Confirm.js.map +1 -1
  106. package/dist/esm/Dialog/Entities/Confirm.test.js +12 -0
  107. package/dist/esm/Dialog/Entities/Confirm.test.js.map +1 -1
  108. package/dist/esm/Dialog/Entities/DialogQueue.js +17 -4
  109. package/dist/esm/Dialog/Entities/DialogQueue.js.map +1 -1
  110. package/dist/esm/Dialog/Entities/DialogQueue.test.js +21 -0
  111. package/dist/esm/Dialog/Entities/DialogQueue.test.js.map +1 -1
  112. package/dist/esm/Dialog/Entities/MarkDownEditor.js +3 -0
  113. package/dist/esm/Dialog/Entities/MarkDownEditor.js.map +1 -1
  114. package/dist/esm/Dialog/Entities/MarkDownEditor.test.js +12 -0
  115. package/dist/esm/Dialog/Entities/MarkDownEditor.test.js.map +1 -1
  116. package/dist/esm/Dialog/Entities/SelectModel.js +1 -0
  117. package/dist/esm/Dialog/Entities/SelectModel.js.map +1 -1
  118. package/dist/esm/Dialog/Entities/Spinner.js +2 -0
  119. package/dist/esm/Dialog/Entities/Spinner.js.map +1 -1
  120. package/dist/esm/Dialog/Entities/Spinner.test.js +17 -0
  121. package/dist/esm/Dialog/Entities/Spinner.test.js.map +1 -1
  122. package/dist/esm/Handler/setupStandardHostHandlers.js +2 -1
  123. package/dist/esm/Handler/setupStandardHostHandlers.js.map +1 -1
  124. package/dist/esm/VivedAPI/Mocks/MockSignedAuthToken.js +1 -2
  125. package/dist/esm/VivedAPI/Mocks/MockSignedAuthToken.js.map +1 -1
  126. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.js +1 -1
  127. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
  128. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.test.js +2 -2
  129. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.test.js.map +1 -1
  130. package/dist/esm/VivedAPI/UCs/GetAppFromAPIUC.js +1 -1
  131. package/dist/esm/VivedAPI/UCs/GetAppFromAPIUC.js.map +1 -1
  132. package/dist/esm/VivedAPI/UCs/GetAppFromAPIUC.test.js +2 -2
  133. package/dist/esm/VivedAPI/UCs/GetAppFromAPIUC.test.js.map +1 -1
  134. package/dist/esm/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js +1 -1
  135. package/dist/esm/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js.map +1 -1
  136. package/dist/esm/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.test.js +2 -2
  137. package/dist/esm/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.test.js.map +1 -1
  138. package/dist/esm/VivedAPI/UCs/PatchAssetFileUC.js +1 -1
  139. package/dist/esm/VivedAPI/UCs/PatchAssetFileUC.js.map +1 -1
  140. package/dist/esm/VivedAPI/UCs/PatchAssetFileUC.test.js +2 -2
  141. package/dist/esm/VivedAPI/UCs/PatchAssetFileUC.test.js.map +1 -1
  142. package/dist/esm/VivedAPI/UCs/PatchAssetIsArchivedUC.js +1 -1
  143. package/dist/esm/VivedAPI/UCs/PatchAssetIsArchivedUC.js.map +1 -1
  144. package/dist/esm/VivedAPI/UCs/PatchAssetIsArchivedUC.test.js +2 -2
  145. package/dist/esm/VivedAPI/UCs/PatchAssetIsArchivedUC.test.js.map +1 -1
  146. package/dist/esm/VivedAPI/UCs/PatchAssetMetaUC.js +1 -1
  147. package/dist/esm/VivedAPI/UCs/PatchAssetMetaUC.js.map +1 -1
  148. package/dist/esm/VivedAPI/UCs/PatchAssetMetaUC.test.js +2 -2
  149. package/dist/esm/VivedAPI/UCs/PatchAssetMetaUC.test.js.map +1 -1
  150. package/dist/esm/VivedAPI/UCs/PatchAssetUC.js +2 -3
  151. package/dist/esm/VivedAPI/UCs/PatchAssetUC.js.map +1 -1
  152. package/dist/esm/VivedAPI/UCs/PatchAssetUC.test.js +2 -2
  153. package/dist/esm/VivedAPI/UCs/PatchAssetUC.test.js.map +1 -1
  154. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.js +2 -3
  155. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
  156. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.test.js +2 -2
  157. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.test.js.map +1 -1
  158. package/dist/esm/VivedAPI/UCs/SignedAuthTokenUC.js +1 -1
  159. package/dist/esm/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
  160. package/dist/types/AppSandbox/Factories/setupAppSandbox.d.ts.map +1 -1
  161. package/dist/types/AppSandbox/UCs/submitActivityAssetHandlerSandbox.d.ts +4 -0
  162. package/dist/types/AppSandbox/UCs/submitActivityAssetHandlerSandbox.d.ts.map +1 -0
  163. package/dist/types/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.d.ts +2 -0
  164. package/dist/types/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.d.ts.map +1 -0
  165. package/dist/types/Assets/Factories/setupAssetsForSandbox.d.ts.map +1 -1
  166. package/dist/types/Assets/Mocks/MockNewAssetUC.d.ts +8 -0
  167. package/dist/types/Assets/Mocks/MockNewAssetUC.d.ts.map +1 -0
  168. package/dist/types/Assets/Mocks/index.d.ts +1 -0
  169. package/dist/types/Assets/Mocks/index.d.ts.map +1 -1
  170. package/dist/types/Assets/UCs/NewAssetUC.d.ts +14 -0
  171. package/dist/types/Assets/UCs/NewAssetUC.d.ts.map +1 -0
  172. package/dist/types/Assets/UCs/NewAssetUC.test.d.ts +2 -0
  173. package/dist/types/Assets/UCs/NewAssetUC.test.d.ts.map +1 -0
  174. package/dist/types/Assets/UCs/index.d.ts +1 -0
  175. package/dist/types/Assets/UCs/index.d.ts.map +1 -1
  176. package/dist/types/Dialog/Entities/Alert.d.ts +1 -0
  177. package/dist/types/Dialog/Entities/Alert.d.ts.map +1 -1
  178. package/dist/types/Dialog/Entities/Confirm.d.ts +1 -0
  179. package/dist/types/Dialog/Entities/Confirm.d.ts.map +1 -1
  180. package/dist/types/Dialog/Entities/DialogQueue.d.ts +1 -0
  181. package/dist/types/Dialog/Entities/DialogQueue.d.ts.map +1 -1
  182. package/dist/types/Dialog/Entities/MarkDownEditor.d.ts +1 -0
  183. package/dist/types/Dialog/Entities/MarkDownEditor.d.ts.map +1 -1
  184. package/dist/types/Dialog/Entities/SelectModel.d.ts +1 -0
  185. package/dist/types/Dialog/Entities/SelectModel.d.ts.map +1 -1
  186. package/dist/types/Dialog/Entities/Spinner.d.ts +1 -0
  187. package/dist/types/Dialog/Entities/Spinner.d.ts.map +1 -1
  188. package/dist/types/Handler/setupStandardHostHandlers.d.ts.map +1 -1
  189. package/dist/types/VivedAPI/Mocks/MockSignedAuthToken.d.ts +1 -2
  190. package/dist/types/VivedAPI/Mocks/MockSignedAuthToken.d.ts.map +1 -1
  191. package/dist/types/VivedAPI/UCs/PatchAssetUC.d.ts.map +1 -1
  192. package/dist/types/VivedAPI/UCs/PostNewAssetUC.d.ts +2 -2
  193. package/dist/types/VivedAPI/UCs/PostNewAssetUC.d.ts.map +1 -1
  194. package/dist/types/VivedAPI/UCs/SignedAuthTokenUC.d.ts +1 -2
  195. package/dist/types/VivedAPI/UCs/SignedAuthTokenUC.d.ts.map +1 -1
  196. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"PatchAssetUC.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/PatchAssetUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { generateUniqueID } from \"@vived/core\";\r\nimport { VivedAPIEntity } from \"../Entities/VivedAPIEntity\";\r\nimport { FileUploadUC } from \"./FileUploadUC\";\r\nimport { JsonRequestUC, RequestJSONOptions } from \"./JsonRequestUC\";\r\nimport { SignedAuthTokenUC } from \"./SignedAuthTokenUC\";\r\n\r\nexport interface PatchAssetDTO {\r\n id: string;\r\n name: string;\r\n description: string;\r\n archived: boolean;\r\n file: File;\r\n}\r\n\r\ninterface PatchParam {\r\n name: string;\r\n description: string;\r\n archived: boolean;\r\n filename: string;\r\n}\r\n\r\nexport abstract class PatchAssetUC extends AppObjectUC {\r\n static type = \"PatchAssetUC\";\r\n\r\n abstract doPatch(data: PatchAssetDTO): Promise<void>;\r\n\r\n static get(appObjects: AppObjectRepo): PatchAssetUC | undefined {\r\n return getSingletonComponent(PatchAssetUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makePatchAssetUC(appObject: AppObject): PatchAssetUC {\r\n return new PatchAssetUCImp(appObject);\r\n}\r\n\r\nclass PatchAssetUCImp extends PatchAssetUC {\r\n private get jsonRequester() {\r\n return this.getCachedSingleton<JsonRequestUC>(JsonRequestUC.type)\r\n ?.doRequest;\r\n }\r\n\r\n private get getAuthToken() {\r\n return this.getCachedSingleton<SignedAuthTokenUC>(SignedAuthTokenUC.type)\r\n ?.getUserAuthToken;\r\n }\r\n\r\n private get fileUpload() {\r\n return this.getCachedSingleton<FileUploadUC>(FileUploadUC.type)?.doUpload;\r\n }\r\n\r\n private get vivedAPI() {\r\n return this.getCachedSingleton<VivedAPIEntity>(VivedAPIEntity.type);\r\n }\r\n\r\n doPatch = (data: PatchAssetDTO): Promise<void> => {\r\n const getAuthToken = this.getAuthToken;\r\n const vivedAPI = this.vivedAPI;\r\n const jsonRequester = this.jsonRequester;\r\n const fileUpload = this.fileUpload;\r\n\r\n if (!getAuthToken || !vivedAPI || !jsonRequester || !fileUpload) {\r\n return Promise.reject();\r\n }\r\n\r\n const { id, file, name, description, archived } = data;\r\n\r\n let extension: string = \"\";\r\n const strArr = file.name.split(\".\");\r\n extension = strArr[strArr.length - 1];\r\n const filename = `${generateUniqueID()}.${extension}`;\r\n\r\n const assetFile = new File([file], `${filename}`, {\r\n lastModified: Date.now()\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n fileUpload(assetFile)\r\n .then((_) => {\r\n return getAuthToken();\r\n })\r\n .then((token) => {\r\n const url = vivedAPI.getEndpointURL(`assets/${id}`);\r\n const body: PatchParam = {\r\n archived,\r\n description,\r\n filename,\r\n name\r\n };\r\n\r\n const options: RequestJSONOptions = {\r\n method: \"PATCH\",\r\n body: JSON.stringify(body),\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n };\r\n\r\n return jsonRequester(url, options);\r\n })\r\n .then((_) => {\r\n resolve();\r\n })\r\n .catch((e) => {\r\n reject(e);\r\n return;\r\n });\r\n });\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, PatchAssetUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PatchAssetUC.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/PatchAssetUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC,\r\n generateUniqueID,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\nimport { VivedAPIEntity } from \"../Entities/VivedAPIEntity\";\r\nimport { FileUploadUC } from \"./FileUploadUC\";\r\nimport { JsonRequestUC, RequestJSONOptions } from \"./JsonRequestUC\";\r\nimport { SignedAuthTokenUC } from \"./SignedAuthTokenUC\";\r\n\r\nexport interface PatchAssetDTO {\r\n id: string;\r\n name: string;\r\n description: string;\r\n archived: boolean;\r\n file: File;\r\n}\r\n\r\ninterface PatchParam {\r\n name: string;\r\n description: string;\r\n archived: boolean;\r\n filename: string;\r\n}\r\n\r\nexport abstract class PatchAssetUC extends AppObjectUC {\r\n static type = \"PatchAssetUC\";\r\n\r\n abstract doPatch(data: PatchAssetDTO): Promise<void>;\r\n\r\n static get(appObjects: AppObjectRepo): PatchAssetUC | undefined {\r\n return getSingletonComponent(PatchAssetUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makePatchAssetUC(appObject: AppObject): PatchAssetUC {\r\n return new PatchAssetUCImp(appObject);\r\n}\r\n\r\nclass PatchAssetUCImp extends PatchAssetUC {\r\n private get jsonRequester() {\r\n return this.getCachedSingleton<JsonRequestUC>(JsonRequestUC.type)\r\n ?.doRequest;\r\n }\r\n\r\n private get getAuthToken() {\r\n return this.getCachedSingleton<SignedAuthTokenUC>(SignedAuthTokenUC.type)\r\n ?.getAuthToken;\r\n }\r\n\r\n private get fileUpload() {\r\n return this.getCachedSingleton<FileUploadUC>(FileUploadUC.type)?.doUpload;\r\n }\r\n\r\n private get vivedAPI() {\r\n return this.getCachedSingleton<VivedAPIEntity>(VivedAPIEntity.type);\r\n }\r\n\r\n doPatch = (data: PatchAssetDTO): Promise<void> => {\r\n const getAuthToken = this.getAuthToken;\r\n const vivedAPI = this.vivedAPI;\r\n const jsonRequester = this.jsonRequester;\r\n const fileUpload = this.fileUpload;\r\n\r\n if (!getAuthToken || !vivedAPI || !jsonRequester || !fileUpload) {\r\n return Promise.reject();\r\n }\r\n\r\n const { id, file, name, description, archived } = data;\r\n\r\n let extension: string = \"\";\r\n const strArr = file.name.split(\".\");\r\n extension = strArr[strArr.length - 1];\r\n const filename = `${generateUniqueID()}.${extension}`;\r\n\r\n const assetFile = new File([file], `${filename}`, {\r\n lastModified: Date.now()\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n fileUpload(assetFile)\r\n .then((_) => {\r\n return getAuthToken();\r\n })\r\n .then((token) => {\r\n const url = vivedAPI.getEndpointURL(`assets/${id}`);\r\n const body: PatchParam = {\r\n archived,\r\n description,\r\n filename,\r\n name\r\n };\r\n\r\n const options: RequestJSONOptions = {\r\n method: \"PATCH\",\r\n body: JSON.stringify(body),\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n };\r\n\r\n return jsonRequester(url, options);\r\n })\r\n .then((_) => {\r\n resolve();\r\n })\r\n .catch((e) => {\r\n reject(e);\r\n return;\r\n });\r\n });\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, PatchAssetUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
@@ -13,7 +13,7 @@ function makeTestRig() {
13
13
  const mockJsonRequester = (0, MockJsonRequestUC_1.makeMockJsonRequestUC)(appObjects);
14
14
  mockJsonRequester.doRequest.mockResolvedValue({});
15
15
  const mockAuth = (0, MockSignedAuthToken_1.makeMockSignedAuthTokenUC)(appObjects);
16
- mockAuth.getUserAuthToken.mockResolvedValue("mockAuthToken");
16
+ mockAuth.getAuthToken.mockResolvedValue("mockAuthToken");
17
17
  const mockFileUpload = (0, MockFileUpload_1.makeMockFileUploadUC)(appObjects);
18
18
  const uc = (0, PatchAssetUC_1.makePatchAssetUC)(appObjects.getOrCreate("ao"));
19
19
  return {
@@ -76,7 +76,7 @@ describe("Patch Asset Is Archived UC", () => {
76
76
  });
77
77
  it("Rejects if the get auth token fails", () => {
78
78
  const { uc, mockAuth } = makeTestRig();
79
- mockAuth.getUserAuthToken.mockRejectedValue(new Error("Some Auth token error Error"));
79
+ mockAuth.getAuthToken.mockRejectedValue(new Error("Some Auth token error Error"));
80
80
  return expect(uc.doPatch(makeDTO())).rejects.toEqual(new Error("Some Auth token error Error"));
81
81
  });
82
82
  it("Rejects if the file upload fails", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"PatchAssetUC.test.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/PatchAssetUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { VivedAPIEntity } from \"../Entities/VivedAPIEntity\";\r\nimport { makeMockFileUploadUC } from \"../Mocks/MockFileUpload\";\r\nimport { makeMockJsonRequestUC } from \"../Mocks/MockJsonRequestUC\";\r\nimport { makeMockSignedAuthTokenUC } from \"../Mocks/MockSignedAuthToken\";\r\nimport { RequestJSONOptions } from \"./JsonRequestUC\";\r\nimport { makePatchAssetUC, PatchAssetDTO, PatchAssetUC } from \"./PatchAssetUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const singletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const vivedAPI = new VivedAPIEntity(appObjects.getOrCreate(\"API\"));\r\n\r\n const mockJsonRequester = makeMockJsonRequestUC(appObjects);\r\n mockJsonRequester.doRequest.mockResolvedValue({});\r\n\r\n const mockAuth = makeMockSignedAuthTokenUC(appObjects);\r\n mockAuth.getUserAuthToken.mockResolvedValue(\"mockAuthToken\");\r\n\r\n const mockFileUpload = makeMockFileUploadUC(appObjects);\r\n\r\n const uc = makePatchAssetUC(appObjects.getOrCreate(\"ao\"));\r\n\r\n return {\r\n uc,\r\n appObjects,\r\n singletonSpy,\r\n vivedAPI,\r\n mockJsonRequester,\r\n mockAuth,\r\n mockFileUpload\r\n };\r\n}\r\n\r\nfunction makeDTO(): PatchAssetDTO {\r\n return {\r\n id: \"asset1\",\r\n archived: true,\r\n description: \"Asset Description\",\r\n name: \"assetName\",\r\n file: new File([], \"some.filename\")\r\n };\r\n}\r\n\r\ndescribe(\"Patch Asset Is Archived UC\", () => {\r\n it(\"Registers itself as the Singleton\", () => {\r\n const { uc, singletonSpy } = makeTestRig();\r\n\r\n expect(singletonSpy).toBeCalledWith(uc);\r\n });\r\n\r\n it(\"Gets the singleton\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(PatchAssetUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Resolves\", async () => {\r\n const { uc } = makeTestRig();\r\n\r\n return expect(uc.doPatch(makeDTO())).resolves.toEqual(undefined);\r\n });\r\n\r\n it(\"Warns and rejects if the JSON Request rejects\", () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n mockJsonRequester.doRequest.mockRejectedValue(new Error(\"Some JSON Error\"));\r\n\r\n return expect(uc.doPatch(makeDTO())).rejects.toEqual(\r\n new Error(\"Some JSON Error\")\r\n );\r\n });\r\n\r\n it(\"Requests the JSON with the expected url\", async () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n await uc.doPatch(makeDTO());\r\n\r\n const postURL = mockJsonRequester.doRequest.mock.calls[0][0] as URL;\r\n expect(postURL.toString()).toEqual(\r\n \"https://api.vivedlearning.com/assets/asset1\"\r\n );\r\n });\r\n\r\n it(\"Requests the JSON with the expected options\", async () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n const data = makeDTO();\r\n await uc.doPatch(data);\r\n\r\n const postURL = mockJsonRequester.doRequest.mock\r\n .calls[0][1] as RequestJSONOptions;\r\n expect(postURL.method).toEqual(\"PATCH\");\r\n expect(postURL.headers).toEqual({\r\n Authorization: \"Bearer mockAuthToken\"\r\n });\r\n\r\n const bodyObject = JSON.parse(postURL.body);\r\n expect(bodyObject.archived).toEqual(true);\r\n expect(bodyObject.description).toEqual(data.description);\r\n expect(bodyObject.name).toEqual(data.name);\r\n });\r\n\r\n it(\"Rejects if the get auth token fails\", () => {\r\n const { uc, mockAuth } = makeTestRig();\r\n\r\n mockAuth.getUserAuthToken.mockRejectedValue(\r\n new Error(\"Some Auth token error Error\")\r\n );\r\n\r\n return expect(uc.doPatch(makeDTO())).rejects.toEqual(\r\n new Error(\"Some Auth token error Error\")\r\n );\r\n });\r\n\r\n it(\"Rejects if the file upload fails\", () => {\r\n const { uc, mockFileUpload } = makeTestRig();\r\n\r\n mockFileUpload.doUpload.mockRejectedValue(new Error(\"Some upload error\"));\r\n\r\n return expect(uc.doPatch(makeDTO())).rejects.toEqual(\r\n new Error(\"Some upload error\")\r\n );\r\n });\r\n\r\n it(\"Calls file upload as expected\", async () => {\r\n const { uc, mockFileUpload } = makeTestRig();\r\n\r\n const data = makeDTO();\r\n await uc.doPatch(data);\r\n\r\n expect(mockFileUpload.doUpload).toBeCalledWith(data.file);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"PatchAssetUC.test.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/PatchAssetUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { VivedAPIEntity } from \"../Entities/VivedAPIEntity\";\r\nimport { makeMockFileUploadUC } from \"../Mocks/MockFileUpload\";\r\nimport { makeMockJsonRequestUC } from \"../Mocks/MockJsonRequestUC\";\r\nimport { makeMockSignedAuthTokenUC } from \"../Mocks/MockSignedAuthToken\";\r\nimport { RequestJSONOptions } from \"./JsonRequestUC\";\r\nimport { makePatchAssetUC, PatchAssetDTO, PatchAssetUC } from \"./PatchAssetUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const singletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const vivedAPI = new VivedAPIEntity(appObjects.getOrCreate(\"API\"));\r\n\r\n const mockJsonRequester = makeMockJsonRequestUC(appObjects);\r\n mockJsonRequester.doRequest.mockResolvedValue({});\r\n\r\n const mockAuth = makeMockSignedAuthTokenUC(appObjects);\r\n mockAuth.getAuthToken.mockResolvedValue(\"mockAuthToken\");\r\n\r\n const mockFileUpload = makeMockFileUploadUC(appObjects);\r\n\r\n const uc = makePatchAssetUC(appObjects.getOrCreate(\"ao\"));\r\n\r\n return {\r\n uc,\r\n appObjects,\r\n singletonSpy,\r\n vivedAPI,\r\n mockJsonRequester,\r\n mockAuth,\r\n mockFileUpload\r\n };\r\n}\r\n\r\nfunction makeDTO(): PatchAssetDTO {\r\n return {\r\n id: \"asset1\",\r\n archived: true,\r\n description: \"Asset Description\",\r\n name: \"assetName\",\r\n file: new File([], \"some.filename\")\r\n };\r\n}\r\n\r\ndescribe(\"Patch Asset Is Archived UC\", () => {\r\n it(\"Registers itself as the Singleton\", () => {\r\n const { uc, singletonSpy } = makeTestRig();\r\n\r\n expect(singletonSpy).toBeCalledWith(uc);\r\n });\r\n\r\n it(\"Gets the singleton\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(PatchAssetUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Resolves\", async () => {\r\n const { uc } = makeTestRig();\r\n\r\n return expect(uc.doPatch(makeDTO())).resolves.toEqual(undefined);\r\n });\r\n\r\n it(\"Warns and rejects if the JSON Request rejects\", () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n mockJsonRequester.doRequest.mockRejectedValue(new Error(\"Some JSON Error\"));\r\n\r\n return expect(uc.doPatch(makeDTO())).rejects.toEqual(\r\n new Error(\"Some JSON Error\")\r\n );\r\n });\r\n\r\n it(\"Requests the JSON with the expected url\", async () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n await uc.doPatch(makeDTO());\r\n\r\n const postURL = mockJsonRequester.doRequest.mock.calls[0][0] as URL;\r\n expect(postURL.toString()).toEqual(\r\n \"https://api.vivedlearning.com/assets/asset1\"\r\n );\r\n });\r\n\r\n it(\"Requests the JSON with the expected options\", async () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n const data = makeDTO();\r\n await uc.doPatch(data);\r\n\r\n const postURL = mockJsonRequester.doRequest.mock\r\n .calls[0][1] as RequestJSONOptions;\r\n expect(postURL.method).toEqual(\"PATCH\");\r\n expect(postURL.headers).toEqual({\r\n Authorization: \"Bearer mockAuthToken\"\r\n });\r\n\r\n const bodyObject = JSON.parse(postURL.body);\r\n expect(bodyObject.archived).toEqual(true);\r\n expect(bodyObject.description).toEqual(data.description);\r\n expect(bodyObject.name).toEqual(data.name);\r\n });\r\n\r\n it(\"Rejects if the get auth token fails\", () => {\r\n const { uc, mockAuth } = makeTestRig();\r\n\r\n mockAuth.getAuthToken.mockRejectedValue(\r\n new Error(\"Some Auth token error Error\")\r\n );\r\n\r\n return expect(uc.doPatch(makeDTO())).rejects.toEqual(\r\n new Error(\"Some Auth token error Error\")\r\n );\r\n });\r\n\r\n it(\"Rejects if the file upload fails\", () => {\r\n const { uc, mockFileUpload } = makeTestRig();\r\n\r\n mockFileUpload.doUpload.mockRejectedValue(new Error(\"Some upload error\"));\r\n\r\n return expect(uc.doPatch(makeDTO())).rejects.toEqual(\r\n new Error(\"Some upload error\")\r\n );\r\n });\r\n\r\n it(\"Calls file upload as expected\", async () => {\r\n const { uc, mockFileUpload } = makeTestRig();\r\n\r\n const data = makeDTO();\r\n await uc.doPatch(data);\r\n\r\n expect(mockFileUpload.doUpload).toBeCalledWith(data.file);\r\n });\r\n});\r\n"]}
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PostNewAssetUC = void 0;
4
4
  exports.makePostNewAssetUC = makePostNewAssetUC;
5
5
  const core_1 = require("@vived/core");
6
- const core_2 = require("@vived/core");
7
6
  const VivedAPIEntity_1 = require("../Entities/VivedAPIEntity");
8
7
  const FileUploadUC_1 = require("./FileUploadUC");
9
8
  const JsonRequestUC_1 = require("./JsonRequestUC");
@@ -25,7 +24,7 @@ class PostNewAssetUCImp extends PostNewAssetUC {
25
24
  }
26
25
  get getPlayerAuthToken() {
27
26
  return this.getCachedSingleton(SignedAuthTokenUC_1.SignedAuthTokenUC.type)
28
- ?.getUserAuthToken;
27
+ ?.getAuthToken;
29
28
  }
30
29
  get fileUploader() {
31
30
  return this.getCachedSingleton(FileUploadUC_1.FileUploadUC.type)?.doUpload;
@@ -48,7 +47,7 @@ class PostNewAssetUCImp extends PostNewAssetUC {
48
47
  let assetId;
49
48
  const nameSplits = file.name.split(".");
50
49
  const extension = nameSplits[nameSplits.length - 1];
51
- const filename = `${(0, core_2.generateUniqueID)()}.${extension}`;
50
+ const filename = `${(0, core_1.generateUniqueID)()}.${extension}`;
52
51
  const assetFile = new File([file], filename, {
53
52
  lastModified: Date.now()
54
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PostNewAssetUC.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/PostNewAssetUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { generateUniqueID } from \"@vived/core\";\r\nimport { VivedAPIEntity } from \"../Entities/VivedAPIEntity\";\r\nimport { FileUploadUC } from \"./FileUploadUC\";\r\nimport { JsonRequestUC, RequestJSONOptions } from \"./JsonRequestUC\";\r\nimport { SignedAuthTokenUC } from \"./SignedAuthTokenUC\";\r\n\r\nexport interface NewAssetDTO {\r\n name: string;\r\n description: string;\r\n ownerID: string;\r\n file: File;\r\n}\r\n\r\nexport interface NewAssetResponseDTO {\r\n id: string;\r\n filename: string;\r\n}\r\n\r\nexport abstract class PostNewAssetUC extends AppObjectUC {\r\n static type = \"PostNewAssetUC\";\r\n\r\n abstract doPost(data: NewAssetDTO): Promise<NewAssetResponseDTO>;\r\n\r\n static get(appObjects: AppObjectRepo): PostNewAssetUC | undefined {\r\n return getSingletonComponent(PostNewAssetUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makePostNewAssetUC(appObject: AppObject): PostNewAssetUC {\r\n return new PostNewAssetUCImp(appObject);\r\n}\r\n\r\nclass PostNewAssetUCImp extends PostNewAssetUC {\r\n private get jsonRequester() {\r\n return this.getCachedSingleton<JsonRequestUC>(JsonRequestUC.type)\r\n ?.doRequest;\r\n }\r\n\r\n private get getPlayerAuthToken() {\r\n return this.getCachedSingleton<SignedAuthTokenUC>(SignedAuthTokenUC.type)\r\n ?.getUserAuthToken;\r\n }\r\n\r\n private get fileUploader() {\r\n return this.getCachedSingleton<FileUploadUC>(FileUploadUC.type)?.doUpload;\r\n }\r\n\r\n private get vivedAPI() {\r\n return this.getCachedSingleton<VivedAPIEntity>(VivedAPIEntity.type);\r\n }\r\n\r\n doPost = (data: NewAssetDTO): Promise<NewAssetResponseDTO> => {\r\n const fileUploader = this.fileUploader;\r\n const getPlayerAuthToken = this.getPlayerAuthToken;\r\n const vivedAPI = this.vivedAPI;\r\n const jsonRequester = this.jsonRequester;\r\n\r\n if (!fileUploader || !getPlayerAuthToken || !vivedAPI || !jsonRequester) {\r\n return Promise.reject();\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const { description, file, name, ownerID } = data;\r\n let assetId: string;\r\n\r\n const nameSplits = file.name.split(\".\");\r\n const extension = nameSplits[nameSplits.length - 1];\r\n const filename = `${generateUniqueID()}.${extension}`;\r\n const assetFile = new File([file], filename, {\r\n lastModified: Date.now()\r\n });\r\n\r\n fileUploader(assetFile)\r\n .then((_) => {\r\n return getPlayerAuthToken();\r\n })\r\n .then((token) => {\r\n const postURL = vivedAPI.getEndpointURL(\"assets\");\r\n\r\n const body = {\r\n ownerId: ownerID,\r\n name,\r\n description,\r\n filename\r\n };\r\n\r\n const options: RequestJSONOptions = {\r\n method: \"POST\",\r\n body: JSON.stringify(body),\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n };\r\n\r\n return jsonRequester(postURL, options);\r\n })\r\n .then((result) => {\r\n assetId = result.assetId;\r\n resolve({\r\n id: assetId,\r\n filename\r\n });\r\n })\r\n .catch((e) => {\r\n reject(e);\r\n return;\r\n });\r\n });\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, PostNewAssetUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PostNewAssetUC.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/PostNewAssetUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC,\r\n generateUniqueID,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\nimport { VivedAPIEntity } from \"../Entities/VivedAPIEntity\";\r\nimport { FileUploadUC } from \"./FileUploadUC\";\r\nimport { JsonRequestUC, RequestJSONOptions } from \"./JsonRequestUC\";\r\nimport { SignedAuthTokenUC } from \"./SignedAuthTokenUC\";\r\n\r\nexport interface NewAssetApiDto {\r\n name: string;\r\n description: string;\r\n ownerID: string;\r\n file: File;\r\n}\r\n\r\nexport interface NewAssetResponseDTO {\r\n id: string;\r\n filename: string;\r\n}\r\n\r\nexport abstract class PostNewAssetUC extends AppObjectUC {\r\n static type = \"PostNewAssetUC\";\r\n\r\n abstract doPost(data: NewAssetApiDto): Promise<NewAssetResponseDTO>;\r\n\r\n static get(appObjects: AppObjectRepo): PostNewAssetUC | undefined {\r\n return getSingletonComponent(PostNewAssetUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makePostNewAssetUC(appObject: AppObject): PostNewAssetUC {\r\n return new PostNewAssetUCImp(appObject);\r\n}\r\n\r\nclass PostNewAssetUCImp extends PostNewAssetUC {\r\n private get jsonRequester() {\r\n return this.getCachedSingleton<JsonRequestUC>(JsonRequestUC.type)\r\n ?.doRequest;\r\n }\r\n\r\n private get getPlayerAuthToken() {\r\n return this.getCachedSingleton<SignedAuthTokenUC>(SignedAuthTokenUC.type)\r\n ?.getAuthToken;\r\n }\r\n\r\n private get fileUploader() {\r\n return this.getCachedSingleton<FileUploadUC>(FileUploadUC.type)?.doUpload;\r\n }\r\n\r\n private get vivedAPI() {\r\n return this.getCachedSingleton<VivedAPIEntity>(VivedAPIEntity.type);\r\n }\r\n\r\n doPost = (data: NewAssetApiDto): Promise<NewAssetResponseDTO> => {\r\n const fileUploader = this.fileUploader;\r\n const getPlayerAuthToken = this.getPlayerAuthToken;\r\n const vivedAPI = this.vivedAPI;\r\n const jsonRequester = this.jsonRequester;\r\n\r\n if (!fileUploader || !getPlayerAuthToken || !vivedAPI || !jsonRequester) {\r\n return Promise.reject();\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const { description, file, name, ownerID } = data;\r\n let assetId: string;\r\n\r\n const nameSplits = file.name.split(\".\");\r\n const extension = nameSplits[nameSplits.length - 1];\r\n const filename = `${generateUniqueID()}.${extension}`;\r\n const assetFile = new File([file], filename, {\r\n lastModified: Date.now()\r\n });\r\n\r\n fileUploader(assetFile)\r\n .then((_) => {\r\n return getPlayerAuthToken();\r\n })\r\n .then((token) => {\r\n const postURL = vivedAPI.getEndpointURL(\"assets\");\r\n\r\n const body = {\r\n ownerId: ownerID,\r\n name,\r\n description,\r\n filename\r\n };\r\n\r\n const options: RequestJSONOptions = {\r\n method: \"POST\",\r\n body: JSON.stringify(body),\r\n headers: {\r\n Authorization: \"Bearer \" + token\r\n }\r\n };\r\n\r\n return jsonRequester(postURL, options);\r\n })\r\n .then((result) => {\r\n assetId = result.assetId;\r\n resolve({\r\n id: assetId,\r\n filename\r\n });\r\n })\r\n .catch((e) => {\r\n reject(e);\r\n return;\r\n });\r\n });\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, PostNewAssetUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
@@ -15,7 +15,7 @@ function makeTestRig() {
15
15
  const mockUpload = (0, MockFileUpload_1.makeMockFileUploadUC)(appObjects);
16
16
  mockUpload.doUpload.mockResolvedValue(undefined);
17
17
  const mockAuth = (0, MockSignedAuthToken_1.makeMockSignedAuthTokenUC)(appObjects);
18
- mockAuth.getUserAuthToken.mockResolvedValue("mockAuthToken");
18
+ mockAuth.getAuthToken.mockResolvedValue("mockAuthToken");
19
19
  const uc = (0, PostNewAssetUC_1.makePostNewAssetUC)(appObjects.getOrCreate("ao"));
20
20
  return {
21
21
  uc,
@@ -101,7 +101,7 @@ describe("JSON Requester", () => {
101
101
  name: "some name",
102
102
  ownerID: "someOwner"
103
103
  };
104
- mockAuth.getUserAuthToken.mockRejectedValue(new Error("Some Auth token error Error"));
104
+ mockAuth.getAuthToken.mockRejectedValue(new Error("Some Auth token error Error"));
105
105
  return expect(uc.doPost(dto)).rejects.toEqual(new Error("Some Auth token error Error"));
106
106
  });
107
107
  it("Rejects if the upload fails", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"PostNewAssetUC.test.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/PostNewAssetUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { VivedAPIEntity } from \"../Entities/VivedAPIEntity\";\r\nimport { makeMockFileUploadUC } from \"../Mocks/MockFileUpload\";\r\nimport { makeMockJsonRequestUC } from \"../Mocks/MockJsonRequestUC\";\r\nimport { makeMockSignedAuthTokenUC } from \"../Mocks/MockSignedAuthToken\";\r\nimport { RequestJSONOptions } from \"./JsonRequestUC\";\r\nimport {\r\n makePostNewAssetUC,\r\n NewAssetDTO,\r\n PostNewAssetUC\r\n} from \"./PostNewAssetUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const singletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const vivedAPI = new VivedAPIEntity(appObjects.getOrCreate(\"API\"));\r\n\r\n const mockJsonRequester = makeMockJsonRequestUC(appObjects);\r\n mockJsonRequester.doRequest.mockResolvedValue({ assetId: \"newAssetID\" });\r\n\r\n const mockUpload = makeMockFileUploadUC(appObjects);\r\n mockUpload.doUpload.mockResolvedValue(undefined);\r\n\r\n const mockAuth = makeMockSignedAuthTokenUC(appObjects);\r\n mockAuth.getUserAuthToken.mockResolvedValue(\"mockAuthToken\");\r\n\r\n const uc = makePostNewAssetUC(appObjects.getOrCreate(\"ao\"));\r\n\r\n return {\r\n uc,\r\n appObjects,\r\n singletonSpy,\r\n vivedAPI,\r\n mockJsonRequester,\r\n mockUpload,\r\n mockAuth\r\n };\r\n}\r\n\r\ndescribe(\"JSON Requester\", () => {\r\n it(\"Registers itself as the Singleton\", () => {\r\n const { uc, singletonSpy } = makeTestRig();\r\n\r\n expect(singletonSpy).toBeCalledWith(uc);\r\n });\r\n\r\n it(\"Gets the singleton\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(PostNewAssetUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Resolves with the new Asset ID and filename\", async () => {\r\n const { uc } = makeTestRig();\r\n\r\n const dto: NewAssetDTO = {\r\n description: \"some desc\",\r\n file: new File([], \"file.name\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n\r\n const resp = await uc.doPost(dto);\r\n\r\n expect(resp.id).toEqual(\"newAssetID\");\r\n expect(resp.filename).not.toEqual(\"file.name\");\r\n expect(resp.filename).toContain(\".name\");\r\n });\r\n\r\n it(\"Warns and rejects if the JSON Request rejects\", () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n mockJsonRequester.doRequest.mockRejectedValue(new Error(\"Some JSON Error\"));\r\n\r\n const dto: NewAssetDTO = {\r\n description: \"some desc\",\r\n file: new File([], \"filename\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n\r\n return expect(uc.doPost(dto)).rejects.toEqual(new Error(\"Some JSON Error\"));\r\n });\r\n\r\n it(\"Requests the JSON with the expected url\", async () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n const dto: NewAssetDTO = {\r\n description: \"some desc\",\r\n file: new File([], \"filename\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n\r\n await uc.doPost(dto);\r\n\r\n const postURL = mockJsonRequester.doRequest.mock.calls[0][0] as URL;\r\n expect(postURL.toString()).toEqual(\"https://api.vivedlearning.com/assets\");\r\n });\r\n\r\n it(\"Requests the JSON with the expected options\", async () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n const dto: NewAssetDTO = {\r\n description: \"some desc\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n\r\n await uc.doPost(dto);\r\n\r\n const postURL = mockJsonRequester.doRequest.mock\r\n .calls[0][1] as RequestJSONOptions;\r\n expect(postURL.method).toEqual(\"POST\");\r\n expect(postURL.headers).toEqual({\r\n Authorization: \"Bearer mockAuthToken\"\r\n });\r\n\r\n const body = JSON.parse(postURL.body) as any;\r\n expect(body.ownerId).toEqual(\"someOwner\");\r\n expect(body.name).toEqual(\"some name\");\r\n expect(body.description).toEqual(\"some desc\");\r\n expect(body.filename).toContain(\".file\");\r\n });\r\n\r\n it(\"Rejects if the get auth token fails\", () => {\r\n const { uc, mockAuth } = makeTestRig();\r\n\r\n const dto: NewAssetDTO = {\r\n description: \"some desc\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n mockAuth.getUserAuthToken.mockRejectedValue(\r\n new Error(\"Some Auth token error Error\")\r\n );\r\n\r\n return expect(uc.doPost(dto)).rejects.toEqual(\r\n new Error(\"Some Auth token error Error\")\r\n );\r\n });\r\n\r\n it(\"Rejects if the upload fails\", () => {\r\n const { uc, mockUpload } = makeTestRig();\r\n\r\n const dto: NewAssetDTO = {\r\n description: \"some desc\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n mockUpload.doUpload.mockRejectedValue(new Error(\"Some upload Error\"));\r\n\r\n return expect(uc.doPost(dto)).rejects.toEqual(\r\n new Error(\"Some upload Error\")\r\n );\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"PostNewAssetUC.test.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/PostNewAssetUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { VivedAPIEntity } from \"../Entities/VivedAPIEntity\";\r\nimport { makeMockFileUploadUC } from \"../Mocks/MockFileUpload\";\r\nimport { makeMockJsonRequestUC } from \"../Mocks/MockJsonRequestUC\";\r\nimport { makeMockSignedAuthTokenUC } from \"../Mocks/MockSignedAuthToken\";\r\nimport { RequestJSONOptions } from \"./JsonRequestUC\";\r\nimport {\r\n makePostNewAssetUC,\r\n NewAssetApiDto,\r\n PostNewAssetUC\r\n} from \"./PostNewAssetUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const singletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const vivedAPI = new VivedAPIEntity(appObjects.getOrCreate(\"API\"));\r\n\r\n const mockJsonRequester = makeMockJsonRequestUC(appObjects);\r\n mockJsonRequester.doRequest.mockResolvedValue({ assetId: \"newAssetID\" });\r\n\r\n const mockUpload = makeMockFileUploadUC(appObjects);\r\n mockUpload.doUpload.mockResolvedValue(undefined);\r\n\r\n const mockAuth = makeMockSignedAuthTokenUC(appObjects);\r\n mockAuth.getAuthToken.mockResolvedValue(\"mockAuthToken\");\r\n\r\n const uc = makePostNewAssetUC(appObjects.getOrCreate(\"ao\"));\r\n\r\n return {\r\n uc,\r\n appObjects,\r\n singletonSpy,\r\n vivedAPI,\r\n mockJsonRequester,\r\n mockUpload,\r\n mockAuth\r\n };\r\n}\r\n\r\ndescribe(\"JSON Requester\", () => {\r\n it(\"Registers itself as the Singleton\", () => {\r\n const { uc, singletonSpy } = makeTestRig();\r\n\r\n expect(singletonSpy).toBeCalledWith(uc);\r\n });\r\n\r\n it(\"Gets the singleton\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(PostNewAssetUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Resolves with the new Asset ID and filename\", async () => {\r\n const { uc } = makeTestRig();\r\n\r\n const dto: NewAssetApiDto = {\r\n description: \"some desc\",\r\n file: new File([], \"file.name\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n\r\n const resp = await uc.doPost(dto);\r\n\r\n expect(resp.id).toEqual(\"newAssetID\");\r\n expect(resp.filename).not.toEqual(\"file.name\");\r\n expect(resp.filename).toContain(\".name\");\r\n });\r\n\r\n it(\"Warns and rejects if the JSON Request rejects\", () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n mockJsonRequester.doRequest.mockRejectedValue(new Error(\"Some JSON Error\"));\r\n\r\n const dto: NewAssetApiDto = {\r\n description: \"some desc\",\r\n file: new File([], \"filename\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n\r\n return expect(uc.doPost(dto)).rejects.toEqual(new Error(\"Some JSON Error\"));\r\n });\r\n\r\n it(\"Requests the JSON with the expected url\", async () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n const dto: NewAssetApiDto = {\r\n description: \"some desc\",\r\n file: new File([], \"filename\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n\r\n await uc.doPost(dto);\r\n\r\n const postURL = mockJsonRequester.doRequest.mock.calls[0][0] as URL;\r\n expect(postURL.toString()).toEqual(\"https://api.vivedlearning.com/assets\");\r\n });\r\n\r\n it(\"Requests the JSON with the expected options\", async () => {\r\n const { uc, mockJsonRequester } = makeTestRig();\r\n\r\n const dto: NewAssetApiDto = {\r\n description: \"some desc\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n\r\n await uc.doPost(dto);\r\n\r\n const postURL = mockJsonRequester.doRequest.mock\r\n .calls[0][1] as RequestJSONOptions;\r\n expect(postURL.method).toEqual(\"POST\");\r\n expect(postURL.headers).toEqual({\r\n Authorization: \"Bearer mockAuthToken\"\r\n });\r\n\r\n const body = JSON.parse(postURL.body) as any;\r\n expect(body.ownerId).toEqual(\"someOwner\");\r\n expect(body.name).toEqual(\"some name\");\r\n expect(body.description).toEqual(\"some desc\");\r\n expect(body.filename).toContain(\".file\");\r\n });\r\n\r\n it(\"Rejects if the get auth token fails\", () => {\r\n const { uc, mockAuth } = makeTestRig();\r\n\r\n const dto: NewAssetApiDto = {\r\n description: \"some desc\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n mockAuth.getAuthToken.mockRejectedValue(\r\n new Error(\"Some Auth token error Error\")\r\n );\r\n\r\n return expect(uc.doPost(dto)).rejects.toEqual(\r\n new Error(\"Some Auth token error Error\")\r\n );\r\n });\r\n\r\n it(\"Rejects if the upload fails\", () => {\r\n const { uc, mockUpload } = makeTestRig();\r\n\r\n const dto: NewAssetApiDto = {\r\n description: \"some desc\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\",\r\n ownerID: \"someOwner\"\r\n };\r\n mockUpload.doUpload.mockRejectedValue(new Error(\"Some upload Error\"));\r\n\r\n return expect(uc.doPost(dto)).rejects.toEqual(\r\n new Error(\"Some upload Error\")\r\n );\r\n });\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SignedAuthTokenUC.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/SignedAuthTokenUC.ts"],"names":[],"mappings":";;;AAAA,sCAAgF;AAEhF,MAAsB,iBAAkB,SAAQ,kBAAW;IAMzD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC;;AARH,8CASC;AARQ,sBAAI,GAAG,mBAAmB,CAAC","sourcesContent":["import { getSingletonComponent, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\n\r\nexport abstract class SignedAuthTokenUC extends AppObjectUC {\r\n static type = \"SignedAuthTokenUC\";\r\n\r\n abstract getPlayerAuthToken(): Promise<string>;\r\n abstract getUserAuthToken(): Promise<string>;\r\n\r\n static get(appObjects: AppObjectRepo): SignedAuthTokenUC | undefined {\r\n return getSingletonComponent(SignedAuthTokenUC.type, appObjects);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SignedAuthTokenUC.js","sourceRoot":"","sources":["../../../../src/VivedAPI/UCs/SignedAuthTokenUC.ts"],"names":[],"mappings":";;;AAAA,sCAAgF;AAEhF,MAAsB,iBAAkB,SAAQ,kBAAW;IAKzD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,IAAA,4BAAqB,EAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC;;AAPH,8CAQC;AAPQ,sBAAI,GAAG,mBAAmB,CAAC","sourcesContent":["import { AppObjectRepo, AppObjectUC, getSingletonComponent } from \"@vived/core\";\r\n\r\nexport abstract class SignedAuthTokenUC extends AppObjectUC {\r\n static type = \"SignedAuthTokenUC\";\r\n\r\n abstract getAuthToken(): Promise<string>;\r\n\r\n static get(appObjects: AppObjectRepo): SignedAuthTokenUC | undefined {\r\n return getSingletonComponent(SignedAuthTokenUC.type, appObjects);\r\n }\r\n}\r\n"]}
@@ -6,6 +6,8 @@ import { setupStandardHostHandlers } from "../../Handler/setupStandardHostHandle
6
6
  import { makeAppSandboxEntity } from "../Entities";
7
7
  import { makeDevFeaturesEnabledPM, makeSandboxStatePM, makeShowInspectorPM, makeStartInZSpacePM } from "../PMs";
8
8
  import { makeShowBabylonInspectorUC } from "../UCs";
9
+ import { SubmitActivityAssetHandler } from "../../Handler";
10
+ import { makeSubmitActivityAssetHandlerSandbox } from "../UCs/submitActivityAssetHandlerSandbox";
9
11
  export function setupAppSandbox(appID, appObjects) {
10
12
  const ao = appObjects.getOrCreate(appID);
11
13
  // Entities
@@ -24,6 +26,10 @@ export function setupAppSandbox(appID, appObjects) {
24
26
  makeSandboxStatePM(ao);
25
27
  makeShowInspectorPM(ao);
26
28
  makeStartInZSpacePM(ao);
29
+ const submitActivityAssetUC = appObjects.getSingleton(SubmitActivityAssetHandler.type);
30
+ if (submitActivityAssetUC) {
31
+ submitActivityAssetUC.action = makeSubmitActivityAssetHandlerSandbox(appObjects);
32
+ }
27
33
  return entity;
28
34
  }
29
35
  //# sourceMappingURL=setupAppSandbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupAppSandbox.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/setupAppSandbox.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAoB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AAEpD,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,UAAyB;IAEzB,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEzC,WAAW;IACX,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3B,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAE1B,KAAK;IACL,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACjC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEvB,MAAM;IACN,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport {\r\n makeSandboxMounter,\r\n makeStartAppUC,\r\n makeStopAppUC\r\n} from \"../../Apps/UCs\";\r\nimport { makeHostDispatchEntity } from \"../../Dispatcher/Entities\";\r\nimport { setupStandardHostDispatchers } from \"../../Dispatcher/setupStandardHostDispatchers\";\r\nimport { makeHostHandlerEntity } from \"../../Handler/Entities\";\r\nimport { setupStandardHostHandlers } from \"../../Handler/setupStandardHostHandlers\";\r\nimport { AppSandboxEntity, makeAppSandboxEntity } from \"../Entities\";\r\nimport {\r\n makeDevFeaturesEnabledPM,\r\n makeSandboxStatePM,\r\n makeShowInspectorPM,\r\n makeStartInZSpacePM\r\n} from \"../PMs\";\r\nimport { makeShowBabylonInspectorUC } from \"../UCs\";\r\n\r\nexport function setupAppSandbox(\r\n appID: string,\r\n appObjects: AppObjectRepo\r\n): AppSandboxEntity {\r\n const ao = appObjects.getOrCreate(appID);\r\n\r\n // Entities\r\n const entity = makeAppSandboxEntity(ao);\r\n makeHostDispatchEntity(ao);\r\n makeHostHandlerEntity(ao);\r\n\r\n // UC\r\n setupStandardHostDispatchers(ao);\r\n setupStandardHostHandlers(ao);\r\n makeStartAppUC(ao);\r\n makeStopAppUC(ao);\r\n makeShowBabylonInspectorUC(ao);\r\n makeSandboxMounter(ao);\r\n\r\n // PMs\r\n makeDevFeaturesEnabledPM(ao);\r\n makeSandboxStatePM(ao);\r\n makeShowInspectorPM(ao);\r\n makeStartInZSpacePM(ao);\r\n\r\n return entity;\r\n}\r\n"]}
1
+ {"version":3,"file":"setupAppSandbox.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/setupAppSandbox.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAoB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,qCAAqC,EAAE,MAAM,0CAA0C,CAAC;AAEjG,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,UAAyB;IAEzB,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEzC,WAAW;IACX,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3B,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAE1B,KAAK;IACL,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACjC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEvB,MAAM;IACN,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAExB,MAAM,qBAAqB,GAAG,UAAU,CAAC,YAAY,CACnD,0BAA0B,CAAC,IAAI,CAChC,CAAC;IACF,IAAI,qBAAqB,EAAE,CAAC;QAC1B,qBAAqB,CAAC,MAAM,GAAG,qCAAqC,CAClE,UAAU,CACX,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport {\r\n makeSandboxMounter,\r\n makeStartAppUC,\r\n makeStopAppUC\r\n} from \"../../Apps/UCs\";\r\nimport { makeHostDispatchEntity } from \"../../Dispatcher/Entities\";\r\nimport { setupStandardHostDispatchers } from \"../../Dispatcher/setupStandardHostDispatchers\";\r\nimport { makeHostHandlerEntity } from \"../../Handler/Entities\";\r\nimport { setupStandardHostHandlers } from \"../../Handler/setupStandardHostHandlers\";\r\nimport { AppSandboxEntity, makeAppSandboxEntity } from \"../Entities\";\r\nimport {\r\n makeDevFeaturesEnabledPM,\r\n makeSandboxStatePM,\r\n makeShowInspectorPM,\r\n makeStartInZSpacePM\r\n} from \"../PMs\";\r\nimport { makeShowBabylonInspectorUC } from \"../UCs\";\r\nimport { SubmitActivityAssetHandler } from \"../../Handler\";\r\nimport { makeSubmitActivityAssetHandlerSandbox } from \"../UCs/submitActivityAssetHandlerSandbox\";\r\n\r\nexport function setupAppSandbox(\r\n appID: string,\r\n appObjects: AppObjectRepo\r\n): AppSandboxEntity {\r\n const ao = appObjects.getOrCreate(appID);\r\n\r\n // Entities\r\n const entity = makeAppSandboxEntity(ao);\r\n makeHostDispatchEntity(ao);\r\n makeHostHandlerEntity(ao);\r\n\r\n // UC\r\n setupStandardHostDispatchers(ao);\r\n setupStandardHostHandlers(ao);\r\n makeStartAppUC(ao);\r\n makeStopAppUC(ao);\r\n makeShowBabylonInspectorUC(ao);\r\n makeSandboxMounter(ao);\r\n\r\n // PMs\r\n makeDevFeaturesEnabledPM(ao);\r\n makeSandboxStatePM(ao);\r\n makeShowInspectorPM(ao);\r\n makeStartInZSpacePM(ao);\r\n\r\n const submitActivityAssetUC = appObjects.getSingleton<SubmitActivityAssetHandler>(\r\n SubmitActivityAssetHandler.type\r\n );\r\n if (submitActivityAssetUC) {\r\n submitActivityAssetUC.action = makeSubmitActivityAssetHandlerSandbox(\r\n appObjects\r\n );\r\n }\r\n\r\n return entity;\r\n}\r\n"]}
@@ -0,0 +1,34 @@
1
+ import { AppSandboxEntity } from "..";
2
+ import { NewAssetUC } from "../../Assets";
3
+ export function makeSubmitActivityAssetHandlerSandbox(appObjects) {
4
+ return function submitActivityAssetHandler(assetFile, callback) {
5
+ const sandbox = AppSandboxEntity.get(appObjects);
6
+ if (!sandbox) {
7
+ appObjects.submitError("makeSubmitActivityAssetHandlerSandbox", "Unable to find AppSandboxEntity");
8
+ callback(undefined);
9
+ return;
10
+ }
11
+ if (!sandbox.mockActivityID) {
12
+ appObjects.submitError("makeSubmitActivityAssetHandlerSandbox", "No activity ID found");
13
+ callback(undefined);
14
+ return;
15
+ }
16
+ const ownerID = sandbox.mockActivityID;
17
+ const newAssetData = {
18
+ name: "Activity Asset",
19
+ description: "Asset for activity " + ownerID,
20
+ file: assetFile,
21
+ owner: ownerID
22
+ };
23
+ const newAssetUC = NewAssetUC.get(appObjects);
24
+ if (!newAssetUC) {
25
+ appObjects.submitError("makeSubmitActivityAssetHandlerSandbox", "Unable to find NewAssetUC");
26
+ callback(undefined);
27
+ return;
28
+ }
29
+ newAssetUC.create(newAssetData).then((assetID) => {
30
+ callback(assetID);
31
+ });
32
+ };
33
+ }
34
+ //# sourceMappingURL=submitActivityAssetHandlerSandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitActivityAssetHandlerSandbox.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/submitActivityAssetHandlerSandbox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAe,UAAU,EAAE,MAAM,cAAc,CAAC;AAGvD,MAAM,UAAU,qCAAqC,CACnD,UAAyB;IAEzB,OAAO,SAAS,0BAA0B,CACxC,SAAe,EACf,QAA+C;QAE/C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,UAAU,CAAC,WAAW,CACpB,uCAAuC,EACvC,iCAAiC,CAClC,CAAC;YACF,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,UAAU,CAAC,WAAW,CACpB,uCAAuC,EACvC,sBAAsB,CACvB,CAAC;YACF,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAW,OAAO,CAAC,cAAc,CAAC;QAE/C,MAAM,YAAY,GAAgB;YAChC,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,qBAAqB,GAAG,OAAO;YAC5C,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,OAAO;SACf,CAAC;QAEF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,CAAC,WAAW,CACpB,uCAAuC,EACvC,2BAA2B,CAC5B,CAAC;YACF,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/C,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { AppSandboxEntity } from \"..\";\r\nimport { NewAssetDto, NewAssetUC } from \"../../Assets\";\r\nimport { SubmitActivityAssetAction } from \"../../Handler/UCs/SubmitActivityAssetHandler\";\r\n\r\nexport function makeSubmitActivityAssetHandlerSandbox(\r\n appObjects: AppObjectRepo\r\n): SubmitActivityAssetAction {\r\n return function submitActivityAssetHandler(\r\n assetFile: File,\r\n callback: (assetID: string | undefined) => void\r\n ): void {\r\n const sandbox = AppSandboxEntity.get(appObjects);\r\n if (!sandbox) {\r\n appObjects.submitError(\r\n \"makeSubmitActivityAssetHandlerSandbox\",\r\n \"Unable to find AppSandboxEntity\"\r\n );\r\n callback(undefined);\r\n return;\r\n }\r\n\r\n if (!sandbox.mockActivityID) {\r\n appObjects.submitError(\r\n \"makeSubmitActivityAssetHandlerSandbox\",\r\n \"No activity ID found\"\r\n );\r\n callback(undefined);\r\n return;\r\n }\r\n\r\n const ownerID: string = sandbox.mockActivityID;\r\n\r\n const newAssetData: NewAssetDto = {\r\n name: \"Activity Asset\",\r\n description: \"Asset for activity \" + ownerID,\r\n file: assetFile,\r\n owner: ownerID\r\n };\r\n\r\n const newAssetUC = NewAssetUC.get(appObjects);\r\n if (!newAssetUC) {\r\n appObjects.submitError(\r\n \"makeSubmitActivityAssetHandlerSandbox\",\r\n \"Unable to find NewAssetUC\"\r\n );\r\n callback(undefined);\r\n return;\r\n }\r\n\r\n newAssetUC.create(newAssetData).then((assetID) => {\r\n callback(assetID);\r\n });\r\n };\r\n}\r\n"]}
@@ -0,0 +1,53 @@
1
+ import { makeAppObjectRepo } from "@vived/core";
2
+ import { makeMockNewAssetUC, NewAssetUC } from "../../Assets";
3
+ import { makeAppSandboxEntity } from "../Entities";
4
+ import { makeSubmitActivityAssetHandlerSandbox } from "./submitActivityAssetHandlerSandbox";
5
+ describe("submitActivityAssetHandler", () => {
6
+ let appObjects;
7
+ let sandbox;
8
+ let newAssetUC;
9
+ let testFile;
10
+ let handler;
11
+ beforeEach(() => {
12
+ appObjects = makeAppObjectRepo();
13
+ sandbox = makeAppSandboxEntity(appObjects.getOrCreate("AppSandbox"));
14
+ sandbox.mockActivityID = "activity";
15
+ newAssetUC = makeMockNewAssetUC(appObjects);
16
+ newAssetUC.create.mockResolvedValue("asset123");
17
+ testFile = new File(["dummy content"], "test.png", {
18
+ type: "image/png"
19
+ });
20
+ handler = makeSubmitActivityAssetHandlerSandbox(appObjects);
21
+ });
22
+ afterEach(() => {
23
+ jest.restoreAllMocks();
24
+ });
25
+ it("should call callback is the new asset id", (done) => {
26
+ const callback = (id) => {
27
+ expect(id).toBe("asset123");
28
+ done();
29
+ };
30
+ handler(testFile, callback);
31
+ });
32
+ it("should submit error when activity ID is empty", (done) => {
33
+ sandbox.mockActivityID = "";
34
+ const errorSpy = jest.spyOn(appObjects, "submitError");
35
+ const callback = (id) => {
36
+ expect(id).toBeUndefined();
37
+ expect(errorSpy).toHaveBeenCalledWith("makeSubmitActivityAssetHandlerSandbox", "No activity ID found");
38
+ done();
39
+ };
40
+ handler(testFile, callback);
41
+ });
42
+ it("should submit error when NewAssetUC is missing", (done) => {
43
+ jest.spyOn(NewAssetUC, "get").mockReturnValue(undefined);
44
+ const errorSpy = jest.spyOn(appObjects, "submitError");
45
+ const callback = (id) => {
46
+ expect(id).toBeUndefined();
47
+ expect(errorSpy).toHaveBeenCalledWith("makeSubmitActivityAssetHandlerSandbox", "Unable to find NewAssetUC");
48
+ done();
49
+ };
50
+ handler(testFile, callback);
51
+ });
52
+ });
53
+ //# sourceMappingURL=submitActivityAssetHandlerSandbox.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitActivityAssetHandlerSandbox.test.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAkB,UAAU,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAoB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qCAAqC,CAAC;AAE5F,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAI,UAAyB,CAAC;IAC9B,IAAI,OAAyB,CAAC;IAC9B,IAAI,UAA0B,CAAC;IAC/B,IAAI,QAAc,CAAC;IACnB,IAAI,OAAkC,CAAC;IAEvC,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACjC,OAAO,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAErE,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC;QAEpC,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC5C,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEhD,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE;YACjD,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QAEH,OAAO,GAAG,qCAAqC,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,CAAC,IAAI,EAAE,EAAE;QACtD,MAAM,QAAQ,GAAG,CAAC,EAAsB,EAAE,EAAE;YAC1C,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5B,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;QAEF,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3D,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,CAAC,EAAsB,EAAE,EAAE;YAC1C,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,uCAAuC,EACvC,sBAAsB,CACvB,CAAC;YACF,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;QAEF,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,CAAC,IAAI,EAAE,EAAE;QAC5D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,CAAC,EAAsB,EAAE,EAAE;YAC1C,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,uCAAuC,EACvC,2BAA2B,CAC5B,CAAC;YACF,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;QAEF,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockNewAssetUC, MockNewAssetUC, NewAssetUC } from \"../../Assets\";\r\nimport { SubmitActivityAssetAction } from \"../../Handler/UCs/SubmitActivityAssetHandler\";\r\nimport { AppSandboxEntity, makeAppSandboxEntity } from \"../Entities\";\r\nimport { makeSubmitActivityAssetHandlerSandbox } from \"./submitActivityAssetHandlerSandbox\";\r\n\r\ndescribe(\"submitActivityAssetHandler\", () => {\r\n let appObjects: AppObjectRepo;\r\n let sandbox: AppSandboxEntity;\r\n let newAssetUC: MockNewAssetUC;\r\n let testFile: File;\r\n let handler: SubmitActivityAssetAction;\r\n\r\n beforeEach(() => {\r\n appObjects = makeAppObjectRepo();\r\n sandbox = makeAppSandboxEntity(appObjects.getOrCreate(\"AppSandbox\"));\r\n\r\n sandbox.mockActivityID = \"activity\";\r\n\r\n newAssetUC = makeMockNewAssetUC(appObjects);\r\n newAssetUC.create.mockResolvedValue(\"asset123\");\r\n\r\n testFile = new File([\"dummy content\"], \"test.png\", {\r\n type: \"image/png\"\r\n });\r\n\r\n handler = makeSubmitActivityAssetHandlerSandbox(appObjects);\r\n });\r\n\r\n afterEach(() => {\r\n jest.restoreAllMocks();\r\n });\r\n\r\n it(\"should call callback is the new asset id\", (done) => {\r\n const callback = (id: string | undefined) => {\r\n expect(id).toBe(\"asset123\");\r\n done();\r\n };\r\n\r\n handler(testFile, callback);\r\n });\r\n\r\n it(\"should submit error when activity ID is empty\", (done) => {\r\n sandbox.mockActivityID = \"\";\r\n const errorSpy = jest.spyOn(appObjects, \"submitError\");\r\n\r\n const callback = (id: string | undefined) => {\r\n expect(id).toBeUndefined();\r\n expect(errorSpy).toHaveBeenCalledWith(\r\n \"makeSubmitActivityAssetHandlerSandbox\",\r\n \"No activity ID found\"\r\n );\r\n done();\r\n };\r\n\r\n handler(testFile, callback);\r\n });\r\n\r\n it(\"should submit error when NewAssetUC is missing\", (done) => {\r\n jest.spyOn(NewAssetUC, \"get\").mockReturnValue(undefined);\r\n const errorSpy = jest.spyOn(appObjects, \"submitError\");\r\n\r\n const callback = (id: string | undefined) => {\r\n expect(id).toBeUndefined();\r\n expect(errorSpy).toHaveBeenCalledWith(\r\n \"makeSubmitActivityAssetHandlerSandbox\",\r\n \"Unable to find NewAssetUC\"\r\n );\r\n done();\r\n };\r\n\r\n handler(testFile, callback);\r\n });\r\n});\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import { makeAppAssets, makeAssetEntity, makeAssetRepo } from "../Entities";
2
2
  import { makeAppAssetListPM, makeAssetPM, makeEditingAppAssetPM, makeShowArchivedAppAssetPM } from "../PMs";
3
- import { makeArchiveAssetUC, makeDeleteAssetUC, makeDownloadAssetFileUC, makeEditAppAsset, makeGetAppAssetUC, makeGetAssetBlobURLUC, makeGetAssetFileUC, makeGetAssetUC, makeNewAppAssetUC, makePrefetchAssets, makeUpdateAppAssetMetaUC, makeUpdateAssetFileUC } from "../UCs";
3
+ import { makeArchiveAssetUC, makeDeleteAssetUC, makeDownloadAssetFileUC, makeEditAppAsset, makeGetAppAssetUC, makeGetAssetBlobURLUC, makeGetAssetFileUC, makeGetAssetUC, makeNewAppAssetUC, makeNewAssetUC, makePrefetchAssets, makeUpdateAppAssetMetaUC, makeUpdateAssetFileUC } from "../UCs";
4
4
  export function setupAssetsForSandbox(appObjects) {
5
5
  const assetRepoAO = appObjects.getOrCreate("Asset Repository");
6
6
  const appAssetsAO = appObjects.getOrCreate("App Assets");
@@ -14,6 +14,7 @@ export function setupAssetsForSandbox(appObjects) {
14
14
  makeGetAssetFileUC(assetRepoAO);
15
15
  makeGetAssetUC(assetRepoAO);
16
16
  makePrefetchAssets(assetRepoAO);
17
+ makeNewAssetUC(assetRepoAO);
17
18
  makeNewAppAssetUC(appAssetsAO);
18
19
  makeGetAppAssetUC(appAssetsAO);
19
20
  // PMs
@@ -1 +1 @@
1
- {"version":3,"file":"setupAssetsForSandbox.js","sourceRoot":"","sources":["../../../../src/Assets/Factories/setupAssetsForSandbox.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EACb,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,QAAQ,CAAC;AAEhB,MAAM,UAAU,qBAAqB,CAAC,UAAyB;IAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAEzD,WAAW;IACX,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,SAAS,CAAC,YAAY,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACtD,aAAa,CAAC,WAAW,CAAC,CAAC;IAE3B,MAAM;IACN,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9B,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACnC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5B,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEhC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/B,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/B,MAAM;IACN,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChC,0BAA0B,CAAC,WAAW,CAAC,CAAC;IACxC,qBAAqB,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAyB;IACjD,OAAO,SAAS,YAAY,CAAC,EAAU;QACrC,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEtC,WAAW;QACX,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QAEnC,MAAM;QACN,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvB,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACtB,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAC5B,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1B,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAE7B,MAAM;QACN,WAAW,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport {\r\n AssetEntity,\r\n makeAppAssets,\r\n makeAssetEntity,\r\n makeAssetRepo\r\n} from \"../Entities\";\r\nimport {\r\n makeAppAssetListPM,\r\n makeAssetPM,\r\n makeEditingAppAssetPM,\r\n makeShowArchivedAppAssetPM\r\n} from \"../PMs\";\r\nimport {\r\n makeArchiveAssetUC,\r\n makeDeleteAssetUC,\r\n makeDownloadAssetFileUC,\r\n makeEditAppAsset,\r\n makeGetAppAssetUC,\r\n makeGetAssetBlobURLUC,\r\n makeGetAssetFileUC,\r\n makeGetAssetUC,\r\n makeNewAppAssetUC,\r\n makePrefetchAssets,\r\n makeUpdateAppAssetMetaUC,\r\n makeUpdateAssetFileUC\r\n} from \"../UCs\";\r\n\r\nexport function setupAssetsForSandbox(appObjects: AppObjectRepo) {\r\n const assetRepoAO = appObjects.getOrCreate(\"Asset Repository\");\r\n const appAssetsAO = appObjects.getOrCreate(\"App Assets\");\r\n\r\n // Entities\r\n const assetRepo = makeAssetRepo(assetRepoAO);\r\n assetRepo.assetFactory = makeAssetFactory(appObjects);\r\n makeAppAssets(appAssetsAO);\r\n\r\n // UCs\r\n makeEditAppAsset(assetRepoAO);\r\n makeGetAssetBlobURLUC(assetRepoAO);\r\n makeGetAssetFileUC(assetRepoAO);\r\n makeGetAssetUC(assetRepoAO);\r\n makePrefetchAssets(assetRepoAO);\r\n\r\n makeNewAppAssetUC(appAssetsAO);\r\n makeGetAppAssetUC(appAssetsAO);\r\n\r\n // PMs\r\n makeAppAssetListPM(appAssetsAO);\r\n makeShowArchivedAppAssetPM(appAssetsAO);\r\n makeEditingAppAssetPM(appAssetsAO);\r\n}\r\n\r\nfunction makeAssetFactory(appObjects: AppObjectRepo) {\r\n return function assetFactory(id: string): AssetEntity {\r\n const ao = appObjects.getOrCreate(id);\r\n\r\n // Entities\r\n const entity = makeAssetEntity(ao);\r\n\r\n // UCs\r\n makeArchiveAssetUC(ao);\r\n makeDeleteAssetUC(ao);\r\n makeDownloadAssetFileUC(ao);\r\n makeUpdateAssetFileUC(ao);\r\n makeUpdateAppAssetMetaUC(ao);\r\n\r\n // PMs\r\n makeAssetPM(ao);\r\n return entity;\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"setupAssetsForSandbox.js","sourceRoot":"","sources":["../../../../src/Assets/Factories/setupAssetsForSandbox.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EACb,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,QAAQ,CAAC;AAEhB,MAAM,UAAU,qBAAqB,CAAC,UAAyB;IAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAEzD,WAAW;IACX,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,SAAS,CAAC,YAAY,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACtD,aAAa,CAAC,WAAW,CAAC,CAAC;IAE3B,MAAM;IACN,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9B,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACnC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5B,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5B,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/B,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/B,MAAM;IACN,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChC,0BAA0B,CAAC,WAAW,CAAC,CAAC;IACxC,qBAAqB,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAyB;IACjD,OAAO,SAAS,YAAY,CAAC,EAAU;QACrC,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEtC,WAAW;QACX,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QAEnC,MAAM;QACN,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvB,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACtB,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAC5B,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1B,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAE7B,MAAM;QACN,WAAW,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport {\r\n AssetEntity,\r\n makeAppAssets,\r\n makeAssetEntity,\r\n makeAssetRepo\r\n} from \"../Entities\";\r\nimport {\r\n makeAppAssetListPM,\r\n makeAssetPM,\r\n makeEditingAppAssetPM,\r\n makeShowArchivedAppAssetPM\r\n} from \"../PMs\";\r\nimport {\r\n makeArchiveAssetUC,\r\n makeDeleteAssetUC,\r\n makeDownloadAssetFileUC,\r\n makeEditAppAsset,\r\n makeGetAppAssetUC,\r\n makeGetAssetBlobURLUC,\r\n makeGetAssetFileUC,\r\n makeGetAssetUC,\r\n makeNewAppAssetUC,\r\n makeNewAssetUC,\r\n makePrefetchAssets,\r\n makeUpdateAppAssetMetaUC,\r\n makeUpdateAssetFileUC\r\n} from \"../UCs\";\r\n\r\nexport function setupAssetsForSandbox(appObjects: AppObjectRepo) {\r\n const assetRepoAO = appObjects.getOrCreate(\"Asset Repository\");\r\n const appAssetsAO = appObjects.getOrCreate(\"App Assets\");\r\n\r\n // Entities\r\n const assetRepo = makeAssetRepo(assetRepoAO);\r\n assetRepo.assetFactory = makeAssetFactory(appObjects);\r\n makeAppAssets(appAssetsAO);\r\n\r\n // UCs\r\n makeEditAppAsset(assetRepoAO);\r\n makeGetAssetBlobURLUC(assetRepoAO);\r\n makeGetAssetFileUC(assetRepoAO);\r\n makeGetAssetUC(assetRepoAO);\r\n makePrefetchAssets(assetRepoAO);\r\n makeNewAssetUC(assetRepoAO);\r\n makeNewAppAssetUC(appAssetsAO);\r\n makeGetAppAssetUC(appAssetsAO);\r\n\r\n // PMs\r\n makeAppAssetListPM(appAssetsAO);\r\n makeShowArchivedAppAssetPM(appAssetsAO);\r\n makeEditingAppAssetPM(appAssetsAO);\r\n}\r\n\r\nfunction makeAssetFactory(appObjects: AppObjectRepo) {\r\n return function assetFactory(id: string): AssetEntity {\r\n const ao = appObjects.getOrCreate(id);\r\n\r\n // Entities\r\n const entity = makeAssetEntity(ao);\r\n\r\n // UCs\r\n makeArchiveAssetUC(ao);\r\n makeDeleteAssetUC(ao);\r\n makeDownloadAssetFileUC(ao);\r\n makeUpdateAssetFileUC(ao);\r\n makeUpdateAppAssetMetaUC(ao);\r\n\r\n // PMs\r\n makeAssetPM(ao);\r\n return entity;\r\n };\r\n}\r\n"]}
@@ -0,0 +1,11 @@
1
+ import { NewAssetUC } from "../UCs/NewAssetUC";
2
+ export class MockNewAssetUC extends NewAssetUC {
3
+ constructor(appObject) {
4
+ super(appObject, NewAssetUC.type);
5
+ this.create = jest.fn().mockResolvedValue("newAssetID");
6
+ }
7
+ }
8
+ export function makeMockNewAssetUC(appObjects) {
9
+ return new MockNewAssetUC(appObjects.getOrCreate("MockNewAssetUC"));
10
+ }
11
+ //# sourceMappingURL=MockNewAssetUC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockNewAssetUC.js","sourceRoot":"","sources":["../../../../src/Assets/Mocks/MockNewAssetUC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,cAAe,SAAQ,UAAU;IAG5C,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAHpC,WAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAInD,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAyB;IAC1D,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACtE,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { NewAssetUC } from \"../UCs/NewAssetUC\";\r\n\r\nexport class MockNewAssetUC extends NewAssetUC {\r\n create = jest.fn().mockResolvedValue(\"newAssetID\");\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, NewAssetUC.type);\r\n }\r\n}\r\n\r\nexport function makeMockNewAssetUC(appObjects: AppObjectRepo) {\r\n return new MockNewAssetUC(appObjects.getOrCreate(\"MockNewAssetUC\"));\r\n}\r\n"]}
@@ -10,6 +10,7 @@ export * from "./MockGetAssetBlobURLUC";
10
10
  export * from "./MockGetAssetFileUC";
11
11
  export * from "./MockGetAssetUC";
12
12
  export * from "./MockNewAppAsset";
13
+ export * from "./MockNewAssetUC";
13
14
  export * from "./MockPrefetchAssets";
14
15
  export * from "./MockUpdateAssetFileUC";
15
16
  export * from "./MockUpdateAppAssetMetaUC";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Assets/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC","sourcesContent":["export * from \"./AppAssetListPMMock\";\r\nexport * from \"./AssetPMMock\";\r\nexport * from \"./EditingAppAssetPMMock\";\r\nexport * from \"./MockArchiveAsset\";\r\nexport * from \"./MockDeleteAssetUC\";\r\nexport * from \"./MockDownloadAssetFileUC\";\r\nexport * from \"./MockEditAppAssetUC\";\r\nexport * from \"./MockGetAppAssetsUC\";\r\nexport * from \"./MockGetAssetBlobURLUC\";\r\nexport * from \"./MockGetAssetFileUC\";\r\nexport * from \"./MockGetAssetUC\";\r\nexport * from \"./MockNewAppAsset\";\r\nexport * from \"./MockPrefetchAssets\";\r\nexport * from \"./MockUpdateAssetFileUC\";\r\nexport * from \"./MockUpdateAppAssetMetaUC\";\r\nexport * from \"./ShowArchivedAppAssetPMMock\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Assets/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC","sourcesContent":["export * from \"./AppAssetListPMMock\";\r\nexport * from \"./AssetPMMock\";\r\nexport * from \"./EditingAppAssetPMMock\";\r\nexport * from \"./MockArchiveAsset\";\r\nexport * from \"./MockDeleteAssetUC\";\r\nexport * from \"./MockDownloadAssetFileUC\";\r\nexport * from \"./MockEditAppAssetUC\";\r\nexport * from \"./MockGetAppAssetsUC\";\r\nexport * from \"./MockGetAssetBlobURLUC\";\r\nexport * from \"./MockGetAssetFileUC\";\r\nexport * from \"./MockGetAssetUC\";\r\nexport * from \"./MockNewAppAsset\";\r\nexport * from \"./MockNewAssetUC\";\r\nexport * from \"./MockPrefetchAssets\";\r\nexport * from \"./MockUpdateAssetFileUC\";\r\nexport * from \"./MockUpdateAppAssetMetaUC\";\r\nexport * from \"./ShowArchivedAppAssetPMMock\";\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NewAppAssetUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/NewAppAssetUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { AppSandboxEntity, SandboxState } from \"../../AppSandbox/Entities\";\r\nimport {\r\n DialogAlertDTO,\r\n MakeAlertDialogUC,\r\n MakeSpinnerDialogUC\r\n} from \"../../Dialog\";\r\nimport { NewAssetDTO, PostNewAssetUC } from \"../../VivedAPI/UCs\";\r\nimport { AppAssetsEntity, AssetRepo } from \"../Entities\";\r\n\r\nexport interface NewAppAssetDTO {\r\n file: File;\r\n name: string;\r\n description: string;\r\n}\r\n\r\nexport abstract class NewAppAssetUC extends AppObjectUC {\r\n static type = \"NewAppAssetUC\";\r\n\r\n abstract create(data: NewAppAssetDTO): Promise<void>;\r\n\r\n static get(appObjects: AppObjectRepo): NewAppAssetUC | undefined {\r\n return getSingletonComponent(NewAppAssetUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeNewAppAssetUC(appObject: AppObject): NewAppAssetUC {\r\n return new NewAppAssetUCImp(appObject);\r\n}\r\n\r\nclass NewAppAssetUCImp extends NewAppAssetUC {\r\n private appAssets?: AppAssetsEntity;\r\n\r\n private get postNewAsset() {\r\n return this.getCachedSingleton<PostNewAssetUC>(PostNewAssetUC.type)?.doPost;\r\n }\r\n\r\n private get assetRepo() {\r\n return this.getCachedSingleton<AssetRepo>(AssetRepo.type);\r\n }\r\n\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n private get spinnerFactory() {\r\n return this.getCachedSingleton<MakeSpinnerDialogUC>(\r\n MakeSpinnerDialogUC.type\r\n );\r\n }\r\n\r\n private get alertFactory() {\r\n return this.getCachedSingleton<MakeAlertDialogUC>(MakeAlertDialogUC.type);\r\n }\r\n\r\n create = (data: NewAppAssetDTO): Promise<void> => {\r\n const appAssets = this.appAssets;\r\n const postNewAsset = this.postNewAsset;\r\n const sandbox = this.sandbox;\r\n const assetRepo = this.assetRepo;\r\n\r\n if (!appAssets || !postNewAsset || !sandbox || !assetRepo) {\r\n return Promise.reject();\r\n }\r\n\r\n return new Promise<void>((resolve) => {\r\n const { description, file, name } = data;\r\n\r\n const newAssetData: NewAssetDTO = {\r\n description,\r\n name,\r\n file,\r\n ownerID: sandbox.appID\r\n };\r\n\r\n const spinnerDialog = this.spinnerFactory?.make({\r\n title: \"New App Asset\",\r\n message: \"Posting new app asset...\"\r\n });\r\n\r\n postNewAsset(newAssetData)\r\n .then((resp) => {\r\n appAssets.add(resp.id);\r\n\r\n const newAsset = assetRepo.assetFactory(resp.id);\r\n newAsset.setFile(file);\r\n newAsset.description = description;\r\n newAsset.name = name;\r\n newAsset.filename = resp.filename;\r\n\r\n assetRepo.add(newAsset);\r\n this.sandbox!.state = SandboxState.MOUNTED;\r\n\r\n spinnerDialog?.close();\r\n resolve();\r\n })\r\n .catch((e: Error) => {\r\n this.error(\"create new asset error: \" + e.message);\r\n spinnerDialog?.close();\r\n\r\n const dialogDTO: DialogAlertDTO = {\r\n buttonLabel: \"OK\",\r\n message: `Something went wrong when creating a new app asset. Check the console. ${e.message}`,\r\n title: \"New App Asset Error\"\r\n };\r\n this.alertFactory?.make(dialogDTO);\r\n\r\n resolve();\r\n });\r\n });\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, NewAppAssetUC.type);\r\n this.appObjects.registerSingleton(this);\r\n\r\n this.appAssets = appObject.getComponent<AppAssetsEntity>(\r\n AppAssetsEntity.type\r\n );\r\n if (!this.appAssets) {\r\n this.error(\r\n \"UC added to an App Object that does not have AppAssetsEntity\"\r\n );\r\n return;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"NewAppAssetUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/NewAppAssetUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { AppSandboxEntity, SandboxState } from \"../../AppSandbox/Entities\";\r\nimport {\r\n DialogAlertDTO,\r\n MakeAlertDialogUC,\r\n MakeSpinnerDialogUC\r\n} from \"../../Dialog\";\r\nimport { NewAssetApiDto, PostNewAssetUC } from \"../../VivedAPI/UCs\";\r\nimport { AppAssetsEntity, AssetRepo } from \"../Entities\";\r\n\r\nexport interface NewAppAssetDTO {\r\n file: File;\r\n name: string;\r\n description: string;\r\n}\r\n\r\nexport abstract class NewAppAssetUC extends AppObjectUC {\r\n static type = \"NewAppAssetUC\";\r\n\r\n abstract create(data: NewAppAssetDTO): Promise<void>;\r\n\r\n static get(appObjects: AppObjectRepo): NewAppAssetUC | undefined {\r\n return getSingletonComponent(NewAppAssetUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeNewAppAssetUC(appObject: AppObject): NewAppAssetUC {\r\n return new NewAppAssetUCImp(appObject);\r\n}\r\n\r\nclass NewAppAssetUCImp extends NewAppAssetUC {\r\n private appAssets?: AppAssetsEntity;\r\n\r\n private get postNewAsset() {\r\n return this.getCachedSingleton<PostNewAssetUC>(PostNewAssetUC.type)?.doPost;\r\n }\r\n\r\n private get assetRepo() {\r\n return this.getCachedSingleton<AssetRepo>(AssetRepo.type);\r\n }\r\n\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n private get spinnerFactory() {\r\n return this.getCachedSingleton<MakeSpinnerDialogUC>(\r\n MakeSpinnerDialogUC.type\r\n );\r\n }\r\n\r\n private get alertFactory() {\r\n return this.getCachedSingleton<MakeAlertDialogUC>(MakeAlertDialogUC.type);\r\n }\r\n\r\n create = (data: NewAppAssetDTO): Promise<void> => {\r\n const appAssets = this.appAssets;\r\n const postNewAsset = this.postNewAsset;\r\n const sandbox = this.sandbox;\r\n const assetRepo = this.assetRepo;\r\n\r\n if (!appAssets || !postNewAsset || !sandbox || !assetRepo) {\r\n return Promise.reject();\r\n }\r\n\r\n return new Promise<void>((resolve) => {\r\n const { description, file, name } = data;\r\n\r\n const newAssetData: NewAssetApiDto = {\r\n description,\r\n name,\r\n file,\r\n ownerID: sandbox.appID\r\n };\r\n\r\n const spinnerDialog = this.spinnerFactory?.make({\r\n title: \"New App Asset\",\r\n message: \"Posting new app asset...\"\r\n });\r\n\r\n postNewAsset(newAssetData)\r\n .then((resp) => {\r\n appAssets.add(resp.id);\r\n\r\n const newAsset = assetRepo.assetFactory(resp.id);\r\n newAsset.setFile(file);\r\n newAsset.description = description;\r\n newAsset.name = name;\r\n newAsset.filename = resp.filename;\r\n\r\n assetRepo.add(newAsset);\r\n this.sandbox!.state = SandboxState.MOUNTED;\r\n\r\n spinnerDialog?.close();\r\n resolve();\r\n })\r\n .catch((e: Error) => {\r\n this.error(\"create new asset error: \" + e.message);\r\n spinnerDialog?.close();\r\n\r\n const dialogDTO: DialogAlertDTO = {\r\n buttonLabel: \"OK\",\r\n message: `Something went wrong when creating a new app asset. Check the console. ${e.message}`,\r\n title: \"New App Asset Error\"\r\n };\r\n this.alertFactory?.make(dialogDTO);\r\n\r\n resolve();\r\n });\r\n });\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, NewAppAssetUC.type);\r\n this.appObjects.registerSingleton(this);\r\n\r\n this.appAssets = appObject.getComponent<AppAssetsEntity>(\r\n AppAssetsEntity.type\r\n );\r\n if (!this.appAssets) {\r\n this.error(\r\n \"UC added to an App Object that does not have AppAssetsEntity\"\r\n );\r\n return;\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NewAppAssetUC.test.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/NewAppAssetUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport {\r\n makeAppSandboxEntity,\r\n SandboxState\r\n} from \"../../AppSandbox/Entities/AppSandboxEntity\";\r\nimport { SpinnerDialogEntity } from \"../../Dialog/Entities\";\r\nimport { makeMockMakeAlertDialogUC } from \"../../Dialog/Mocks/MockMakeAlertDialogUC\";\r\nimport { makeMockMakeSpinnerDialogUC } from \"../../Dialog/Mocks/MockMakeSpinnerDialogUC\";\r\nimport { NewAssetDTO } from \"../../VivedAPI/UCs/PostNewAssetUC\";\r\nimport { makeMockPostNewAssetUC } from \"../../VivedAPI/Mocks/MockPostNewAssetUC\";\r\nimport { makeAppAssets, makeAssetEntity, makeAssetRepo } from \"../Entities\";\r\nimport {\r\n makeNewAppAssetUC,\r\n NewAppAssetDTO,\r\n NewAppAssetUC\r\n} from \"./NewAppAssetUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const singletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const sandbox = makeAppSandboxEntity(appObjects.getOrCreate(\"anAppID\"));\r\n\r\n const mockPost = makeMockPostNewAssetUC(appObjects);\r\n mockPost.doPost.mockResolvedValue({\r\n id: \"newAssetID\",\r\n filename: \"newAssetFile.name\"\r\n });\r\n\r\n URL.createObjectURL = jest.fn();\r\n\r\n const ao = appObjects.getOrCreate(\"ao\");\r\n const appAssets = makeAppAssets(ao);\r\n const assetRepo = makeAssetRepo(ao);\r\n assetRepo.assetFactory = (id: string) => {\r\n return makeAssetEntity(appObjects.getOrCreate(id));\r\n };\r\n\r\n const spinner = new SpinnerDialogEntity(\r\n {\r\n message: \"msg\",\r\n title: \"title\"\r\n },\r\n appObjects.getOrCreate(\"Spinner\")\r\n );\r\n const mockMakeSpinner = makeMockMakeSpinnerDialogUC(appObjects);\r\n mockMakeSpinner.make.mockReturnValue(spinner);\r\n\r\n const mockMakeAlert = makeMockMakeAlertDialogUC(appObjects);\r\n\r\n const uc = makeNewAppAssetUC(ao);\r\n\r\n return {\r\n uc,\r\n appObjects,\r\n singletonSpy,\r\n mockPost,\r\n sandbox,\r\n ao,\r\n appAssets,\r\n assetRepo,\r\n spinner,\r\n mockMakeAlert,\r\n mockMakeSpinner\r\n };\r\n}\r\n\r\nfunction makeDTO(): NewAppAssetDTO {\r\n return {\r\n description: \"some description\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\"\r\n };\r\n}\r\n\r\ndescribe(\"JSON Requester\", () => {\r\n it(\"Registers itself as the Singleton\", () => {\r\n const { uc, singletonSpy } = makeTestRig();\r\n\r\n expect(singletonSpy).toBeCalledWith(uc);\r\n });\r\n\r\n it(\"Gets the singleton\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(NewAppAssetUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Adds the asset to the App Assets\", async () => {\r\n const { appAssets, uc } = makeTestRig();\r\n\r\n expect(appAssets.has(\"newAssetID\")).toEqual(false);\r\n\r\n await uc.create({\r\n description: \"some description\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\"\r\n });\r\n\r\n expect(appAssets.has(\"newAssetID\")).toEqual(true);\r\n });\r\n\r\n it(\"Sets the sandbox stat\", async () => {\r\n const { uc, sandbox } = makeTestRig();\r\n\r\n sandbox.state = SandboxState.PLAYING;\r\n\r\n await uc.create({\r\n description: \"some description\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\"\r\n });\r\n\r\n expect(sandbox.state).toEqual(SandboxState.MOUNTED);\r\n });\r\n\r\n it(\"Forms the post DTO as expected\", async () => {\r\n const { uc, mockPost } = makeTestRig();\r\n\r\n const mockFile = new File([], \"filename.file\");\r\n\r\n const newAppAssetDTO = {\r\n description: \"some description\",\r\n file: mockFile,\r\n name: \"some name\"\r\n };\r\n\r\n await uc.create(newAppAssetDTO);\r\n\r\n const mockPostDTO = mockPost.doPost.mock.calls[0][0] as NewAssetDTO;\r\n\r\n expect(mockPostDTO.description).toEqual(\"some description\");\r\n expect(mockPostDTO.ownerID).toEqual(\"anAppID\");\r\n expect(mockPostDTO.name).toEqual(\"some name\");\r\n expect(mockPostDTO.file).toEqual(mockFile);\r\n });\r\n\r\n it(\"Errors if the post rejects\", async () => {\r\n const { uc, mockPost } = makeTestRig();\r\n\r\n uc.error = jest.fn();\r\n\r\n mockPost.doPost.mockRejectedValue(new Error(\"Some Post Error\"));\r\n\r\n await uc.create(makeDTO());\r\n\r\n expect(uc.error).toBeCalled();\r\n });\r\n\r\n it(\"Shows a spinner\", () => {\r\n const { uc, mockMakeSpinner } = makeTestRig();\r\n\r\n const dto = makeDTO();\r\n\r\n uc.create(dto);\r\n\r\n expect(mockMakeSpinner.make).toBeCalled();\r\n });\r\n\r\n it(\"Hides the spinner when completed\", async () => {\r\n const { uc, spinner } = makeTestRig();\r\n spinner.close = jest.fn();\r\n const dto = makeDTO();\r\n\r\n await uc.create(dto);\r\n\r\n expect(spinner.close).toBeCalled();\r\n });\r\n\r\n it(\"Shows an alert if rejected\", async () => {\r\n const { uc, mockPost, mockMakeAlert } = makeTestRig();\r\n uc.error = jest.fn();\r\n mockPost.doPost.mockRejectedValue(new Error(\"Some Post Error\"));\r\n\r\n await uc.create(makeDTO());\r\n\r\n expect(mockMakeAlert.make).toBeCalled();\r\n });\r\n\r\n it(\"Hides the spinner when rejected\", async () => {\r\n const { uc, mockPost, spinner } = makeTestRig();\r\n spinner.close = jest.fn();\r\n uc.error = jest.fn();\r\n mockPost.doPost.mockRejectedValue(new Error(\"Some Post Error\"));\r\n\r\n await uc.create(makeDTO());\r\n\r\n expect(spinner.close).toBeCalled();\r\n });\r\n\r\n it(\"Adds the asset to the asset repo\", async () => {\r\n const { uc, assetRepo, appAssets } = makeTestRig();\r\n\r\n const mockFile = new File([], \"filename.file\");\r\n\r\n const newAppAssetDTO = {\r\n description: \"some description\",\r\n file: mockFile,\r\n name: \"some name\"\r\n };\r\n\r\n expect(appAssets.getAll()).toHaveLength(0);\r\n\r\n await uc.create(newAppAssetDTO);\r\n\r\n expect(appAssets.getAll()).toHaveLength(1);\r\n const newAssetID = appAssets.getAll()[0];\r\n\r\n expect(assetRepo.has(newAssetID)).toEqual(true);\r\n });\r\n\r\n it(\"Sets up the new asset in the repo\", async () => {\r\n const { uc, assetRepo, appAssets } = makeTestRig();\r\n\r\n const mockFile = new File([], \"filename.file\");\r\n\r\n const newAppAssetDTO = {\r\n description: \"some description\",\r\n file: mockFile,\r\n name: \"some name\"\r\n };\r\n\r\n expect(appAssets.getAll()).toHaveLength(0);\r\n\r\n await uc.create(newAppAssetDTO);\r\n\r\n expect(appAssets.getAll()).toHaveLength(1);\r\n const newAssetID = appAssets.getAll()[0];\r\n\r\n const repoAsset = assetRepo.get(newAssetID);\r\n\r\n expect(repoAsset?.name).toEqual(\"some name\");\r\n expect(repoAsset?.description).toEqual(\"some description\");\r\n expect(repoAsset?.file).toEqual(mockFile);\r\n expect(repoAsset?.filename).toEqual(\"newAssetFile.name\");\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"NewAppAssetUC.test.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/NewAppAssetUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport {\r\n makeAppSandboxEntity,\r\n SandboxState\r\n} from \"../../AppSandbox/Entities/AppSandboxEntity\";\r\nimport { SpinnerDialogEntity } from \"../../Dialog/Entities\";\r\nimport { makeMockMakeAlertDialogUC } from \"../../Dialog/Mocks/MockMakeAlertDialogUC\";\r\nimport { makeMockMakeSpinnerDialogUC } from \"../../Dialog/Mocks/MockMakeSpinnerDialogUC\";\r\nimport { NewAssetApiDto } from \"../../VivedAPI/UCs/PostNewAssetUC\";\r\nimport { makeMockPostNewAssetUC } from \"../../VivedAPI/Mocks/MockPostNewAssetUC\";\r\nimport { makeAppAssets, makeAssetEntity, makeAssetRepo } from \"../Entities\";\r\nimport {\r\n makeNewAppAssetUC,\r\n NewAppAssetDTO,\r\n NewAppAssetUC\r\n} from \"./NewAppAssetUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const singletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const sandbox = makeAppSandboxEntity(appObjects.getOrCreate(\"anAppID\"));\r\n\r\n const mockPost = makeMockPostNewAssetUC(appObjects);\r\n mockPost.doPost.mockResolvedValue({\r\n id: \"newAssetID\",\r\n filename: \"newAssetFile.name\"\r\n });\r\n\r\n URL.createObjectURL = jest.fn();\r\n\r\n const ao = appObjects.getOrCreate(\"ao\");\r\n const appAssets = makeAppAssets(ao);\r\n const assetRepo = makeAssetRepo(ao);\r\n assetRepo.assetFactory = (id: string) => {\r\n return makeAssetEntity(appObjects.getOrCreate(id));\r\n };\r\n\r\n const spinner = new SpinnerDialogEntity(\r\n {\r\n message: \"msg\",\r\n title: \"title\"\r\n },\r\n appObjects.getOrCreate(\"Spinner\")\r\n );\r\n const mockMakeSpinner = makeMockMakeSpinnerDialogUC(appObjects);\r\n mockMakeSpinner.make.mockReturnValue(spinner);\r\n\r\n const mockMakeAlert = makeMockMakeAlertDialogUC(appObjects);\r\n\r\n const uc = makeNewAppAssetUC(ao);\r\n\r\n return {\r\n uc,\r\n appObjects,\r\n singletonSpy,\r\n mockPost,\r\n sandbox,\r\n ao,\r\n appAssets,\r\n assetRepo,\r\n spinner,\r\n mockMakeAlert,\r\n mockMakeSpinner\r\n };\r\n}\r\n\r\nfunction makeDTO(): NewAppAssetDTO {\r\n return {\r\n description: \"some description\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\"\r\n };\r\n}\r\n\r\ndescribe(\"JSON Requester\", () => {\r\n it(\"Registers itself as the Singleton\", () => {\r\n const { uc, singletonSpy } = makeTestRig();\r\n\r\n expect(singletonSpy).toBeCalledWith(uc);\r\n });\r\n\r\n it(\"Gets the singleton\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(NewAppAssetUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Adds the asset to the App Assets\", async () => {\r\n const { appAssets, uc } = makeTestRig();\r\n\r\n expect(appAssets.has(\"newAssetID\")).toEqual(false);\r\n\r\n await uc.create({\r\n description: \"some description\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\"\r\n });\r\n\r\n expect(appAssets.has(\"newAssetID\")).toEqual(true);\r\n });\r\n\r\n it(\"Sets the sandbox stat\", async () => {\r\n const { uc, sandbox } = makeTestRig();\r\n\r\n sandbox.state = SandboxState.PLAYING;\r\n\r\n await uc.create({\r\n description: \"some description\",\r\n file: new File([], \"filename.file\"),\r\n name: \"some name\"\r\n });\r\n\r\n expect(sandbox.state).toEqual(SandboxState.MOUNTED);\r\n });\r\n\r\n it(\"Forms the post DTO as expected\", async () => {\r\n const { uc, mockPost } = makeTestRig();\r\n\r\n const mockFile = new File([], \"filename.file\");\r\n\r\n const newAppAssetDTO = {\r\n description: \"some description\",\r\n file: mockFile,\r\n name: \"some name\"\r\n };\r\n\r\n await uc.create(newAppAssetDTO);\r\n\r\n const mockPostDTO = mockPost.doPost.mock.calls[0][0] as NewAssetApiDto;\r\n\r\n expect(mockPostDTO.description).toEqual(\"some description\");\r\n expect(mockPostDTO.ownerID).toEqual(\"anAppID\");\r\n expect(mockPostDTO.name).toEqual(\"some name\");\r\n expect(mockPostDTO.file).toEqual(mockFile);\r\n });\r\n\r\n it(\"Errors if the post rejects\", async () => {\r\n const { uc, mockPost } = makeTestRig();\r\n\r\n uc.error = jest.fn();\r\n\r\n mockPost.doPost.mockRejectedValue(new Error(\"Some Post Error\"));\r\n\r\n await uc.create(makeDTO());\r\n\r\n expect(uc.error).toBeCalled();\r\n });\r\n\r\n it(\"Shows a spinner\", () => {\r\n const { uc, mockMakeSpinner } = makeTestRig();\r\n\r\n const dto = makeDTO();\r\n\r\n uc.create(dto);\r\n\r\n expect(mockMakeSpinner.make).toBeCalled();\r\n });\r\n\r\n it(\"Hides the spinner when completed\", async () => {\r\n const { uc, spinner } = makeTestRig();\r\n spinner.close = jest.fn();\r\n const dto = makeDTO();\r\n\r\n await uc.create(dto);\r\n\r\n expect(spinner.close).toBeCalled();\r\n });\r\n\r\n it(\"Shows an alert if rejected\", async () => {\r\n const { uc, mockPost, mockMakeAlert } = makeTestRig();\r\n uc.error = jest.fn();\r\n mockPost.doPost.mockRejectedValue(new Error(\"Some Post Error\"));\r\n\r\n await uc.create(makeDTO());\r\n\r\n expect(mockMakeAlert.make).toBeCalled();\r\n });\r\n\r\n it(\"Hides the spinner when rejected\", async () => {\r\n const { uc, mockPost, spinner } = makeTestRig();\r\n spinner.close = jest.fn();\r\n uc.error = jest.fn();\r\n mockPost.doPost.mockRejectedValue(new Error(\"Some Post Error\"));\r\n\r\n await uc.create(makeDTO());\r\n\r\n expect(spinner.close).toBeCalled();\r\n });\r\n\r\n it(\"Adds the asset to the asset repo\", async () => {\r\n const { uc, assetRepo, appAssets } = makeTestRig();\r\n\r\n const mockFile = new File([], \"filename.file\");\r\n\r\n const newAppAssetDTO = {\r\n description: \"some description\",\r\n file: mockFile,\r\n name: \"some name\"\r\n };\r\n\r\n expect(appAssets.getAll()).toHaveLength(0);\r\n\r\n await uc.create(newAppAssetDTO);\r\n\r\n expect(appAssets.getAll()).toHaveLength(1);\r\n const newAssetID = appAssets.getAll()[0];\r\n\r\n expect(assetRepo.has(newAssetID)).toEqual(true);\r\n });\r\n\r\n it(\"Sets up the new asset in the repo\", async () => {\r\n const { uc, assetRepo, appAssets } = makeTestRig();\r\n\r\n const mockFile = new File([], \"filename.file\");\r\n\r\n const newAppAssetDTO = {\r\n description: \"some description\",\r\n file: mockFile,\r\n name: \"some name\"\r\n };\r\n\r\n expect(appAssets.getAll()).toHaveLength(0);\r\n\r\n await uc.create(newAppAssetDTO);\r\n\r\n expect(appAssets.getAll()).toHaveLength(1);\r\n const newAssetID = appAssets.getAll()[0];\r\n\r\n const repoAsset = assetRepo.get(newAssetID);\r\n\r\n expect(repoAsset?.name).toEqual(\"some name\");\r\n expect(repoAsset?.description).toEqual(\"some description\");\r\n expect(repoAsset?.file).toEqual(mockFile);\r\n expect(repoAsset?.filename).toEqual(\"newAssetFile.name\");\r\n });\r\n});\r\n"]}