Skip to content

Instantly share code, notes, and snippets.

@GoodnessEzeokafor
Created March 11, 2022 08:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save GoodnessEzeokafor/16ea040956d40a27b62e077067a815da to your computer and use it in GitHub Desktop.
Save GoodnessEzeokafor/16ea040956d40a27b62e077067a815da to your computer and use it in GitHub Desktop.
Native Axios Implementation in Nest js
import { Injectable, Logger } from "@nestjs/common";
import axios from "axios";
import { IHttpServices } from "src/core/abstracts/http-services.abstract";
@Injectable()
export class AxiosService implements IHttpServices {
async get(url: string, config: Record<string, any>) {
try {
const response = await axios.get(url, config)
if (response?.data?.data) return Promise.resolve(response.data.data);
if (response?.data?.responseBody) return Promise.resolve(response.data.responseBody);
return Promise.resolve(response?.data);
} catch (error) {
if (error?.response?.data) return Promise.reject(error?.response?.data);
return Promise.reject(error);
}
}
async delete(url: string, config: Record<string, any>) {
try {
const response = await axios.delete(url, config)
if (response?.data?.data) return Promise.resolve(response.data.data);
if (response?.data?.responseBody) return Promise.resolve(response.data.responseBody);
return Promise.resolve(response?.data);
} catch (error) {
if (error?.response?.data) return Promise.reject(error?.response?.data);
return Promise.reject(error);
}
}
async post(url: string, data: Record<string, any>, config: Record<string, any>) {
try {
const response = await axios.post(url, data, config);
if (response?.data?.data) return Promise.resolve(response.data.data);
if (response?.data?.responseBody) return Promise.resolve(response.data.responseBody);
return Promise.resolve(response?.data);
} catch (error) {
if (error?.response?.data) return Promise.reject(error?.response?.data);
return Promise.reject(error);
}
}
async patch(url: string, data: Record<string, any>, config: Record<string, any>) {
try {
const response = await axios.patch(url, data, config);
if (response?.data?.data) return Promise.resolve(response.data.data);
if (response?.data?.responseBody) return Promise.resolve(response.data.responseBody);
return Promise.resolve(response?.data);
} catch (error) {
if (error?.response?.data) return Promise.reject(error?.response?.data);
return Promise.reject(error);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment