/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.vipr.client.catalog;
import com.emc.vipr.model.catalog.ApprovalInfo;
import com.emc.vipr.model.catalog.Reference;
import com.emc.vipr.client.ViPRCatalogClient;
import com.emc.vipr.client.impl.RestClient;
import com.emc.vipr.client.catalog.impl.PathConstants;
import com.sun.jersey.api.client.GenericType;
import javax.ws.rs.core.UriBuilder;
import java.util.List;
import static com.emc.vipr.client.catalog.impl.ApiListUtils.getApiList;
import static com.emc.vipr.client.catalog.impl.PathConstants.*;
/**
*
* @deprecated Replaced by
* @see Approvals2
*/
@Deprecated
public class Approvals extends AbstractResources<ApprovalInfo> {
public Approvals(ViPRCatalogClient parent, RestClient client) {
super(parent, client, ApprovalInfo.class, APPROVALS_URL);
}
/**
* Lists approval requests.
* <p>
* API Call: GET /api/approvals
*
* @return References to approval requests.
*/
@Deprecated
public List<Reference> list() {
return doList();
}
/**
* Retrieves all approval requests. Convenience method to list approval requests and retrieve all.
* <p>
* API Call: GET /api/approvals
*
* @see #list()
* @see #getByRefs(java.util.Collection)
* @return All approval requests
*/
@Deprecated
public List<ApprovalInfo> getAll() {
return doGetAll();
}
/**
* Lists all pending approval requests.
* <p>
* API Call: GET /api/approvals/pending
*
* @return Pending approval request references.
*/
@Deprecated
public List<Reference> listPending() {
List<Reference> apiList = getApiList(client, new GenericType<List<Reference>>() {
}, APPROVALS_PENDING_URL);
return apiList;
}
/**
* Retrieves all pending approval requests. Convenience method to list and retrieve all pending approval requests.
* <p>
* API Call: GET /api/approvals/pending
*
* @return All pending approval requests.
*/
@Deprecated
public List<ApprovalInfo> getPending() {
return getByRefs(listPending());
}
/**
* Approves an approval request.
* <p>
* API Call: POST /api/approvals/{id}/approve
*
* @param id Approval request ID to approve.
* @param message Approval message.
* @return Approval request information.
*/
@Deprecated
public ApprovalInfo approve(String id, String message) {
UriBuilder uriBuilder = client.uriBuilder(PathConstants.APPROVE_URL);
if (message != null) {
uriBuilder.replaceQueryParam("message", message);
}
return client.postURI(ApprovalInfo.class, uriBuilder.build(id));
}
/**
* Rejects an approval request.
* <p>
* API Call: POST /api/approvals/{id}/reject
*
* @param id Approval request ID to reject.
* @param message Rejection message.
* @return Approval request information.
*/
@Deprecated
public ApprovalInfo reject(String id, String message) {
UriBuilder uriBuilder = client.uriBuilder(PathConstants.REJECT_URL);
if (message != null) {
uriBuilder.replaceQueryParam("message", message);
}
return client.postURI(ApprovalInfo.class, uriBuilder.build(id));
}
}