Skip to content
Snippets Groups Projects
Commit e0a8ea68 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-959 OZG-1673 expose isServiceUnavailable(); cleanup http-util; create enum for httpMethods

parent 00ab8eab
Branches
Tags
No related merge requests found
import { HttpStatusCode } from '@angular/common/http';
import { isChangingDataRequest, isForbidden, isServerError, isUnauthorized, isUnprocessableEntity } from './http.util';
import { HttpMethod, isConnectionTimeout } from '..';
import { isChangingDataRequest, isForbidden, isServerError, isServiceUnavailable, isUnauthorized, isUnprocessableEntity } from './http.util';
describe('http util', () => {
const SERVER_ERROR_CODES: HttpStatusCode[] = [500, 501, 505, 506, 507, 508, 510, 511];
const CONNECTION_TIMEOUT_CODES: HttpStatusCode[] = [502, 503, 504];
const CLIENT_ERROR: HttpStatusCode[] = [400, 401, 402, 403, 404, 422];
describe('isForbidden', () => {
it.each([400, 401, 402, 404, 422].concat(SERVER_ERROR_CODES))
it.each(CLIENT_ERROR.slice(HttpStatusCode.Forbidden).concat(SERVER_ERROR_CODES))
('should be false on %i', (httpStatusCode: HttpStatusCode) => {
var result: boolean = isForbidden(httpStatusCode);
......@@ -24,7 +26,7 @@ describe('http util', () => {
describe('isUnauthorized', () => {
it.each([400, 402, 403, 404, 422].concat(SERVER_ERROR_CODES))
it.each(CLIENT_ERROR.slice(HttpStatusCode.Unauthorized).concat(SERVER_ERROR_CODES))
('should be false on %i', (httpStatusCode: HttpStatusCode) => {
var result: boolean = isUnauthorized(httpStatusCode);
......@@ -47,7 +49,7 @@ describe('http util', () => {
expect(result).toBeTruthy();
});
it.each([400, 401, 402, 403, 404, 422].concat(CONNECTION_TIMEOUT_CODES))
it.each(CLIENT_ERROR.concat(CONNECTION_TIMEOUT_CODES))
('should be false on %i', () => {
var result: boolean = isServerError(HttpStatusCode.Forbidden);
......@@ -57,15 +59,14 @@ describe('http util', () => {
describe('isUnprocessableEntity', () => {
it.each([400, 401, 402, 401, 404].concat(SERVER_ERROR_CODES))
it.each(CLIENT_ERROR.slice(HttpStatusCode.UnprocessableEntity).concat(SERVER_ERROR_CODES).concat(SERVER_ERROR_CODES))
('should be false on %i', (httpStatusCode: HttpStatusCode) => {
var result: boolean = isUnprocessableEntity(httpStatusCode);
expect(result).toBeFalsy();
});
it.each([422])
('should be true on %i', () => {
it('should be true on %i', () => {
var result: boolean = isUnprocessableEntity(HttpStatusCode.UnprocessableEntity);
expect(result).toBeTruthy();
......@@ -74,16 +75,50 @@ describe('http util', () => {
describe('isChangingDataRequest', () => {
it.each(['POST', 'PUT', 'PATCH', 'DELETE'])
const CHANGING_DATA_REQUEST_METHOD: string[] = [HttpMethod.POST, HttpMethod.PUT, HttpMethod.PATCH, HttpMethod.DELETE];
it.each(CHANGING_DATA_REQUEST_METHOD)
('should return true on %i', (method: string) => {
var result: boolean = isChangingDataRequest(<any>{ method });
expect(result).toBeTruthy();
})
it.each(['GET'])
('should return false on %i', (method: string) => {
var result: boolean = isChangingDataRequest(<any>{ method });
it('should return false on %i', () => {
var result: boolean = isChangingDataRequest(<any>{ method: HttpMethod.GET });
expect(result).toBeFalsy();
})
})
describe('isConnectionTimeout', () => {
it.each(CONNECTION_TIMEOUT_CODES)
('should return true on %i', (statusCode: number) => {
var result: boolean = isConnectionTimeout(statusCode);
expect(result).toBeTruthy();
})
it.each(SERVER_ERROR_CODES)
('should return false on %i', (statusCode: number) => {
var result: boolean = isConnectionTimeout(statusCode);
expect(result).toBeFalsy();
})
})
describe('isServiceUnavailable', () => {
it('should return true on %i', () => {
var result: boolean = isServiceUnavailable(HttpStatusCode.ServiceUnavailable);
expect(result).toBeTruthy();
})
it.each(SERVER_ERROR_CODES.concat(CONNECTION_TIMEOUT_CODES.slice(HttpStatusCode.ServiceUnavailable)))
('should return false on %i', (statusCode: number) => {
var result: boolean = isServiceUnavailable(statusCode);
expect(result).toBeFalsy();
})
......
import { HttpRequest, HttpStatusCode } from '@angular/common/http';
import { HttpMethod } from './tech.model';
export function isForbidden(status: HttpStatusCode): boolean {
return status == HttpStatusCode.Forbidden;
......@@ -24,7 +25,7 @@ function isBadGateway(status: HttpStatusCode): boolean {
return status == HttpStatusCode.BadGateway;
}
function isServiceUnavailable(status: HttpStatusCode): boolean {
export function isServiceUnavailable(status: HttpStatusCode): boolean {
return status == HttpStatusCode.ServiceUnavailable;
}
......@@ -32,8 +33,12 @@ function isGatewayTimeout(status: HttpStatusCode): boolean {
return status == HttpStatusCode.GatewayTimeout;
}
export function isNotFound(status: HttpStatusCode): boolean {
return status == HttpStatusCode.NotFound;
}
export function isChangingDataRequest(request: HttpRequest<unknown>): boolean {
return request.method === 'POST' || request.method === 'PUT' || request.method === 'PATCH' || request.method === 'DELETE'
return request.method === HttpMethod.POST || request.method === HttpMethod.PUT || request.method === HttpMethod.PATCH || request.method === HttpMethod.DELETE;
}
export function existRequestHeader(request: HttpRequest<unknown>, key: string) {
......
......@@ -14,3 +14,11 @@ export interface IssueParam {
name: string,
value: string;
}
export enum HttpMethod {
POST = 'POST',
PUT = 'PUT',
PATCH = 'PATCH',
DELETE = 'DELETE',
GET = 'GET'
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment