package crmdna.client.isha; import crmdna.client.Client; import crmdna.common.Utils; import crmdna.practice.Practice; import crmdna.user.User; import crmdna.user.User.ClientLevelPrivilege; import java.util.Set; import static crmdna.common.OfyService.ofy; public class IshaConfig { private static final String ISHA = "isha"; private static final String KEY = "KEY"; public static IshaConfigProp setSathsangPractices(Set<Long> practiceIds, String login) { Client.ensureValid(ISHA); User.ensureClientLevelPrivilege(ISHA, login, ClientLevelPrivilege.UPDATE_CUSTOM_CONFIG); if ((null == practiceIds) || (practiceIds.size() == 0)) Utils.throwIncorrectSpecException("practiceIds is null or empty set"); // validate all practices for (Long practiceId : practiceIds) { Practice.safeGet(ISHA, practiceId); } IshaConfigEntity entity = ofy(ISHA).load().type(IshaConfigEntity.class).id(KEY).now(); if (null == entity) { entity = new IshaConfigEntity(); entity.key = KEY; } entity.sathsangPracticesIds = practiceIds; ofy(ISHA).save().entity(entity).now(); return entity.toProp(); } public static IshaConfigProp safeGet() { Client.ensureValid(ISHA); IshaConfigEntity entity = ofy(ISHA).load().type(IshaConfigEntity.class).id(KEY).now(); if (null == entity) Utils.throwNotFoundException("CustomConfig not specified for client [" + ISHA + "]"); return entity.toProp(); } public static class IshaConfigProp { public Set<Long> sathsangPracticeIds; } }