Skip to main content
Skip table of contents

Examples

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

Page Approvals

Get Page Approval

Get the Page Approval as an ApprovalJson and members as ApprovalMemberJson's.

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

CODE
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();
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.