mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-14 21:43:11 +00:00
[CST-7756] added validation logic of params
This commit is contained in:
@@ -178,6 +178,22 @@ public class SubscriptionRestRepository extends DSpaceRestRepository<Subscriptio
|
|||||||
List<SubscriptionParameterRest> subscriptionParameterList = subscriptionRest.getSubscriptionParameterList();
|
List<SubscriptionParameterRest> subscriptionParameterList = subscriptionRest.getSubscriptionParameterList();
|
||||||
if (CollectionUtils.isNotEmpty(subscriptionParameterList)) {
|
if (CollectionUtils.isNotEmpty(subscriptionParameterList)) {
|
||||||
List<SubscriptionParameter> subscriptionParameters = new ArrayList<>();
|
List<SubscriptionParameter> subscriptionParameters = new ArrayList<>();
|
||||||
|
validateParameters(subscriptionRest, subscriptionParameterList, subscriptionParameters);
|
||||||
|
subscription = subscribeService.subscribe(context, ePerson, dSpaceObject, subscriptionParameters,
|
||||||
|
subscriptionRest.getSubscriptionType());
|
||||||
|
}
|
||||||
|
context.commit();
|
||||||
|
return converter.toRest(subscription, utils.obtainProjection());
|
||||||
|
} catch (SQLException sqlException) {
|
||||||
|
throw new SQLException(sqlException.getMessage(), sqlException);
|
||||||
|
} catch (IOException ioException) {
|
||||||
|
throw new UnprocessableEntityException("error parsing the body");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateParameters(SubscriptionRest subscriptionRest,
|
||||||
|
List<SubscriptionParameterRest> subscriptionParameterList,
|
||||||
|
List<SubscriptionParameter> subscriptionParameters) {
|
||||||
for (SubscriptionParameterRest subscriptionParameterRest : subscriptionParameterList) {
|
for (SubscriptionParameterRest subscriptionParameterRest : subscriptionParameterList) {
|
||||||
SubscriptionParameter subscriptionParameter = new SubscriptionParameter();
|
SubscriptionParameter subscriptionParameter = new SubscriptionParameter();
|
||||||
var name = subscriptionParameterRest.getName();
|
var name = subscriptionParameterRest.getName();
|
||||||
@@ -196,16 +212,6 @@ public class SubscriptionRestRepository extends DSpaceRestRepository<Subscriptio
|
|||||||
throw new UnprocessableEntityException("Provided subscriptionType:" + type + " is not supported!" +
|
throw new UnprocessableEntityException("Provided subscriptionType:" + type + " is not supported!" +
|
||||||
" Must be one of: " + subscriptionEmailNotificationService.getSupportedSubscriptionTypes());
|
" Must be one of: " + subscriptionEmailNotificationService.getSupportedSubscriptionTypes());
|
||||||
}
|
}
|
||||||
|
|
||||||
subscription = subscribeService.subscribe(context, ePerson, dSpaceObject, subscriptionParameters, type);
|
|
||||||
}
|
|
||||||
context.commit();
|
|
||||||
return converter.toRest(subscription, utils.obtainProjection());
|
|
||||||
} catch (SQLException sqlException) {
|
|
||||||
throw new SQLException(sqlException.getMessage(), sqlException);
|
|
||||||
} catch (IOException ioException) {
|
|
||||||
throw new UnprocessableEntityException("error parsing the body");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean nameAndValueAreSupported(String name, String value) {
|
private boolean nameAndValueAreSupported(String name, String value) {
|
||||||
@@ -238,22 +244,18 @@ public class SubscriptionRestRepository extends DSpaceRestRepository<Subscriptio
|
|||||||
if (Objects.isNull(ePerson)) {
|
if (Objects.isNull(ePerson)) {
|
||||||
throw new ResourceNotFoundException("There is not ePerson with uuid:" + epersonId);
|
throw new ResourceNotFoundException("There is not ePerson with uuid:" + epersonId);
|
||||||
}
|
}
|
||||||
|
|
||||||
DSpaceObject dSpaceObject = dspaceObjectUtil.findDSpaceObject(context, UUID.fromString(dsoId));
|
DSpaceObject dSpaceObject = dspaceObjectUtil.findDSpaceObject(context, UUID.fromString(dsoId));
|
||||||
if (Objects.isNull(dSpaceObject)) {
|
if (Objects.isNull(dSpaceObject)) {
|
||||||
throw new ResourceNotFoundException("There is not DSpaceObject with uuid:" + dsoId);
|
throw new ResourceNotFoundException("There is not DSpaceObject with uuid:" + dsoId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (id.equals(subscription.getID())) {
|
if (id.equals(subscription.getID())) {
|
||||||
List<SubscriptionParameter> subscriptionParameterList = new ArrayList<>();
|
List<SubscriptionParameter> subscriptionParameters = new ArrayList<>();
|
||||||
for (SubscriptionParameterRest subscriptionParamRest : subscriptionRest.getSubscriptionParameterList()) {
|
List<SubscriptionParameterRest> subscriptionParameterList = subscriptionRest.getSubscriptionParameterList();
|
||||||
SubscriptionParameter subscriptionParameter = new SubscriptionParameter();
|
validateParameters(subscriptionRest, subscriptionParameterList, subscriptionParameters);
|
||||||
subscriptionParameter.setSubscription(subscription);
|
|
||||||
subscriptionParameter.setValue(subscriptionParamRest.getValue());
|
|
||||||
subscriptionParameter.setName(subscriptionParamRest.getName());
|
|
||||||
subscriptionParameterList.add(subscriptionParameter);
|
|
||||||
}
|
|
||||||
subscription = subscribeService.updateSubscription(context, id, ePerson, dSpaceObject,
|
subscription = subscribeService.updateSubscription(context, id, ePerson, dSpaceObject,
|
||||||
subscriptionParameterList, subscriptionRest.getSubscriptionType());
|
subscriptionParameters, subscriptionRest.getSubscriptionType());
|
||||||
context.commit();
|
context.commit();
|
||||||
return converter.toRest(subscription, utils.obtainProjection());
|
return converter.toRest(subscription, utils.obtainProjection());
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user