69 lines
1.6 KiB
TypeScript
69 lines
1.6 KiB
TypeScript
/**
|
|
* Copyright 2025 Beijing Volcano Engine Technology Co., Ltd. All Rights Reserved.
|
|
* SPDX-license-identifier: BSD-3-Clause
|
|
*/
|
|
|
|
import { Modal } from '@arco-design/web-react';
|
|
import { AIGC_PROXY_HOST } from '@/config';
|
|
|
|
type Headers = Record<string, string>;
|
|
|
|
/**
|
|
* @brief Get
|
|
* @param apiName
|
|
* @param headers
|
|
*/
|
|
export const requestGetMethod = (apiBasicParams: string, headers = {}) => {
|
|
return async (params: Record<string, any> = {}) => {
|
|
const url = `${AIGC_PROXY_HOST}${apiBasicParams}&${Object.keys(params)
|
|
.map((key) => `${key}=${params[key]}`)
|
|
.join('&')}`;
|
|
const res = await fetch(url, {
|
|
headers: {
|
|
...headers,
|
|
},
|
|
});
|
|
return res;
|
|
};
|
|
};
|
|
|
|
/**
|
|
* @brief Post
|
|
* @param apiName
|
|
* @param isJson
|
|
* @param headers
|
|
*/
|
|
export const requestPostMethod = (
|
|
apiBasicParams: string,
|
|
isJson: boolean = true,
|
|
headers: Headers = {}
|
|
) => {
|
|
return async <T>(params: T) => {
|
|
const res = await fetch(`${AIGC_PROXY_HOST}${apiBasicParams}`, {
|
|
method: 'post',
|
|
headers: {
|
|
'content-type': 'application/json',
|
|
...headers,
|
|
},
|
|
body: (isJson ? JSON.stringify(params) : params) as BodyInit,
|
|
});
|
|
return res;
|
|
};
|
|
};
|
|
|
|
/**
|
|
* @brief Handler
|
|
* @param res
|
|
*/
|
|
export const resultHandler = (res: any) => {
|
|
const { Result, ResponseMetadata } = res || {};
|
|
if (Result === 'ok') {
|
|
return Result;
|
|
}
|
|
const error = ResponseMetadata?.Error?.Message || Result;
|
|
Modal.error({
|
|
title: '接口调用错误',
|
|
content: `[${ResponseMetadata?.Action}]Failed(Reason: ${error})`,
|
|
});
|
|
};
|