/** * */ package org.ihtsdo.otf.refset.common; import java.nio.file.AccessDeniedException; import java.util.Map; import org.ihtsdo.otf.refset.security.User; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.util.StringUtils; /** * Utility class to support common function required at various lavel */ public class Utility { private static final DateTimeFormatter YYYY_MM_DD_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd"); /**Convert given {@link DateTime} in yyyyMMdd format * @param dt * @return */ public static String getDate(DateTime dt) { if(dt != null) { DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyyMMdd"); String date = dt.toString(fmt); return date; } return null; } /**{@link Result} container for response returned from controller * @return */ public static Result<Map<String, Object>> getResult() { Result<Map<String, Object>> result = new Result<Map<String, Object>>(); Meta m = new Meta(); result.setMeta(m); return result; } /**To convert string date to {@link DateTime} * @param fromDate * @return */ public DateTime getFromDate(String fromDate, int daysOffset) { DateTime fromDt = new DateTime().minusDays(daysOffset); if (!StringUtils.isEmpty(fromDate)) { fromDt = YYYY_MM_DD_FORMATTER.parseDateTime(fromDate); } return fromDt; } /**To convert string date to {@link DateTime} * @param toDate * @return */ public DateTime getToDate(String toDate) { DateTime toDt = new DateTime(); if (!StringUtils.isEmpty(toDate)) { toDt = YYYY_MM_DD_FORMATTER.parseDateTime(toDate); } return toDt; } /** * @return * @throws AccessDeniedException */ public static User getUserDetails() throws AccessDeniedException { Object auth = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (auth instanceof User) { User user = (User) auth; return user; } throw new AccessDeniedException("User lacks required authorization"); } }