feat: add responses package

This commit is contained in:
Karol Sójko
2022-07-06 11:59:04 +02:00
parent 67b0918ba8
commit 9d1f7043e5
73 changed files with 977 additions and 14 deletions

View File

@@ -0,0 +1,10 @@
export type Error = {
message: string
status: number
tag?: string
/** In the case of MFA required responses,
* the required prompt is returned as part of the error */
payload?: {
mfa_key?: string
}
}

View File

@@ -0,0 +1,6 @@
import { HttpResponse } from './HttpResponse'
import { StatusCode } from './StatusCode'
export function isErrorResponseExpiredToken(errorResponse: HttpResponse): boolean {
return errorResponse.status === StatusCode.HttpStatusExpiredAccessToken
}

View File

@@ -0,0 +1,13 @@
import { StatusCode } from './StatusCode'
import { Error } from './Error'
import { ResponseMeta } from './ResponseMeta'
export type HttpResponse = {
status?: StatusCode
error?: Error
data?: {
error?: Error
}
meta?: ResponseMeta
headers?: Map<string, string | null>
}

View File

@@ -0,0 +1,8 @@
import { StatusCode } from './StatusCode'
import { Error } from './Error'
export type MinimalHttpResponse = {
status?: StatusCode
error?: Error
headers?: Map<string, string | null>
}

View File

@@ -0,0 +1,12 @@
import { Role } from '@standardnotes/security'
import { Uuid } from '@standardnotes/common'
export type ResponseMeta = {
auth: {
userUuid?: Uuid
roles?: Role[]
}
server: {
filesServerUrl?: string
}
}

View File

@@ -0,0 +1,16 @@
export enum StatusCode {
LocalValidationError = 10,
CanceledMfa = 11,
UnknownError = 12,
HttpStatusMinSuccess = 200,
HttpStatusNoContent = 204,
HttpStatusMaxSuccess = 299,
/** The session's access token is expired, but the refresh token is valid */
HttpStatusExpiredAccessToken = 498,
/** The session's access token and refresh token are expired, user must reauthenticate */
HttpStatusInvalidSession = 401,
/** User's IP is rate-limited. */
HttpStatusForbidden = 403,
HttpBadRequest = 400,
}