package org.xcolab.client.admin; import org.springframework.core.ParameterizedTypeReference; import org.xcolab.client.admin.exceptions.ConfigurationAttributeNotFoundException; import org.xcolab.client.admin.pojo.ConfigurationAttribute; import org.xcolab.client.admin.pojo.ContestEmailTemplate; import org.xcolab.client.admin.pojo.Notification; import org.xcolab.util.clients.CoLabService; import org.xcolab.util.http.ServiceRequestUtils; import org.xcolab.util.http.caching.CacheName; import org.xcolab.util.http.client.RestResource; import org.xcolab.util.http.client.RestResource1; import org.xcolab.util.http.client.RestService; import org.xcolab.util.http.client.types.TypeProvider; import org.xcolab.util.http.exceptions.EntityNotFoundException; import java.util.ArrayList; import java.util.Date; import java.util.List; public class AdminClient { private static final RestService adminService = new RestService(CoLabService.ADMIN, ServiceRequestUtils.getNamespace()); private static final RestResource<ConfigurationAttribute, String> configurationAttributeResource = new RestResource1<>(adminService, "attributes", ConfigurationAttribute.TYPES); //create a new resource and name that resource globalMessages private static final RestResource<Notification, String> notificationResource = new RestResource1<> ( adminService, "notifications", Notification.TYPES); public static List<Notification> getNotifications() throws EntityNotFoundException { List<Notification> temp = notificationResource.list().execute(); return temp; } public static void setNotifications(Notification notification) { notificationResource.create(notification) .execute(); return; } public static void deleteNotifications(String notificationId) { notificationResource.delete(notificationId) .execute(); return; } public static ConfigurationAttribute getConfigurationAttribute(String name) { try { return configurationAttributeResource.get(name) .withCache(CacheName.CONFIGURATION) .executeChecked(); } catch (EntityNotFoundException e) { throw new ConfigurationAttributeNotFoundException(name); } } public static ConfigurationAttribute createConfigurationAttribute( ConfigurationAttribute configurationAttribute) { return configurationAttributeResource.create(configurationAttribute).execute(); } public static boolean updateConfigurationAttribute( ConfigurationAttribute configurationAttribute) { return configurationAttributeResource.update(configurationAttribute, configurationAttribute.getName()) .cacheName(CacheName.CONFIGURATION) .execute(); } }