2021-09-29 18:07:35 +02:00
|
|
|
import BaseModel from 'javel';
|
2021-09-29 20:29:08 +02:00
|
|
|
import {snakeCase} from 'lodash';
|
2021-09-29 18:07:35 +02:00
|
|
|
import redaxios from 'redaxios';
|
|
|
|
|
2021-09-29 20:29:50 +02:00
|
|
|
// noinspection JSUnusedGlobalSymbols
|
2021-09-29 18:07:35 +02:00
|
|
|
export default class Model extends BaseModel {
|
2021-09-29 20:29:08 +02:00
|
|
|
urlPath: string;
|
|
|
|
|
2021-09-29 20:29:50 +02:00
|
|
|
baseUrl(): string {
|
2021-09-29 18:07:35 +02:00
|
|
|
return '/api';
|
|
|
|
}
|
|
|
|
|
2021-09-29 20:29:08 +02:00
|
|
|
buildUrl({params}): Array {
|
|
|
|
return [this.urlPath ?? snakeCase(this.constructor.name), ...params];
|
|
|
|
}
|
|
|
|
|
2021-09-29 18:07:35 +02:00
|
|
|
makeRequest({
|
|
|
|
method, url, data, query
|
2021-09-29 20:29:50 +02:00
|
|
|
}: {
|
|
|
|
method: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'options' | 'head' | 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD',
|
|
|
|
url: string,
|
|
|
|
data: any,
|
|
|
|
query: {...}
|
|
|
|
}): Promise {
|
2021-09-29 18:07:35 +02:00
|
|
|
return redaxios({
|
|
|
|
method, url, data, params: query
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|