diff --git a/agent/config/routes b/agent/config/routes index 19c84c695..1749be6af 100644 --- a/agent/config/routes +++ b/agent/config/routes @@ -37,7 +37,8 @@ /v0/apps/#AppId/backup/restore RestoreBackupR POST /v0/apps/#AppId/autoconfig/#AppId AutoconfigureR POST -/v0/disks DisksR GET DELETE +/v0/disks DisksR GET +/v0/disks/eject EjectR POST /v0/update UpdateAgentR POST /v0/wifi WifiR GET POST diff --git a/agent/src/Handler/Backups.hs b/agent/src/Handler/Backups.hs index c93866865..d1b5f8c6b 100644 --- a/agent/src/Handler/Backups.hs +++ b/agent/src/Handler/Backups.hs @@ -57,14 +57,13 @@ instance FromJSON RestoreBackupReq where restoreBackupPassword <- o .:? "password" .!= Nothing pure RestoreBackupReq { .. } -data DeleteDisksReq = DeleteDisksReq - { deleteDisksLogicalName :: Text +data EjectDiskReq = EjectDiskReq + { ejectDiskLogicalName :: Text } deriving (Eq, Show) -instance FromJSON DeleteDisksReq where +instance FromJSON EjectDiskReq where parseJSON = withObject "Eject Disk Req" $ \o -> do - deleteDisksLogicalName <- o .: "logicalName" - pure DeleteDisksReq { .. } - + ejectDiskLogicalName <- o .: "logicalName" + pure EjectDiskReq { .. } -- Handlers @@ -107,8 +106,8 @@ postRestoreBackupR appId = disableEndpointOnFailedUpdate $ do getDisksR :: Handler (JSONResponse [AppMgr.DiskInfo]) getDisksR = fmap JSONResponse . runM . handleS9ErrC $ listDisksLogic -deleteDisksR :: Handler () -deleteDisksR = runM . handleS9ErrC $ requireCheckJsonBody >>= ejectDiskLogic . deleteDisksLogicalName +postEjectR :: Handler () +postEjectR = runM . handleS9ErrC $ requireCheckJsonBody >>= ejectDiskLogic . ejectDiskLogicalName -- Logic diff --git a/ui/src/app/services/api/live-api.service.ts b/ui/src/app/services/api/live-api.service.ts index 953ba4639..17f76f868 100644 --- a/ui/src/app/services/api/live-api.service.ts +++ b/ui/src/app/services/api/live-api.service.ts @@ -62,7 +62,7 @@ export class LiveApiService extends ApiService { } async ejectExternalDisk (logicalName: string): Promise { - return this.authRequest({ method: Method.DELETE, url: `/disks`, data: { logicalName } }) + return this.authRequest({ method: Method.POST, url: `/disks`, data: { logicalName } }) } async updateAgent (version: string): Promise {