2018-01-24 15:41:46 -08:00
|
|
|
/**
|
|
|
|
* Defines available api version types
|
|
|
|
*/
|
2018-02-28 16:31:37 -08:00
|
|
|
import { ApiError } from 'wherehows-web/utils/api/errors/errors';
|
|
|
|
|
2018-01-24 15:41:46 -08:00
|
|
|
export type ApiVersion = 'v1' | 'v2';
|
|
|
|
|
2017-08-18 03:42:40 -07:00
|
|
|
/**
|
|
|
|
* Defines the root path for wherehows front-end api requests
|
2018-01-24 15:41:46 -08:00
|
|
|
* @param {ApiVersion} [version = 'v1'] the
|
|
|
|
* @return {string}
|
2017-08-18 03:42:40 -07:00
|
|
|
*/
|
2018-01-24 15:41:46 -08:00
|
|
|
export const getApiRoot = (version: ApiVersion = 'v1') => `/api/${version}`;
|
2017-08-18 03:42:40 -07:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Defines the literal possible string enum values for the an api response status
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
export enum ApiStatus {
|
|
|
|
OK = 'ok',
|
2017-09-10 19:31:54 -07:00
|
|
|
// Adds support for success response used in api's like /comments, will refactored to use ok
|
|
|
|
SUCCESS = 'success',
|
2017-11-16 14:54:06 -08:00
|
|
|
FAILED = 'failed',
|
|
|
|
ERROR = 'error'
|
2017-08-18 03:42:40 -07:00
|
|
|
}
|
2018-02-21 14:41:05 -08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Enumerates the currently available Api statuses
|
|
|
|
* @type {number}
|
|
|
|
*/
|
2018-02-22 14:26:19 -08:00
|
|
|
export enum ApiResponseStatus {
|
2018-02-21 14:41:05 -08:00
|
|
|
NotFound = 404,
|
|
|
|
UnAuthorized = 401,
|
|
|
|
InternalServerError = 500
|
|
|
|
}
|
2018-02-28 16:31:37 -08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Convenience function to ascertain if an api error is a not found code
|
|
|
|
* @param {Error} e
|
|
|
|
* @return {boolean}
|
|
|
|
*/
|
|
|
|
export const notFoundApiError = (e: Error) => e instanceof ApiError && e.status === ApiResponseStatus.NotFound;
|