mirror of
https://github.com/datahub-project/datahub.git
synced 2025-08-11 10:46:52 +00:00

* Releases updated version of datahub-web client UI code * Fix typo in yarn lock * Change yarn lock to match yarn registry directories * Previous commit missed some paths * Even more changes to yarnlock missing in previous commit * Include codegen file for typings * Add files to get parity for datahub-web and current OS datahub-midtier * Add in typo fix from previous commit - change to proper license * Implement proper OS fix for person entity picture url * Workarounds for open source DH issues * Fixes institutional memory api and removes unopensourced tabs for datasets * Fixes search dataset deprecation and user search issue as a result of changes * Remove internal only options in the avatar menu
79 lines
2.1 KiB
TypeScript
79 lines
2.1 KiB
TypeScript
import { ApiError } from '@datahub/utils/api/error';
|
|
|
|
/**
|
|
* Defines available api version types
|
|
* @type {string}
|
|
*/
|
|
export enum ApiVersion {
|
|
v1 = 'v1',
|
|
v2 = 'v2'
|
|
}
|
|
|
|
/**
|
|
* Defines the root path for wherehows front-end api requests
|
|
* @param {ApiVersion} [version = ApiVersion.v1] the
|
|
* @return {string}
|
|
*/
|
|
export const getApiRoot = (version: ApiVersion = ApiVersion.v1): string => `/api/${version}`;
|
|
|
|
/**
|
|
* Defines the literal possible string enum values for the an api response status
|
|
* @type {string}
|
|
*/
|
|
export enum ApiStatus {
|
|
OK = 'ok',
|
|
// Adds support for success response used in api's like /comments, will refactored to use ok
|
|
SUCCESS = 'success',
|
|
FAILED = 'failed',
|
|
ERROR = 'error'
|
|
}
|
|
|
|
/**
|
|
* Enumerates the currently available Api status errors
|
|
* @type {number}
|
|
*/
|
|
export enum ApiResponseStatus {
|
|
Ok = 200,
|
|
BadRequest = 400,
|
|
NotFound = 404,
|
|
UnAuthorized = 401,
|
|
InternalServerError = 500
|
|
}
|
|
|
|
/**
|
|
* Type guard discriminates an error object as an instance of ApiError
|
|
* @param {Error} e
|
|
* @return {boolean}
|
|
*/
|
|
const isApiError = (e: Error): e is ApiError => e instanceof ApiError;
|
|
|
|
/**
|
|
* Curried function further checks if the error instance is an ApiStatusError
|
|
* @param {Error} e he error object to check
|
|
*/
|
|
const isApiStatusError = (e: Error) => (apiResponseStatus: ApiResponseStatus): boolean =>
|
|
isApiError(e) && e.status === apiResponseStatus;
|
|
|
|
/**
|
|
* Convenience function to ascertain if an api error is a not found code
|
|
* @param {Error} e
|
|
* @return {boolean}
|
|
*/
|
|
export const isNotFoundApiError = (e: Error): boolean =>
|
|
isApiStatusError(e)(ApiResponseStatus.NotFound) || isApiStatusError(e)(ApiResponseStatus.BadRequest);
|
|
|
|
/**
|
|
* Checks that a server response status is a server exception
|
|
* @param {Error} e
|
|
* @return {boolean}
|
|
*/
|
|
export const isServerExceptionApiError = (e: Error): boolean =>
|
|
isApiError(e) && e.status >= ApiResponseStatus.InternalServerError;
|
|
|
|
/**
|
|
* Checks that a server response status is an unauthorized error
|
|
* @param {Error} e
|
|
* @return {boolean}
|
|
*/
|
|
export const isUnAuthorizedApiError = (e: Error): boolean => isApiStatusError(e)(ApiResponseStatus.UnAuthorized);
|