Edits history of script submission #15271 for ' Get content state (confluence)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //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