| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import {DataPersisterArgs, DataProviderArgs} from "~/types/interfaces";
- import {HTTP_METHOD} from "~/types/enums";
- import {NuxtAxiosInstance} from "@nuxtjs/axios";
- import {AxiosRequestConfig} from "axios";
- class Connection{
- static connector:NuxtAxiosInstance;
- constructor() {
- }
- static initConnector(connector: NuxtAxiosInstance){
- Connection.connector = connector
- }
- async invoke(method: HTTP_METHOD, url: string, args:DataProviderArgs|DataPersisterArgs): Promise<any>{
- switch (method) {
- case HTTP_METHOD.GET:
- if(args.id)
- return await this.getItem(url, args.id)
- else
- return await this.getCollection(url)
- }
- return null
- }
- private async getItem(url: string, id: number): Promise<any>{
- const config:AxiosRequestConfig = {
- url: `${url}/${id}`,
- method: HTTP_METHOD.GET,
- }
- return await this.request(config)
- }
- private async getCollection(url: string): Promise<any>{
- const config:AxiosRequestConfig = {
- url: `${url}`,
- method: HTTP_METHOD.GET,
- }
- return await this.request(config)
- }
- private async request(config:AxiosRequestConfig){
- return await Connection.connector.$request(config)
- }
- }
- export default Connection
|