zhaoyingbo b992ee0b21
Some checks failed
Egg Server MIflow / build-image (push) Failing after 5m7s
feat(group-agent): 新增支持群组问答
2024-09-25 09:14:10 +00:00

102 lines
2.9 KiB
TypeScript

import { LarkServer } from "../../types/larkServer"
import LarkBaseService from "./base"
class LarkSheetService extends LarkBaseService {
/**
* 向电子表格中插入行。
* @param sheetToken 表格令牌。
* @param range 插入数据的范围。
* @param values 要插入的值。
* @returns 返回一个包含响应数据的Promise。
*/
async insertRows(sheetToken: string, range: string, values: string[][]) {
const path = `/sheets/v2/spreadsheets/${sheetToken}/values_append?insertDataOption=INSERT_ROWS`
return this.post<LarkServer.BaseRes>(path, {
valueRange: {
range,
values,
},
})
}
/**
* 获取指定范围内的电子表格数据。
* @param sheetToken 表格令牌。
* @param range 要获取数据的范围。
* @returns 返回一个包含响应数据的Promise。
*/
async getRange(sheetToken: string, range: string) {
const path = `/sheets/v2/spreadsheets/${sheetToken}/values/${range}?valueRenderOption=ToString`
return this.get<LarkServer.SpreadsheetRes>(path)
}
/**
* 获取指定表格的所有数据表(多维表格专用)
* @param appToken 表格令牌。
* @returns 返回一个包含响应数据的Promise。
*/
async getTables(appToken: string) {
const path = `/bitable/v1/apps/${appToken}/tables`
const tableList = [] as LarkServer.TableData[]
let hasMore = true
let pageToken = ""
while (hasMore) {
const { data, code } = await this.get<
LarkServer.BaseListRes<LarkServer.TableData>
>(path, {
page_size: 100,
page_token: pageToken,
})
if (code !== 0) break
tableList.push(...data.items)
hasMore = data.has_more
pageToken = data.page_token
}
return {
code: 0,
data: tableList,
message: "ok",
}
}
/**
* 获取指定数据表的所有视图(多维表格专用)
* @param appToken 表格令牌。
* @param tableId 表格ID。
* @returns 返回一个包含响应数据的Promise。
*/
async getViews(appToken: string, tableId: string) {
const path = `/bitable/v1/apps/${appToken}/tables/${tableId}/views`
let has_more = true
const res = [] as LarkServer.ViewData[]
while (has_more) {
const { data, code } = await this.get<
LarkServer.BaseListRes<LarkServer.ViewData>
>(path, {
page_size: 100,
})
if (code !== 0) break
res.push(...data.items)
has_more = data.has_more
}
return {
code: 0,
data: res,
message: "ok",
}
}
/**
* 获取指定数据表的记录。(多维表格专用)
* @param appToken 表格令牌。
* @param tableId 表格ID。
* @returns 返回一个包含响应数据的Promise。
*/
async getRecords(appToken: string, tableId: string) {
const path = `/bitable/v1/apps/${appToken}/tables/${tableId}/records`
return this.get<LarkServer.BaseRes>(path)
}
}
export default LarkSheetService