Removes a label from a piece of content.
1
//native
2
type Confluence = {
3
email: string
4
apiToken: string
5
domain: string
6
}
7
/**
8
* Remove label from content using query parameter
9
* Removes a label from a piece of content.
10
*/
11
export async function main(auth: Confluence, id: string, name: string | undefined) {
12
const url = new URL(`https://${auth.domain}/wiki/rest/api/content/${id}/label`)
13
for (const [k, v] of [['name', name]]) {
14
if (v !== undefined && v !== '' && k !== undefined) {
15
url.searchParams.append(k, v)
16
17
18
const response = await fetch(url, {
19
method: 'DELETE',
20
headers: {
21
Authorization: 'Basic ' + btoa(`${auth.email}:${auth.apiToken}`)
22
},
23
body: undefined
24
})
25
if (!response.ok) {
26
const text = await response.text()
27
throw new Error(`${response.status} ${text}`)
28
29
return await response.text()
30
31