feat: add responses package
This commit is contained in:
10
packages/responses/src/Domain/Http/Error.ts
Normal file
10
packages/responses/src/Domain/Http/Error.ts
Normal 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
|
||||
}
|
||||
}
|
||||
6
packages/responses/src/Domain/Http/Functions.ts
Normal file
6
packages/responses/src/Domain/Http/Functions.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { HttpResponse } from './HttpResponse'
|
||||
import { StatusCode } from './StatusCode'
|
||||
|
||||
export function isErrorResponseExpiredToken(errorResponse: HttpResponse): boolean {
|
||||
return errorResponse.status === StatusCode.HttpStatusExpiredAccessToken
|
||||
}
|
||||
13
packages/responses/src/Domain/Http/HttpResponse.ts
Normal file
13
packages/responses/src/Domain/Http/HttpResponse.ts
Normal 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>
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import { StatusCode } from './StatusCode'
|
||||
import { Error } from './Error'
|
||||
|
||||
export type MinimalHttpResponse = {
|
||||
status?: StatusCode
|
||||
error?: Error
|
||||
headers?: Map<string, string | null>
|
||||
}
|
||||
12
packages/responses/src/Domain/Http/ResponseMeta.ts
Normal file
12
packages/responses/src/Domain/Http/ResponseMeta.ts
Normal 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
|
||||
}
|
||||
}
|
||||
16
packages/responses/src/Domain/Http/StatusCode.ts
Normal file
16
packages/responses/src/Domain/Http/StatusCode.ts
Normal 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,
|
||||
}
|
||||
Reference in New Issue
Block a user