use of io.apiman.manager.api.beans.audit.data.EntityUpdatedData in project apiman by apiman.
the class OrganizationResourceImpl method update.
/**
* @see IOrganizationResource#update(java.lang.String, io.apiman.manager.api.beans.orgs.UpdateOrganizationBean)
*/
@Override
public void update(String organizationId, UpdateOrganizationBean bean) throws OrganizationNotFoundException, NotAuthorizedException {
securityContext.checkPermissions(PermissionType.orgEdit, organizationId);
try {
storage.beginTx();
OrganizationBean orgForUpdate = getOrganizationFromStorage(organizationId);
EntityUpdatedData auditData = new EntityUpdatedData();
if (AuditUtils.valueChanged(orgForUpdate.getDescription(), bean.getDescription())) {
// $NON-NLS-1$
auditData.addChange("description", orgForUpdate.getDescription(), bean.getDescription());
orgForUpdate.setDescription(bean.getDescription());
}
storage.updateOrganization(orgForUpdate);
storage.createAuditEntry(AuditUtils.organizationUpdated(orgForUpdate, auditData, securityContext));
storage.commitTx();
// $NON-NLS-1$
log.debug(String.format("Updated organization %s: %s", orgForUpdate.getName(), orgForUpdate));
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
throw new SystemErrorException(e);
}
}
use of io.apiman.manager.api.beans.audit.data.EntityUpdatedData in project apiman by apiman.
the class OrganizationService method updateOrg.
public void updateOrg(String organizationId, UpdateOrganizationBean bean) throws OrganizationNotFoundException, NotAuthorizedException {
OrganizationBean orgForUpdate = tryAction(() -> getOrganizationFromStorage(organizationId));
EntityUpdatedData auditData = new EntityUpdatedData();
if (AuditUtils.valueChanged(orgForUpdate.getDescription(), bean.getDescription())) {
// $NON-NLS-1$
auditData.addChange("description", orgForUpdate.getDescription(), bean.getDescription());
orgForUpdate.setDescription(bean.getDescription());
}
tryAction(() -> {
storage.updateOrganization(orgForUpdate);
storage.createAuditEntry(AuditUtils.organizationUpdated(orgForUpdate, auditData, securityContext));
});
// $NON-NLS-1$
LOGGER.debug(String.format("Updated organization %s: %s", orgForUpdate.getName(), orgForUpdate));
}
use of io.apiman.manager.api.beans.audit.data.EntityUpdatedData in project apiman by apiman.
the class PlanService method updatePlan.
public void updatePlan(String organizationId, String planId, UpdatePlanBean bean) throws PlanNotFoundException, NotAuthorizedException {
EntityUpdatedData auditData = new EntityUpdatedData();
tryAction(() -> {
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));
// $NON-NLS-1$
LOGGER.debug(String.format("Updated plan: %s", planForUpdate));
});
}
use of io.apiman.manager.api.beans.audit.data.EntityUpdatedData in project apiman by apiman.
the class ApiService method updateApi.
public void updateApi(String organizationId, String apiId, UpdateApiBean bean) throws ApiNotFoundException, NotAuthorizedException {
tryAction(() -> {
ApiBean apiForUpdate = getApiFromStorage(organizationId, apiId);
EntityUpdatedData auditData = new EntityUpdatedData();
if (AuditUtils.valueChanged(apiForUpdate.getDescription(), bean.getDescription())) {
// $NON-NLS-1$
auditData.addChange("description", apiForUpdate.getDescription(), bean.getDescription());
apiForUpdate.setDescription(bean.getDescription());
}
if (AuditUtils.valueChanged(apiForUpdate.getImage(), bean.getImage())) {
auditData.addChange("image", apiForUpdate.getImage(), bean.getImage());
// Remove old image
if (apiForUpdate.getImage() != null) {
blobStore.remove(apiForUpdate.getImage());
}
// Attach to new image
apiForUpdate.setImage(bean.getImage());
if (bean.getImage() != null) {
blobStore.attachToBlob(bean.getImage());
}
}
if (AuditUtils.valueChanged(tagMapper.toDto(apiForUpdate.getTags()), bean.getTags())) {
// TODO(msavy): add audit entry.
// auditData.addChange("tags", apiForUpdate.getTags(), bean.getTags());
apiForUpdate.setTags(tagMapper.toEntity(bean.getTags()));
}
storage.updateApi(apiForUpdate);
storage.createAuditEntry(AuditUtils.apiUpdated(apiForUpdate, auditData, securityContext));
});
}
use of io.apiman.manager.api.beans.audit.data.EntityUpdatedData in project apiman by apiman.
the class ApiService method deleteApiImage.
public void deleteApiImage(String organizationId, String apiId) throws OrganizationNotFoundException, ApiVersionNotFoundException, NotAuthorizedException {
tryAction(() -> {
ApiBean apiForUpdate = getApiFromStorage(organizationId, apiId);
EntityUpdatedData auditData = new EntityUpdatedData();
if (apiForUpdate.getImage() != null) {
blobStore.remove(apiForUpdate.getImage());
apiForUpdate.setImage(null);
auditData.addChange("image", apiForUpdate.getImage(), null);
}
storage.updateApi(apiForUpdate);
storage.createAuditEntry(AuditUtils.apiUpdated(apiForUpdate, auditData, securityContext));
});
}
Aggregations