Create an approval link with the approve_links app
One script reply has been approved by the moderators Verified
Created by marcel klehr12 551 days ago Picked 2 times
Submitted by nextcloud Bun
Verified 21 days ago
1
import createClient, { type Middleware } from "openapi-fetch";
2

3
export async function main(
4
  nextcloud: RT.Nextcloud,
5
  approveCallbackUri: string,
6
  rejectCallbackUri: string,
7
  description: string,
8
) {
9

10
  const client = createClient<paths>({ baseUrl: nextcloud.baseUrl });
11
  const authMiddleware: Middleware = {
12
    async onRequest({ request, options }) {
13
      // fetch token, if it doesn’t exist
14
      // add Authorization header to every request
15
      request.headers.set("Authorization", `Basic ${btoa((nextcloud.userId) + ':' + nextcloud.token)}`);
16
      return request;
17
    },
18
  };
19
  client.use(authMiddleware);
20

21
  const data = {
22
    approveCallbackUri,
23
    rejectCallbackUri,
24
    description,
25
  }
26

27
  try {
28
    const resp = await await client.POST("/ocs/v2.php/apps/approve_links/api/v1/link", {
29
      params: {
30
        header: {
31
          "OCS-APIRequest": true,
32
        },
33
        query: {
34
          format: "json",
35
        },
36

37
      },
38
      body: data,
39
    });
40
    console.debug('RESPONSE', resp.data)
41
    return {
42
      link: resp.data.ocs.data.link,
43
    }
44
  } catch (e) {
45
    console.debug('error', e)
46
  }
47

48

49
  return {}
50

51
}
Other submissions