126 lines
3.4 KiB
TypeScript
126 lines
3.4 KiB
TypeScript
import db from "../../db"
|
||
import { LarkServer } from "../../types"
|
||
import netTool from "../netTool"
|
||
|
||
/**
|
||
* 发送网络请求并返回一个解析为响应数据的Promise。
|
||
* @param url - 要发送请求的URL。
|
||
* @param method - 请求使用的HTTP方法。
|
||
* @param queryParams - 要包含在URL中的查询参数。
|
||
* @param payload - 请求的有效负载数据。
|
||
* @param additionalHeaders - 要包含在请求中的附加头。
|
||
* @param appName - 应用名称,用于获取授权令牌。
|
||
* @returns 一个解析为响应数据的Promise。
|
||
* @throws 如果网络响应不成功或存在解析错误,则抛出错误。
|
||
*/
|
||
const larkNetTool = async <T = LarkServer.BaseRes>({
|
||
url,
|
||
method,
|
||
queryParams,
|
||
payload,
|
||
additionalHeaders,
|
||
appName = "egg",
|
||
}: {
|
||
url: string
|
||
method: string
|
||
queryParams?: any
|
||
payload?: any
|
||
additionalHeaders?: any
|
||
appName?: string
|
||
}): Promise<T> => {
|
||
const headersWithAuth = {
|
||
Authorization: `Bearer ${await db.tenantAccessToken.get(appName)}`,
|
||
...additionalHeaders,
|
||
}
|
||
return netTool<T>({
|
||
url,
|
||
method,
|
||
queryParams,
|
||
payload,
|
||
additionalHeaders: headersWithAuth,
|
||
}).catch((error) => {
|
||
console.error("larkNetTool catch error: ", error)
|
||
return {
|
||
code: 1,
|
||
data: null,
|
||
msg: error.message || "网络请求异常",
|
||
} as T
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 发送GET请求并返回一个解析为响应数据的Promise。
|
||
*
|
||
* @param appName - 应用名称,用于获取授权令牌。
|
||
* @returns 一个函数,该函数接受URL、查询参数和附加头,并返回一个解析为响应数据的Promise。
|
||
*/
|
||
larkNetTool.get =
|
||
(appName?: string) =>
|
||
<T = LarkServer.BaseRes>(
|
||
url: string,
|
||
queryParams?: any,
|
||
additionalHeaders?: any
|
||
): Promise<T> =>
|
||
larkNetTool({
|
||
url,
|
||
method: "get",
|
||
queryParams,
|
||
additionalHeaders,
|
||
appName,
|
||
})
|
||
|
||
/**
|
||
* 发送POST请求并返回一个解析为响应数据的Promise。
|
||
*
|
||
* @param appName - 应用名称,用于获取授权令牌。
|
||
* @returns 一个函数,该函数接受URL、有效负载、查询参数和附加头,并返回一个解析为响应数据的Promise。
|
||
*/
|
||
larkNetTool.post =
|
||
(appName?: string) =>
|
||
<T = LarkServer.BaseRes>(
|
||
url: string,
|
||
payload?: any,
|
||
queryParams?: any,
|
||
additionalHeaders?: any
|
||
): Promise<T> =>
|
||
larkNetTool({
|
||
url,
|
||
method: "post",
|
||
payload,
|
||
queryParams,
|
||
additionalHeaders,
|
||
appName,
|
||
})
|
||
|
||
/**
|
||
* 发送DELETE请求并返回一个解析为响应数据的Promise。
|
||
*
|
||
* @param appName - 应用名称,用于获取授权令牌。
|
||
* @returns 一个函数,该函数接受URL、有效负载和附加头,并返回一个解析为响应数据的Promise。
|
||
*/
|
||
larkNetTool.del =
|
||
(appName?: string) =>
|
||
<T = LarkServer.BaseRes>(
|
||
url: string,
|
||
payload: any,
|
||
additionalHeaders?: any
|
||
): Promise<T> =>
|
||
larkNetTool({ url, method: "delete", payload, additionalHeaders, appName })
|
||
|
||
/**
|
||
* 发送PATCH请求并返回一个解析为响应数据的Promise。
|
||
*
|
||
* @param appName - 应用名称,用于获取授权令牌。
|
||
* @returns 一个函数,该函数接受URL、有效负载和附加头,并返回一个解析为响应数据的Promise。
|
||
*/
|
||
larkNetTool.patch =
|
||
(appName?: string) =>
|
||
<T = LarkServer.BaseRes>(
|
||
url: string,
|
||
payload: any,
|
||
additionalHeaders?: any
|
||
): Promise<T> =>
|
||
larkNetTool({ url, method: "patch", payload, additionalHeaders, appName })
|
||
|
||
export default larkNetTool
|