@tcatche/swagger-ts
Version:
Codegen from swagger to TS & Axios Functions
198 lines (171 loc) • 6.54 kB
text/typescript
/* eslint-disable */
import axios, { AxiosInstance, AxiosResponse } from 'axios'
import qs from 'qs'
export interface ObjectType {
[key: string]: any;
}
export interface Config {
$domain?: string;
$config?: any;
}
export interface Parameters {
[key: string]: any;
}
let domain = ''
let axiosInstance = axios.create()
export function getDomain(): string {
return domain
}
export function setDomain($domain: string): void {
domain = $domain
}
export function getAxiosInstance(): AxiosInstance {
return axiosInstance
}
export function setAxiosInstance($axiosInstance: AxiosInstance): void {
axiosInstance = $axiosInstance
}
type RequestMethod = 'get' | 'post' | 'put' | 'delete' | 'head' | 'option' | 'patch'
export function request(method: RequestMethod, url: string, body?: ObjectType, config: ObjectType = {}) {
let queryUrl = url
if (method === 'delete') {
return axiosInstance[method](queryUrl,{...config, data: body || {} })
} else if (method === 'get') {
let params = body ? qs.stringify(body) : ''
if (params) {
if (queryUrl.indexOf('?') < 0) {
params = '?' + params
} else if (!queryUrl.endsWith('?')) {
params = '&' + params
}
}
return axiosInstance[method](queryUrl + params, config)
} else if(method === 'post' || method === 'put' || method === 'patch'){
return axiosInstance[method](queryUrl, body, config)
} else if (method === 'head' || method === 'option') {
return axiosInstance[method](queryUrl, config)
}
}
// ExecutorRequest
export interface ExecutorRequest {
executeType: string; // 执行器类型,可选:mysql(mysql执行器),ch(clickhouse执行器),hql(hive执行器),sqoop(sqoop执行器),ssql(spark sql执行器),so(park object执行器),flink(flink执行器)
jobName: string; // 作业名称
param: string; // 执行参数(k=v,多个时用逗号分隔),必须包含d=xx(日期)
projectCode: string; // 项目编号
}
// InitSysRequest
export interface InitSysRequest {
jobName: string; // 作业名称
param: string; // 执行参数(k=v,多个时用逗号分隔),必须包含d=xx(日期)
projectCode: string; // 项目编号
}
// InterfaceRequest
export interface InterfaceRequest {
executeType: string; // 执行器类型,可选:interface(接口查询执行器)
jobName: string; // 作业名称
param: string; // 执行参数(k=v,多个时用逗号分隔),必须包含d=xx(日期)
projectCode: string; // 项目编号
}
// 公共响应对象
export interface 公共响应对象 {
data?: ObjectType; // 业务数据
errorCode?: string; // 错误码
errorMsg?: string; // 错误信息
status?: boolean; // 响应状态
}
export interface InterfaceServiceexecuteParameters {
request: ExecutorRequest; // request
}
/**
* @name: InterfaceServiceexecute
* @date: 2022/1/21
* @description: 脚本执行器
* @param: {request} [ExecutorRequest]
* @return: Promise<AxiosResponse<公共响应对象>>
*/
export function InterfaceServiceexecute(parameters: Config & InterfaceServiceexecuteParameters): Promise<AxiosResponse<公共响应对象>> {
const { $config, $domain, ...body} = parameters
const host = $domain ? $domain : getDomain()
let path = '/admin/api/v1/BDCommon/service/executor'
return request('post', host + path, body, $config)
}
export interface InterfaceServiceinitSysJobParameters {
request: InitSysRequest; // request
}
/**
* @name: InterfaceServiceinitSysJob
* @date: 2022/1/21
* @description: 初始化系统job数据,创建系统表
* @param: {request} [InitSysRequest]
* @return: Promise<AxiosResponse<公共响应对象>>
*/
export function InterfaceServiceinitSysJob(parameters: Config & InterfaceServiceinitSysJobParameters): Promise<AxiosResponse<公共响应对象>> {
const { $config, $domain, ...body} = parameters
const host = $domain ? $domain : getDomain()
let path = '/admin/api/v1/BDCommon/service/initSysJob'
return request('post', host + path, body, $config)
}
export interface InterfaceServicequeryParameters {
request: InterfaceRequest; // request
}
/**
* @name: InterfaceServicequery
* @date: 2022/1/21
* @description: 接口查询
* @param: {request} [InterfaceRequest]
* @return: Promise<AxiosResponse<公共响应对象>>
*/
export function InterfaceServicequery(parameters: Config & InterfaceServicequeryParameters): Promise<AxiosResponse<公共响应对象>> {
const { $config, $domain, ...body} = parameters
const host = $domain ? $domain : getDomain()
let path = '/admin/api/v1/BDCommon/service/interface'
return request('post', host + path, body, $config)
}
export interface ExecutorServiceexecuteParameters {
request: ExecutorRequest; // request
}
/**
* @name: ExecutorServiceexecute
* @date: 2022/1/21
* @description: 脚本执行器
* @param: {request} [ExecutorRequest]
* @return: Promise<AxiosResponse<公共响应对象>>
*/
export function ExecutorServiceexecute(parameters: Config & ExecutorServiceexecuteParameters): Promise<AxiosResponse<公共响应对象>> {
const { $config, $domain, ...body} = parameters
const host = $domain ? $domain : getDomain()
let path = '/internal/api/v1/BDCommon/service/executor'
return request('post', host + path, body, $config)
}
export interface ExecutorServiceinitSysJobParameters {
request: InitSysRequest; // request
}
/**
* @name: ExecutorServiceinitSysJob
* @date: 2022/1/21
* @description: 初始化系统job数据,创建系统表
* @param: {request} [InitSysRequest]
* @return: Promise<AxiosResponse<公共响应对象>>
*/
export function ExecutorServiceinitSysJob(parameters: Config & ExecutorServiceinitSysJobParameters): Promise<AxiosResponse<公共响应对象>> {
const { $config, $domain, ...body} = parameters
const host = $domain ? $domain : getDomain()
let path = '/internal/api/v1/BDCommon/service/initSysJob'
return request('post', host + path, body, $config)
}
export interface ExecutorServicequeryParameters {
request: InterfaceRequest; // request
}
/**
* @name: ExecutorServicequery
* @date: 2022/1/21
* @description: 接口查询
* @param: {request} [InterfaceRequest]
* @return: Promise<AxiosResponse<公共响应对象>>
*/
export function ExecutorServicequery(parameters: Config & ExecutorServicequeryParameters): Promise<AxiosResponse<公共响应对象>> {
const { $config, $domain, ...body} = parameters
const host = $domain ? $domain : getDomain()
let path = '/internal/api/v1/BDCommon/service/interface'
return request('post', host + path, body, $config)
}