import {AssociativeArray, Connector, HTTP_METHOD} from "./data"; /** * A basic api request service * * It will send basic http requests and returns raw results */ class ApiRequestService { private connector: Connector; public constructor( connector: Connector, ) { this.connector = connector } /** * Send a GET request * * @param url * @param query */ public get( url: string, query: AssociativeArray | null = null ) { return this.request(HTTP_METHOD.GET, url, null, null, query) } /** * Send a POST request * * @param url * @param body * @param params * @param query */ public post( url: string, body: string | null = null, params: AssociativeArray | null = null, query: AssociativeArray | null = null ) { return this.request(HTTP_METHOD.POST, url, body, params, query) } /** * Send a PUT request * * @param url * @param body * @param params * @param query */ public put( url: string, body: string | null = null, params: AssociativeArray | null = null, query: AssociativeArray | null = null ) { return this.request(HTTP_METHOD.PUT, url, body, params, query) } /** * Send a DELETE request * * @param url * @param query */ public delete( url: string, query: AssociativeArray | null = null ) { return this.request(HTTP_METHOD.GET, url, null, null, query) } /** * Send an http request * * @param method * @param url * @param body * @param params * @param query * @private */ private async request( method: HTTP_METHOD, url: string, body: string | null = null, params: AssociativeArray | null = null, query: AssociativeArray | null = null ): Promise { return await this.connector.request(method, url, body, params, query) } } export default ApiRequestService