Reorder custom field options (context)
One script reply has been approved by the moderators Verified

Changes the order of custom field options or cascading options in a context.

This operation works for custom field options created in Jira or the operations from this resource. To work with issue field select list options created for Connect apps use the Issue custom field options (apps) operations.

Permissions required: Administer Jira global permission.

Created by hugo697 879 days ago
Submitted by hugo697 Typescript (fetch-only)
Verified 327 days ago
1
type Jira = {
2
  username: string;
3
  password: string;
4
  domain: string;
5
};
6
/**
7
 * Reorder custom field options (context)
8
 * Changes the order of custom field options or cascading options in a context.
9

10
This operation works for custom field options created in Jira or the operations from this resource. **To work with issue field select list options created for Connect apps use the [Issue custom field options (apps)](#api-group-issue-custom-field-options--apps-) operations.**
11

12
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
13
 */
14
export async function main(
15
  auth: Jira,
16
  fieldId: string,
17
  contextId: string,
18
  body: {
19
    after?: string;
20
    customFieldOptionIds: string[];
21
    position?: "First" | "Last";
22
  }
23
) {
24
  const url = new URL(
25
    `https://${auth.domain}.atlassian.net/rest/api/2/field/${fieldId}/context/${contextId}/option/move`
26
  );
27

28
  const response = await fetch(url, {
29
    method: "PUT",
30
    headers: {
31
      "Content-Type": "application/json",
32
      Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
33
    },
34
    body: JSON.stringify(body),
35
  });
36
  if (!response.ok) {
37
    const text = await response.text();
38
    throw new Error(`${response.status} ${text}`);
39
  }
40
  return await response.json();
41
}
42