Edits history of script submission #22826 for ' Get Page by ID (confluence)'

  • bunnative
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    
    /**
     * Get Page by ID
     * Retrieve a single page by its ID, optionally returning its body in a specific format or a previous version.
     */
    export async function main(
      auth: RT.Confluence,
      page_id: string,
      body_format:
        | "storage"
        | "atlas_doc_format"
        | "view"
        | "export_view"
        | "anonymous_export_view"
        | "styled_view"
        | "editor"
        | undefined,
      version: number | undefined,
      get_draft: boolean | undefined
    ) {
      const base = auth.baseUrl.replace(/\/$/, "")
      const url = new URL(`${base}/wiki/api/v2/pages/${page_id}`)
      if (body_format !== undefined)
        url.searchParams.append("body-format", body_format)
      if (version !== undefined) url.searchParams.append("version", String(version))
      if (get_draft !== undefined)
        url.searchParams.append("get-draft", String(get_draft))
    
      const response = await fetch(url, {
        method: "GET",
        headers: {
          Authorization: "Basic " + btoa(`${auth.email}:${auth.apiToken}`),
          Accept: "application/json",
        },
      })
    
      if (!response.ok) {
        throw new Error(`${response.status} ${await response.text()}`)
      }
    
      return await response.json()
    }
    

    Submitted by hugo989 4 hours ago