use of io.apiman.manager.api.rest.exceptions.PlanNotFoundException in project apiman by apiman.
the class OrganizationResourceImpl method createContract.
/**
* @see IOrganizationResource#createContract(java.lang.String, java.lang.String, java.lang.String, io.apiman.manager.api.beans.contracts.NewContractBean)
*/
@Override
public ContractBean createContract(String organizationId, String clientId, String version, NewContractBean bean) throws OrganizationNotFoundException, ClientNotFoundException, ApiNotFoundException, PlanNotFoundException, ContractAlreadyExistsException, NotAuthorizedException {
securityContext.checkPermissions(PermissionType.clientEdit, organizationId);
try {
storage.beginTx();
ContractBean contract = createContractInternal(organizationId, clientId, version, bean);
storage.commitTx();
// $NON-NLS-1$
log.debug(String.format("Created new contract %s: %s", contract.getId(), contract));
return contract;
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
// reduce overhead on the typical happy path.
if (contractAlreadyExists(organizationId, clientId, version, bean)) {
throw ExceptionFactory.contractAlreadyExistsException();
} else {
throw new SystemErrorException(e);
}
}
}
use of io.apiman.manager.api.rest.exceptions.PlanNotFoundException in project apiman by apiman.
the class PlanService method createPlanVersion.
public PlanVersionBean createPlanVersion(String organizationId, String planId, NewPlanVersionBean bean) throws PlanNotFoundException, NotAuthorizedException, InvalidVersionException, PlanVersionAlreadyExistsException {
FieldValidator.validateVersion(bean.getVersion());
PlanVersionBean newVersion = tryAction(() -> {
PlanBean plan = storage.getPlan(organizationId, planId);
if (plan == null) {
throw ExceptionFactory.planNotFoundException(planId);
}
if (storage.getPlanVersion(organizationId, planId, bean.getVersion()) != null) {
throw ExceptionFactory.planVersionAlreadyExistsException(planId, bean.getVersion());
}
return createPlanVersionInternal(bean, plan);
});
if (bean.isClone() && bean.getCloneVersion() != null) {
try {
List<PolicySummaryBean> policies = listPlanPolicies(organizationId, planId, bean.getCloneVersion());
for (PolicySummaryBean policySummary : policies) {
PolicyBean policy = getPlanPolicy(organizationId, planId, bean.getCloneVersion(), policySummary.getId());
NewPolicyBean npb = new NewPolicyBean();
npb.setDefinitionId(policy.getDefinition().getId());
npb.setConfiguration(policy.getConfiguration());
createPlanPolicy(organizationId, planId, newVersion.getVersion(), npb);
}
} catch (Exception e) {
// TODO it's ok if the clone fails - we did our best
}
}
// $NON-NLS-1$
LOGGER.debug(String.format("Created plan %s version: %s", planId, newVersion));
return newVersion;
}
use of io.apiman.manager.api.rest.exceptions.PlanNotFoundException in project apiman by apiman.
the class OrganizationResourceImpl method updatePlan.
/**
* @see IOrganizationResource#updatePlan(java.lang.String,
* java.lang.String, io.apiman.manager.api.beans.plans.UpdatePlanBean)
*/
@Override
public void updatePlan(String organizationId, String planId, UpdatePlanBean bean) throws PlanNotFoundException, NotAuthorizedException {
securityContext.checkPermissions(PermissionType.planEdit, organizationId);
EntityUpdatedData auditData = new EntityUpdatedData();
try {
storage.beginTx();
PlanBean planForUpdate = storage.getPlan(organizationId, planId);
if (planForUpdate == null) {
throw ExceptionFactory.planNotFoundException(planId);
}
if (AuditUtils.valueChanged(planForUpdate.getDescription(), bean.getDescription())) {
// $NON-NLS-1$
auditData.addChange("description", planForUpdate.getDescription(), bean.getDescription());
planForUpdate.setDescription(bean.getDescription());
}
storage.updatePlan(planForUpdate);
storage.createAuditEntry(AuditUtils.planUpdated(planForUpdate, auditData, securityContext));
storage.commitTx();
// $NON-NLS-1$
log.debug(String.format("Updated plan: %s", planForUpdate));
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
throw new SystemErrorException(e);
}
}
use of io.apiman.manager.api.rest.exceptions.PlanNotFoundException in project apiman by apiman.
the class OrganizationResourceImpl method getPlan.
/**
* @see IOrganizationResource#getPlan(java.lang.String, java.lang.String)
*/
@Override
public PlanBean getPlan(String organizationId, String planId) throws PlanNotFoundException, NotAuthorizedException {
securityContext.checkPermissions(PermissionType.planView, organizationId);
try {
storage.beginTx();
PlanBean bean = storage.getPlan(organizationId, planId);
if (bean == null) {
throw ExceptionFactory.planNotFoundException(planId);
}
storage.commitTx();
// $NON-NLS-1$
log.debug(String.format("Got plan: %s", bean));
return bean;
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
throw new SystemErrorException(e);
}
}
use of io.apiman.manager.api.rest.exceptions.PlanNotFoundException in project apiman by apiman.
the class OrganizationResourceImpl method createPlanVersion.
/**
* @see IOrganizationResource#createPlanVersion(java.lang.String,
* java.lang.String, io.apiman.manager.api.beans.plans.NewPlanVersionBean)
*/
@Override
public PlanVersionBean createPlanVersion(String organizationId, String planId, NewPlanVersionBean bean) throws PlanNotFoundException, NotAuthorizedException, InvalidVersionException, PlanVersionAlreadyExistsException {
securityContext.checkPermissions(PermissionType.planEdit, organizationId);
FieldValidator.validateVersion(bean.getVersion());
PlanVersionBean newVersion;
try {
storage.beginTx();
PlanBean plan = storage.getPlan(organizationId, planId);
if (plan == null) {
throw ExceptionFactory.planNotFoundException(planId);
}
if (storage.getPlanVersion(organizationId, planId, bean.getVersion()) != null) {
throw ExceptionFactory.planVersionAlreadyExistsException(planId, bean.getVersion());
}
newVersion = createPlanVersionInternal(bean, plan);
storage.commitTx();
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
throw new SystemErrorException(e);
}
if (bean.isClone() && bean.getCloneVersion() != null) {
try {
List<PolicySummaryBean> policies = listPlanPolicies(organizationId, planId, bean.getCloneVersion());
for (PolicySummaryBean policySummary : policies) {
PolicyBean policy = getPlanPolicy(organizationId, planId, bean.getCloneVersion(), policySummary.getId());
NewPolicyBean npb = new NewPolicyBean();
npb.setDefinitionId(policy.getDefinition().getId());
npb.setConfiguration(policy.getConfiguration());
createPlanPolicy(organizationId, planId, newVersion.getVersion(), npb);
}
} catch (Exception e) {
// TODO it's ok if the clone fails - we did our best
}
}
// $NON-NLS-1$
log.debug(String.format("Created plan %s version: %s", planId, newVersion));
return newVersion;
}
Aggregations