refactor: http service (#2233)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { SettingsList } from './SettingsList'
|
||||
import { SettingName, SensitiveSettingName, SubscriptionSettingName } from '@standardnotes/settings'
|
||||
import { API_MESSAGE_INVALID_SESSION } from '@standardnotes/services'
|
||||
import { StatusCode, User } from '@standardnotes/responses'
|
||||
import { HttpStatusCode, isErrorResponse, User } from '@standardnotes/responses'
|
||||
import { SettingsServerInterface } from './SettingsServerInterface'
|
||||
|
||||
/**
|
||||
@@ -31,30 +31,29 @@ export class SettingsGateway {
|
||||
}
|
||||
|
||||
async listSettings() {
|
||||
const { error, data } = await this.settingsApi.listSettings(this.userUuid)
|
||||
const response = await this.settingsApi.listSettings(this.userUuid)
|
||||
|
||||
if (error != undefined) {
|
||||
throw new Error(error.message)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
}
|
||||
|
||||
if (data == undefined || data.settings == undefined) {
|
||||
if (response.data == undefined || response.data.settings == undefined) {
|
||||
return new SettingsList([])
|
||||
}
|
||||
|
||||
const settings: SettingsList = new SettingsList(data.settings)
|
||||
const settings: SettingsList = new SettingsList(response.data.settings)
|
||||
return settings
|
||||
}
|
||||
|
||||
async getSetting(name: SettingName): Promise<string | undefined> {
|
||||
const response = await this.settingsApi.getSetting(this.userUuid, name)
|
||||
|
||||
// Backend responds with 400 when setting doesn't exist
|
||||
if (response.status === StatusCode.HttpBadRequest) {
|
||||
if (response.status === HttpStatusCode.BadRequest) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
if (response.error != undefined) {
|
||||
throw new Error(response.error.message)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
}
|
||||
|
||||
return response?.data?.setting?.value ?? undefined
|
||||
@@ -63,12 +62,12 @@ export class SettingsGateway {
|
||||
async getSubscriptionSetting(name: SubscriptionSettingName): Promise<string | undefined> {
|
||||
const response = await this.settingsApi.getSubscriptionSetting(this.userUuid, name)
|
||||
|
||||
if (response.status === StatusCode.HttpBadRequest) {
|
||||
if (response.status === HttpStatusCode.BadRequest) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
if (response.error != undefined) {
|
||||
throw new Error(response.error.message)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
}
|
||||
|
||||
return response?.data?.setting?.value ?? undefined
|
||||
@@ -77,29 +76,28 @@ export class SettingsGateway {
|
||||
async getDoesSensitiveSettingExist(name: SensitiveSettingName): Promise<boolean> {
|
||||
const response = await this.settingsApi.getSetting(this.userUuid, name)
|
||||
|
||||
// Backend responds with 400 when setting doesn't exist
|
||||
if (response.status === StatusCode.HttpBadRequest) {
|
||||
if (response.status === HttpStatusCode.BadRequest) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (response.error != undefined) {
|
||||
throw new Error(response.error.message)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
}
|
||||
|
||||
return response.data?.success ?? false
|
||||
}
|
||||
|
||||
async updateSetting(name: SettingName, payload: string, sensitive: boolean): Promise<void> {
|
||||
const { error } = await this.settingsApi.updateSetting(this.userUuid, name, payload, sensitive)
|
||||
if (error != undefined) {
|
||||
throw new Error(error.message)
|
||||
const response = await this.settingsApi.updateSetting(this.userUuid, name, payload, sensitive)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
}
|
||||
}
|
||||
|
||||
async deleteSetting(name: SettingName): Promise<void> {
|
||||
const { error } = await this.settingsApi.deleteSetting(this.userUuid, name)
|
||||
if (error != undefined) {
|
||||
throw new Error(error.message)
|
||||
const response = await this.settingsApi.deleteSetting(this.userUuid, name)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,24 +1,25 @@
|
||||
import {
|
||||
DeleteSettingResponse,
|
||||
GetSettingResponse,
|
||||
HttpResponse,
|
||||
ListSettingsResponse,
|
||||
UpdateSettingResponse,
|
||||
} from '@standardnotes/responses'
|
||||
import { UuidString } from '@Lib/Types/UuidString'
|
||||
|
||||
export interface SettingsServerInterface {
|
||||
listSettings(userUuid: UuidString): Promise<ListSettingsResponse>
|
||||
listSettings(userUuid: UuidString): Promise<HttpResponse<ListSettingsResponse>>
|
||||
|
||||
updateSetting(
|
||||
userUuid: UuidString,
|
||||
settingName: string,
|
||||
settingValue: string,
|
||||
sensitive: boolean,
|
||||
): Promise<UpdateSettingResponse>
|
||||
): Promise<HttpResponse<UpdateSettingResponse>>
|
||||
|
||||
getSetting(userUuid: UuidString, settingName: string): Promise<GetSettingResponse>
|
||||
getSetting(userUuid: UuidString, settingName: string): Promise<HttpResponse<GetSettingResponse>>
|
||||
|
||||
getSubscriptionSetting(userUuid: UuidString, settingName: string): Promise<GetSettingResponse>
|
||||
getSubscriptionSetting(userUuid: UuidString, settingName: string): Promise<HttpResponse<GetSettingResponse>>
|
||||
|
||||
deleteSetting(userUuid: UuidString, settingName: string): Promise<DeleteSettingResponse>
|
||||
deleteSetting(userUuid: UuidString, settingName: string): Promise<HttpResponse<DeleteSettingResponse>>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user