//native
const graph = "https://graph.microsoft.com/v1.0"
export type DynSelect_site_id = string
export async function site_id(auth: RT.MsSharepoint) {
const response = await fetch(
`${graph}/sites?search=*&$select=id,displayName,webUrl&$top=200`,
{
headers: {
Authorization: `Bearer ${auth.token}`,
Accept: "application/json",
},
}
)
if (!response.ok) {
throw new Error(`${response.status} ${await response.text()}`)
}
const { value } = (await response.json()) as {
value: { id: string; displayName: string; webUrl: string }[]
}
return value.map((s) => ({
value: s.id,
label: `${s.displayName} (${s.webUrl})`,
}))
}
/**
* List Document Libraries
* List a site's document libraries (drives). Use a library's `id` as `drive_id` in the file scripts; without it they act on the site's default library. Requires Sites.Read.All (covered by the default Sites.ReadWrite.All).
*/
export async function main(auth: RT.MsSharepoint, site_id: DynSelect_site_id) {
const response = await fetch(`${graph}/sites/${site_id}/drives`, {
headers: {
Authorization: `Bearer ${auth.token}`,
Accept: "application/json",
},
})
if (!response.ok) {
throw new Error(`${response.status} ${await response.text()}`)
}
return await response.json()
}
Submitted by hugo989 5 hours ago