feat: 新增header打印 & 批量获取用户信息改回get模拟
All checks were successful
Egg CI/CD / build-image (push) Successful in 32s
Egg CI/CD / deploy (push) Successful in 49s

This commit is contained in:
zhaoyingbo 2024-06-13 09:47:17 +00:00
parent 2197db3785
commit 208ea1c538
3 changed files with 68 additions and 38 deletions

View File

@ -44,47 +44,20 @@ const get = async (user_id: string, user_id_type: string, isSeek = false) => {
};
/**
*
* @param user_ids
* @returns
* 使get接口模拟批量获取用户信息
*/
const batchGet = async (
user_ids: string[],
user_id_type: "open_id" | "user_id",
isSeek = false
) => {
const URL = `https://open.f.mioffice.cn/open-apis/contact/v3/users/batch`;
const headers = isSeek
? {
Authorization: `Bearer ${await db.tenantAccessToken.getSeek()}`,
}
: {};
// 如果user_id长度超出50需要分批请求
const user_idsLen = user_ids.length;
const maxLen = 50;
const requestMap = Array.from(
{ length: Math.ceil(user_idsLen / maxLen) },
(_, index) => {
const start = index * maxLen;
const user_idsSlice = user_ids.slice(start, start + maxLen);
const getParams = `${user_idsSlice
.map((id) => `user_ids=${id}`)
.join("&")}&user_id_type=${user_id_type}`;
return larkNetTool.get<LarkServer.BatchUserInfoRes>(
URL,
getParams,
headers
);
}
);
const responses = await Promise.all(requestMap);
const items = responses.flatMap((res) => {
return res.data?.items || [];
const requestMap = user_ids.map((user_id) => {
return get(user_id, user_id_type, isSeek);
});
const responses = await Promise.all(requestMap);
const items = responses.map((res) => {
return res.data.user;
});
return {
code: 0,
data: {
@ -94,6 +67,57 @@ const batchGet = async (
};
};
// /**
// * 批量获取用户信息
// * @param user_ids
// * @returns
// */
// const batchGet = async (
// user_ids: string[],
// user_id_type: "open_id" | "user_id",
// isSeek = false
// ) => {
// const URL = `https://open.f.mioffice.cn/open-apis/contact/v3/users/batch`;
// const headers = isSeek
// ? {
// Authorization: `Bearer ${await db.tenantAccessToken.getSeek()}`,
// }
// : {};
// // 如果user_id长度超出50需要分批请求
// const user_idsLen = user_ids.length;
// const maxLen = 50;
// const requestMap = Array.from(
// { length: Math.ceil(user_idsLen / maxLen) },
// (_, index) => {
// const start = index * maxLen;
// const user_idsSlice = user_ids.slice(start, start + maxLen);
// const getParams = `${user_idsSlice
// .map((id) => `user_ids=${id}`)
// .join("&")}&user_id_type=${user_id_type}`;
// return larkNetTool.get<LarkServer.BatchUserInfoRes>(
// URL,
// getParams,
// headers
// );
// }
// );
// const responses = await Promise.all(requestMap);
// const items = responses.flatMap((res) => {
// return res.data?.items || [];
// });
// return {
// code: 0,
// data: {
// items,
// },
// msg: "success",
// };
// };
const user = {
code2Login,
batchGet,

View File

@ -12,7 +12,12 @@ interface NetGetParams {
* @param method
* @param data
*/
const logResponse = async (response: Response, method: string, data: any) => {
const logResponse = async (
response: Response,
method: string,
data: any,
headers: any
) => {
let responseData = null;
try {
responseData = await response.json();
@ -23,9 +28,10 @@ const logResponse = async (response: Response, method: string, data: any) => {
ok: response.ok,
status: response.status,
statusText: response.statusText,
headers: response.headers,
url: response.url,
method: method,
requestHeaders: headers,
responseHeaders: response.headers,
requestBody: data,
responseBody: responseData as any,
};
@ -58,7 +64,7 @@ const netTool = <T = any>({
...headers,
},
})
.then((response) => logResponse(response, method, data))
.then((response) => logResponse(response, method, data, headers))
.then((responseLog) => {
if (!responseLog.ok) {
if (responseLog?.responseBody?.msg) {

View File

@ -7,7 +7,7 @@ const res = await fetch(localUrl, {
"Content-Type": "application/json",
},
body: JSON.stringify({
user_ids: ["wangyifei", "zhaoyingbo"],
user_ids: ["zhaoyingbo", "libo12"],
user_id_type: "user_id",
}),
});