Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Optional;
- @Component
- @Qualifier(API.LOAD_IMAGE)
- public class LoadImageApi implements IApiAdapter {
- private static final String SPLIT_TOKEN_CHARACTER = "ANGEL";
- @Autowired
- private UserImageDAO userImageDAO;
- @Override
- public Respond execute(Request request, Date time) {
- final String imageId = request.getImageId();
- final String imageKind = request.getImageKind();
- if (StringUtils.isNullOrEmpty(imageId) || StringUtils.isNullOrEmpty(imageKind)) {
- return new Respond(ErrorCode.WRONG_DATA_FORMAT);
- }
- final String iasActive = request.getIasActive();
- final String token = request.getToken();
- if(iasActive == null && !checkToken(token)) {
- return new Respond(ErrorCode.INVALID_TOKEN);
- }
- String userId = request.getUserId();
- final String imageKindUpdated = imageKind.equals(Constant.IMAGE_KIND_VALUE.DEMO_IMAGE) ? Constant.IMAGE_KIND_VALUE.NEWS_BANNER : imageKind;
- final String imageIdUpdated = Optional.ofNullable(JsonUtils.parser(imageId))
- .map(json -> JsonUtils.getProperty(json, ParamKey.IMAGE_ID))
- .orElse(imageId);
- try {
- int iasInt = Integer.parseInt(iasActive);
- final boolean supportImageKind = (imageKindUpdated.equals(Constant.IMAGE_KIND_VALUE.THUMBNAIL) || imageKindUpdated.equals(Constant.IMAGE_KIND_VALUE.ORIGINAL_IMAGE));
- if(iasInt == Constant.FLAG.ON && supportImageKind) {
- if(userImageDAO.imageExist(imageIdUpdated, userId)) {
- return null;
- }
- }
- final String imageUrl = Helper.getImageUrl(imageId, imageKind);
- if (imageUrl != null) {
- if (iasInt == Constant.FLAG.ON ||
- (iasInt != Constant.FLAG.ON && !userImageDAO.deniedImageChat(imageId, userId))) {
- ByteRespond respond = new ByteRespond();
- byte[] resultImageByte = Helper.getFile(imageUrl);
- if(resultImageByte == null) {
- String imageUrlS3;
- if(Constant.IMAGE_KIND_VALUE.THUMBNAIL.equals(imageKind)) {
- imageUrlS3 = FilesAndFolders.FOLDERS.THUMBNAIL_IMAGE_FOLDER_S3 + imageUrl.replace(FilesAndFolders.FOLDERS.THUMBNAIL_IMAGE_FOLDER, "");
- } else if(Constant.IMAGE_KIND_VALUE.ORIGINAL_IMAGE.equals(imageKind)) {
- imageUrlS3 = FilesAndFolders.FOLDERS.ORIGINAL_IMAGE_FOLDER_S3 + imageUrl.replace(FilesAndFolders.FOLDERS.ORIGINAL_IMAGE_FOLDER, "");
- }
- HelperAWSS3.getInstance();
- resultImageByte = HelperAWSS3.getByteData(imageUrlS3);
- }
- if (resultImageByte == null) {
- return new EntityRespond(ErrorCode.FILE_NOT_FOUND);
- }
- respond.data = resultImageByte;
- return respond;
- } else {
- return new EntityRespond(ErrorCode.FILE_NOT_FOUND);
- }
- } else {
- return new EntityRespond(ErrorCode.FILE_NOT_FOUND);
- }
- } catch (ApplicationException ex) {
- return new ByteRespond(ex.getErrorCode());
- } catch (Exception ex) {
- Util.addErrorLog(ex);
- }
- return new ByteRespond();
- }
- public static boolean checkToken(String token) {
- TokenElement session = null;
- try {
- String[] tokenArr = token.split(Pattern.quote(SPLIT_TOKEN_CHARACTER));
- if (tokenArr[0] != null) {
- session = JWTCreator.getInstance().parseJWT(tokenArr[0]);
- }
- return session != null;
- } catch (Exception e) {
- return false;
- }
- }
- public static final class StringUtils {
- private StringUtils() {throw new UnsupportedOperationException("Not allow creating instance");}
- public static boolean isNullOrEmpty(String input) {
- return input == null || input.length() == 0 ;
- }
- }
- public static final class JsonUtils {
- private JsonUtils() {throw new UnsupportedOperationException("Not allow creating instance");}
- /**
- * @return null if can not parse source
- */
- public static JSONObject parser(String source) {
- try {
- JSONParser parser = new JSONParser();
- return (JSONObject) parser.parse(source);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * @return null if {@code property} not found
- */
- public static String getProperty(JSONObject object, String property) {
- return (String) object.get(property);
- }
- }
- public static final class JSONObject {
- }
- public static final class ParamKey {
- public static final String IMAGE_ID = "IMAGE_ID";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement