chore(fix): fixes sync response not correctly identifying all errors (#2346)
This commit is contained in:
@@ -664,7 +664,7 @@ export class SNApiService
|
||||
})
|
||||
|
||||
if (isErrorResponse(response)) {
|
||||
return ClientDisplayableError.FromError(response.data.error)
|
||||
return ClientDisplayableError.FromNetworkError(response)
|
||||
}
|
||||
const data = response.data
|
||||
return {
|
||||
|
||||
@@ -45,6 +45,7 @@ import {
|
||||
ChangeCredentialsResponse,
|
||||
SessionListResponse,
|
||||
HttpSuccessResponse,
|
||||
getErrorFromErrorResponse,
|
||||
} from '@standardnotes/responses'
|
||||
import { CopyPayloadWithContentOverride, RootKeyWithKeyPairsInterface } from '@standardnotes/models'
|
||||
import { LegacySession, MapperInterface, Result, Session, SessionToken } from '@standardnotes/domain-core'
|
||||
@@ -316,7 +317,7 @@ export class SNSessionManager
|
||||
const result = await this.apiService.getSubscription(this.getSureUser().uuid)
|
||||
|
||||
if (isErrorResponse(result)) {
|
||||
return ClientDisplayableError.FromError(result.data?.error)
|
||||
return ClientDisplayableError.FromNetworkError(result)
|
||||
}
|
||||
|
||||
const subscription = result.data.subscription
|
||||
@@ -328,7 +329,7 @@ export class SNSessionManager
|
||||
const response = await this.apiService.getAvailableSubscriptions()
|
||||
|
||||
if (isErrorResponse(response)) {
|
||||
return ClientDisplayableError.FromError(response.data.error)
|
||||
return ClientDisplayableError.FromNetworkError(response)
|
||||
}
|
||||
|
||||
return response.data
|
||||
@@ -418,8 +419,8 @@ export class SNSessionManager
|
||||
ephemeral,
|
||||
})
|
||||
|
||||
if ('error' in registerResponse.data) {
|
||||
throw new ApiCallError(registerResponse.data.error.message)
|
||||
if (isErrorResponse(registerResponse)) {
|
||||
throw new ApiCallError(getErrorFromErrorResponse(registerResponse).message)
|
||||
}
|
||||
|
||||
await this.handleAuthentication({
|
||||
@@ -492,8 +493,8 @@ export class SNSessionManager
|
||||
const result = await this.performSignIn(email, password, strict, ephemeral, minAllowedVersion)
|
||||
if (
|
||||
isErrorResponse(result.response) &&
|
||||
result.response.data.error.tag !== ErrorTag.ClientValidationError &&
|
||||
result.response.data.error.tag !== ErrorTag.ClientCanceledMfa
|
||||
getErrorFromErrorResponse(result.response).tag !== ErrorTag.ClientValidationError &&
|
||||
getErrorFromErrorResponse(result.response).tag !== ErrorTag.ClientCanceledMfa
|
||||
) {
|
||||
const cleanedEmail = cleanedEmailString(email)
|
||||
if (cleanedEmail !== email) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { SettingsList } from './SettingsList'
|
||||
import { SettingName } from '@standardnotes/settings'
|
||||
import { API_MESSAGE_INVALID_SESSION } from '@standardnotes/services'
|
||||
import { HttpStatusCode, isErrorResponse, User } from '@standardnotes/responses'
|
||||
import { getErrorFromErrorResponse, HttpStatusCode, isErrorResponse, User } from '@standardnotes/responses'
|
||||
import { SettingsServerInterface } from './SettingsServerInterface'
|
||||
|
||||
/**
|
||||
@@ -34,7 +34,7 @@ export class SettingsGateway {
|
||||
const response = await this.settingsApi.listSettings(this.userUuid)
|
||||
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
throw new Error(getErrorFromErrorResponse(response).message)
|
||||
}
|
||||
|
||||
if (response.data == undefined || response.data.settings == undefined) {
|
||||
@@ -53,7 +53,7 @@ export class SettingsGateway {
|
||||
}
|
||||
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
throw new Error(getErrorFromErrorResponse(response).message)
|
||||
}
|
||||
|
||||
return response?.data?.setting?.value ?? undefined
|
||||
@@ -71,7 +71,7 @@ export class SettingsGateway {
|
||||
}
|
||||
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
throw new Error(getErrorFromErrorResponse(response).message)
|
||||
}
|
||||
|
||||
return response?.data?.setting?.value ?? undefined
|
||||
@@ -89,7 +89,7 @@ export class SettingsGateway {
|
||||
}
|
||||
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
throw new Error(getErrorFromErrorResponse(response).message)
|
||||
}
|
||||
|
||||
return response.data?.success ?? false
|
||||
@@ -98,14 +98,14 @@ export class SettingsGateway {
|
||||
async updateSetting(name: SettingName, payload: string, sensitive: boolean): Promise<void> {
|
||||
const response = await this.settingsApi.updateSetting(this.userUuid, name.value, payload, sensitive)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
throw new Error(getErrorFromErrorResponse(response).message)
|
||||
}
|
||||
}
|
||||
|
||||
async deleteSetting(name: SettingName): Promise<void> {
|
||||
const response = await this.settingsApi.deleteSetting(this.userUuid, name.value)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
throw new Error(getErrorFromErrorResponse(response).message)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
RawSyncResponse,
|
||||
UserEventServerHash,
|
||||
AsymmetricMessageServerHash,
|
||||
getErrorFromErrorResponse,
|
||||
} from '@standardnotes/responses'
|
||||
import {
|
||||
FilterDisallowedRemotePayloadsAndMap,
|
||||
@@ -35,8 +36,6 @@ export class ServerSyncResponse {
|
||||
private successResponseData: RawSyncResponse | undefined
|
||||
|
||||
constructor(public rawResponse: HttpResponse<RawSyncResponse>) {
|
||||
this.rawResponse = rawResponse
|
||||
|
||||
if (!isErrorResponse(rawResponse)) {
|
||||
this.successResponseData = rawResponse.data
|
||||
}
|
||||
@@ -101,7 +100,11 @@ export class ServerSyncResponse {
|
||||
}
|
||||
|
||||
public get error(): HttpError | undefined {
|
||||
return isErrorResponse(this.rawResponse) ? this.rawResponse.data?.error : undefined
|
||||
if (isErrorResponse(this.rawResponse)) {
|
||||
return getErrorFromErrorResponse(this.rawResponse)
|
||||
} else {
|
||||
return undefined
|
||||
}
|
||||
}
|
||||
|
||||
public get status(): number {
|
||||
@@ -123,6 +126,6 @@ export class ServerSyncResponse {
|
||||
}
|
||||
|
||||
public get hasError(): boolean {
|
||||
return this.error != undefined
|
||||
return isErrorResponse(this.rawResponse)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user