Auto Light Dark
Auto Light Dark

Examples

You can script Approvals for Confluence using Java or Groovy with a script-running tool.

Page Approvals

Get Page Approval

Get the Page Approval as an ApprovalJson and members as ApprovalMemberJson objects.

Get Page Approval by Page ID and Page Version

Groovy
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.onresolve.scriptrunner.runner.customisers.PluginModule;
import com.atlassian.confluence.user.AuthenticatedUserThreadLocal;
import com.atlassian.confluence.user.ConfluenceUser;
import co.uk.automationconsultants.approvals.api.ApprovalPluginComponent;
import co.uk.automationconsultants.approvals.json.ApprovalJson;
import co.uk.automationconsultants.approvals.json.ApprovalMemberJson;
 
@WithPlugin("co.uk.automationconsultants.approvals.approvals")
 
@PluginModule
ApprovalPluginComponent approvalPluginComponent;
 
// Get User
ConfluenceUser user = AuthenticatedUserThreadLocal.get()
 
// Get Page Approval for Page with ID '65547' and Version '10'
ApprovalJson approval = approvalPluginComponent.getPageApproval(user, 65547, 10);
 
if(approval != null) {
    // Does Exist, get some details
    String creatorUserKey = approval.getCreatorUsername(); // Ignore name - it's User Key
    Long pageId = approval.getPageId();
    String macroId = approval.getMacroId();
    String title = approval.getTitle();
    Boolean sendRequestNotifications = approval.isRequestNotifications();
    Boolean sendStatusNotifications = approval.isStatusNotifications();
    Boolean expireOnEdit = approval.getExpireOnEdit();
    Date expiryDate = approval.getExpiryDate();
    Integer quorumSize = approval.getQuorumSize();
    for(ApprovalMemberJson member : approval.getMembers()) {
        String userKey = member.getUserKey();
        String status = member.getStatus(); // "pending", "approved", "rejected" or "expired"
        Date date = member.getDate();
    }
    Integer version = approval.getVersion();
    String status = approval.getStatus();
    String pageTitle = approval.getPageTitle();
    Date createdDate = approval.getCreated();
    Date updatedDate = approval.getUpdated();
} else {
    // Doesn't Exist
}

Macro Approvals

Get Macro Approval

Get the Macro Approval Details and Status as an ApprovalJson with ApprovalMemberJson's contained in the 'members' property (getMembers());

Get Macro Approval by Page ID and Page Version

import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.onresolve.scriptrunner.runner.customisers.PluginModule;
import com.atlassian.confluence.user.AuthenticatedUserThreadLocal;
import com.atlassian.confluence.user.ConfluenceUser;
import co.uk.automationconsultants.approvals.api.ApprovalPluginComponent;
import co.uk.automationconsultants.approvals.json.ApprovalJson;
import co.uk.automationconsultants.approvals.json.ApprovalMemberJson;
import co.uk.automationconsultants.approvals.service.exception.*;
 
@WithPlugin("co.uk.automationconsultants.approvals.approvals")
 
@PluginModule
ApprovalPluginComponent approvalPluginComponent;
 
// Get User
ConfluenceUser user = AuthenticatedUserThreadLocal.get()
 
// Get Macro Approval for Macro with Page ID '65547', Page Version '4', UUID "afi8y-f2f2-..." and Macro ID "bfi8y-f2f2-..."
try {
    ApprovalJson approval = approvalPluginComponent.getMacroApproval(user, 65547L, "afi8y-f2f2-...", "bfi8y-f2f2-...", 4);
 
    if(approval != null) {
        // Does Exist, get some details
        String creatorUserKey = approval.getCreatorUsername(); // Ignore name - it's User Key
        Long pageId = approval.getPageId();
        String macroId = approval.getMacroId();
        String title = approval.getTitle();
        Boolean sendRequestNotifications = approval.isRequestNotifications();
        Boolean sendStatusNotifications = approval.isStatusNotifications();
        Boolean expireOnEdit = approval.getExpireOnEdit();
        Date expiryDate = approval.getExpiryDate();
        Integer quorumSize = approval.getQuorumSize();
        for(ApprovalMemberJson member : approval.getMembers()) {
            String userKey = member.getUserKey();
            String status = member.getStatus();
            Date date = member.getDate();
        }
        Integer version = approval.getVersion();
        String status = approval.getStatus();
        String pageTitle = approval.getPageTitle();
        Date createdDate = approval.getCreated();
        Date updatedDate = approval.getUpdated();
    } else {
        // Doesn't Exist
    }
} catch(NoPageException | NoSpacePermissionException | NoPagePermissionException | NoPageVersionException | NoApprovalException e) {
    // An error has occurred - see Message or Class of Exception for more information
    e.getMessage();
}