]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/extra-utils/custom-pages/custom-pages.ts
Introduce CustomPage command
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / custom-pages / custom-pages.ts
index bf2d16c70b0a19f8a3bbaed35f96ff99c0d4fe2d..56dabdc0f30cf08f1c7b114d38fb8d93553f9325 100644 (file)
@@ -1,31 +1,30 @@
+import { CustomPage } from '@shared/models'
 import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
-import { makeGetRequest, makePutBodyRequest } from '../requests/requests'
+import { AbstractCommand, OverrideCommandOptions } from '../shared'
 
-function getInstanceHomepage (url: string, statusCodeExpected = HttpStatusCode.OK_200) {
-  const path = '/api/v1/custom-pages/homepage/instance'
+export class CustomPagesCommand extends AbstractCommand {
 
-  return makeGetRequest({
-    url,
-    path,
-    statusCodeExpected
-  })
-}
-
-function updateInstanceHomepage (url: string, token: string, content: string) {
-  const path = '/api/v1/custom-pages/homepage/instance'
+  getInstanceHomepage (options: OverrideCommandOptions = {}) {
+    const path = '/api/v1/custom-pages/homepage/instance'
 
-  return makePutBodyRequest({
-    url,
-    path,
-    token,
-    fields: { content },
-    statusCodeExpected: HttpStatusCode.NO_CONTENT_204
-  })
-}
+    return this.getRequestBody<CustomPage>({
+      ...options,
+      path,
+      defaultExpectedStatus: HttpStatusCode.OK_200
+    })
+  }
 
-// ---------------------------------------------------------------------------
+  updateInstanceHomepage (options: OverrideCommandOptions & {
+    content: string
+  }) {
+    const { content } = options
+    const path = '/api/v1/custom-pages/homepage/instance'
 
-export {
-  getInstanceHomepage,
-  updateInstanceHomepage
+    return this.putBodyRequest({
+      ...options,
+      path,
+      fields: { content },
+      defaultExpectedStatus: HttpStatusCode.NO_CONTENT_204
+    })
+  }
 }