/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.sa.model.dao;
import java.net.URI;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.emc.storageos.db.client.model.uimodels.ApprovalRequest;
import com.emc.storageos.db.client.model.uimodels.ApprovalStatus;
import com.emc.sa.model.util.TenantUtils;
import com.emc.storageos.db.client.constraint.NamedElementQueryResultList.NamedElement;
import com.google.common.collect.Lists;
public class ApprovalRequestFinder extends TenantModelFinder<ApprovalRequest> {
public ApprovalRequestFinder(DBClientWrapper client) {
super(ApprovalRequest.class, client);
}
public List<ApprovalRequest> findByOrderId(URI orderId) {
if (orderId == null) {
return Lists.newArrayList();
}
List<NamedElement> approvalRequestIds = client.findBy(ApprovalRequest.class, ApprovalRequest.ORDER_ID, orderId);
return findByIds(toURIs(approvalRequestIds));
}
public List<ApprovalRequest> findByApprovalStatus(String tenant, ApprovalStatus approvalStatus) {
if (StringUtils.isBlank(tenant)) {
return Lists.newArrayList();
}
List<NamedElement> ids = client.findByAlternateId(ApprovalRequest.class, ApprovalRequest.APPROVAL_STATUS,
approvalStatus.name());
List<ApprovalRequest> approvalRequests = findByIds(toURIs(ids));
return TenantUtils.filter(approvalRequests, tenant);
}
}