feat: added http status code enum

This commit is contained in:
StevanFreeborn
2023-01-27 11:28:45 -06:00
parent 3c633203a8
commit 49ab392964
3 changed files with 142 additions and 0 deletions
+16
View File
@@ -1,6 +1,7 @@
import { AxiosInstance } from 'axios';
import axios from 'axios';
import { ArgumentValidator } from './models/ArgumentValidator';
import { EndpointFactory } from './models/EndpointFactory';
/**
* @class OnspringClient - A client that can communicate with the Onspring API.
@@ -39,4 +40,19 @@ export class OnspringClient {
},
});
}
public async canConnect(): Promise<boolean> {
const endpoint = EndpointFactory.getPingEndpoint(this._client.defaults.baseURL);
try {
var response = await this._client.get(endpoint);
return response.status === 200;
} catch (error) {
return false;
}
}
private async get<T>(endpoint: string): Promise<T> {
const response = await this._client.get<T>(endpoint);
return response.data;
}
}
+17
View File
@@ -0,0 +1,17 @@
export enum HttpStatusCode {
OK = 200,
Created = 201,
Accepted = 202,
NoContent = 204,
BadRequest = 400,
Unauthorized = 401,
Forbidden = 403,
NotFound = 404,
MethodNotAllowed = 405,
Conflict = 409,
InternalServerError = 500,
NotImplemented = 501,
BadGateway = 502,
ServiceUnavailable = 503,
GatewayTimeout = 504,
}
+109
View File
@@ -0,0 +1,109 @@
import { HttpStatusCode } from '../src/enums/HttpStatusCode';
import { expect } from 'chai';
describe('HttpStatusCode', () => {
describe('OK', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.OK;
expect(result).to.equal(200);
});
});
describe('Created', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.Created;
expect(result).to.equal(201);
});
});
describe('Accepted', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.Accepted;
expect(result).to.equal(202);
});
});
describe('NoContent', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.NoContent;
expect(result).to.equal(204);
});
});
describe('BadRequest', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.BadRequest;
expect(result).to.equal(400);
});
});
describe('Unauthorized', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.Unauthorized;
expect(result).to.equal(401);
});
});
describe('Forbidden', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.Forbidden;
expect(result).to.equal(403);
});
});
describe('NotFound', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.NotFound;
expect(result).to.equal(404);
});
});
describe('MethodNotAllowed', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.MethodNotAllowed;
expect(result).to.equal(405);
});
});
describe('Conflict', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.Conflict;
expect(result).to.equal(409);
});
});
describe('InternalServerError', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.InternalServerError;
expect(result).to.equal(500);
});
});
describe('NotImplemented', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.NotImplemented;
expect(result).to.equal(501);
});
});
describe('BadGateway', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.BadGateway;
expect(result).to.equal(502);
});
});
describe('ServiceUnavailable', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.ServiceUnavailable;
expect(result).to.equal(503);
});
});
describe('GatewayTimeout', () => {
it('should return the correct value', () => {
const result = HttpStatusCode.GatewayTimeout;
expect(result).to.equal(504);
});
});
});