//native
type Confluence = {
email: string
apiToken: string
domain: string
}
/**
* Get content state
* Gets the current content state of the draft or current version of content. To specify the draft version, set
the parameter status to draft, otherwise archived or current will get the relevant published state.
**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:
Permission to view the content.
*/
export async function main(
auth: Confluence,
id: string,
status: 'current' | 'draft' | 'archived' | undefined
) {
const url = new URL(`https://${auth.domain}/wiki/rest/api/content/${id}/state`)
for (const [k, v] of [['status', status]]) {
if (v !== undefined && v !== '' && k !== undefined) {
url.searchParams.append(k, v)
}
}
const response = await fetch(url, {
method: 'GET',
headers: {
Authorization: 'Basic ' + btoa(`${auth.email}:${auth.apiToken}`)
},
body: undefined
})
if (!response.ok) {
const text = await response.text()
throw new Error(`${response.status} ${text}`)
}
return await response.json()
}
Submitted by hugo697 235 days ago