net.me2day.async.processor.commcast.CommcastCreateEventNotifier.java Source code

Java tutorial

Introduction

Here is the source code for net.me2day.async.processor.commcast.CommcastCreateEventNotifier.java

Source

/*
 * Commcast.java $version 2010. 8. 26
 * Copyright 2010 NHN Corp. All rights Reserved.
 * NHN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package net.me2day.async.processor.commcast;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import net.me2day.async.dispatcher.EventProcessContext;
import net.me2day.async.dispatcher.ReprocessableException;
import net.me2day.async.event.EventCode;
import net.me2day.async.event.EventTarget;
import net.me2day.async.event.SimpleEventCode;
import net.me2day.async.me2day.UserBOProxy;
import net.me2day.async.model.App;
import net.me2day.async.model.Comment;
import net.me2day.async.model.Friend;
import net.me2day.async.model.Gift;
import net.me2day.async.model.Mention;
import net.me2day.async.model.Message;
import net.me2day.async.util.StrUtil;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class CommcastCreateEventNotifier extends AbstractCommcastProcessor {
    private static final Logger LOG = LoggerFactory.getLogger(CommcastCreateEventNotifier.class);

    private static final String MODE_SINGLE = "single";
    private static final String OPERATION_CREATE = "create";

    @Autowired
    private UserBOProxy userBo;

    @Override
    public List<? extends EventCode> getEventCodes() {
        return Arrays.asList(new SimpleEventCode(null, OPERATION_CREATE));
    }

    @Override
    public void process(EventProcessContext context) throws ReprocessableException {
        String target = context.getEvent().getEventTarget();
        String fireUserId = context.getEvent().getEventFireUserId();
        String fireNaverUserId = userBo.getNaverIdByMe2dayUserId(fireUserId);
        String toNaverUserId = "";
        String toUserId = "";
        String eventId = "";

        if (StringUtils.isEmpty(fireNaverUserId)) {
            LOG.info("[COMMCAST] fireUserId(" + fireUserId + ") have NO naverId.");
            return;
        }

        Map<String, Object> resultMap = null;

        if (StringUtils.equals(target, EventTarget.FRIEND_REQUEST.getTargetName())) {
            LOG.info("[COMMCAST] requestFriend event received =======");

            toNaverUserId = userBo.getNaverUserId(context.getEvent().getEventOption("toUserId"));

            if (StringUtils.isEmpty(toNaverUserId)) {
                LOG.info("[COMMCAST] toUserId(" + context.getEvent().getEventOption("toUserId")
                        + ") have NO naverId.");
                return;
            }

            Friend friend = new Friend(context.getEvent().getEventOption("authorName"),
                    context.getEvent().getEventOption("toUserId"), context.getEvent().getEventOperation(),
                    toNaverUserId, context.getEvent().getEventOption("content"));

            eventId = context.getEvent().getEventOption("eventId");

            resultMap = sendByPutMethod(friend, null, EventTarget.FRIEND_REQUEST.getCatId(), MODE_SINGLE, eventId);

            LOG.info(String.format("[COMMCAST] [%s]? [%s]? .", fireUserId,
                    friend.getToUserId()));
            LOG.info("[COMMCAST] ====================================");
        } else if (StringUtils.equals(target, EventTarget.GIFT.getTargetName())) {
            LOG.info("[COMMCAST] gift event received ================");

            toNaverUserId = userBo.getNaverUserId(context.getEvent().getEventOption("toUserId"));

            if (StringUtils.isEmpty(toNaverUserId)) {
                LOG.info("[COMMCAST] toUserId(" + context.getEvent().getEventOption("toUserId")
                        + ") have NO naverId.");
                return;
            }

            Gift gift = new Gift(fireUserId, context.getEvent().getEventOption("authorName"),
                    context.getEvent().getEventOption("toUserId"), context.getEvent().getEventOperation(),
                    toNaverUserId);

            eventId = context.getEvent().getEventOption("eventId");

            resultMap = sendByPutMethod(gift, null, EventTarget.GIFT.getCatId(), MODE_SINGLE, eventId);
            LOG.info(String.format("[COMMCAST] [%s]? [%s]? ? .", fireUserId,
                    gift.getToUserId()));
            LOG.info("[COMMCAST] ====================================");
        } else if (StringUtils.equals(target, EventTarget.MESSAGE.getTargetName())) {
            LOG.info("[COMMCAST] message event received =============");

            toNaverUserId = userBo.getNaverUserId(context.getEvent().getEventOption("toUserId"));

            if (StringUtils.isEmpty(toNaverUserId)) {
                LOG.info("[COMMCAST] toUserId(" + context.getEvent().getEventOption("toUserId")
                        + ") have NO naverId.");
                return;
            }

            if (StringUtils.isEmpty(context.getEvent().getEventOption("authorName"))
                    || StringUtils.isEmpty(context.getEvent().getEventOption("toUserId"))) {
                LOG.info("[COMMCAST] message invalid argument");
                return;
            }

            Message message = new Message(fireUserId, context.getEvent().getEventOption("authorName"),
                    context.getEvent().getEventOption("toUserId"), context.getEvent().getEventOption("message"),
                    toNaverUserId);

            message.setToUserUserId(context.getEvent().getEventOption("toUserId"));

            eventId = context.getEvent().getEventOption("eventId");

            resultMap = sendByPutMethod(message, null, EventTarget.MESSAGE.getCatId(), MODE_SINGLE, eventId);
            LOG.info(String.format("[COMMCAST] [%s]? [%s]?  .", fireUserId,
                    message.getToUserUserId()));
            LOG.info("[COMMCAST] ====================================");
        } else if (StringUtils.equals(target, EventTarget.COMMENT.getTargetName())) {
            LOG.info("[COMMCAST] comment event received =============");

            toNaverUserId = userBo.getNaverUserId(context.getEvent().getEventOption("bodyAuthorUserId"));

            if (StringUtils.isEmpty(toNaverUserId)) {
                LOG.info("[COMMCAST] toUserId(" + context.getEvent().getEventOption("bodyAuthorUserId")
                        + ") have NO naverId.");
                return;
            }

            Comment comment = new Comment(context.getEvent().getEventOption("postContent"),
                    Integer.parseInt(context.getEvent().getEventOption("commentsCount")),
                    context.getEvent().getEventOption("authorName"),
                    context.getEvent().getEventOption("commentBody"),
                    context.getEvent().getEventOption("commentBodyWithoutHtml"), toNaverUserId,
                    Integer.parseInt(context.getEvent().getEventOption("postId")), fireUserId,
                    context.getEvent().getEventOption("registered"));

            eventId = StrUtil
                    .encodedPostIdForComment(Integer.parseInt(context.getEvent().getEventOption("postId")));

            resultMap = sendByPutMethod(comment, null, EventTarget.COMMENT.getCatId(), MODE_SINGLE, eventId);
            LOG.info(String.format("[COMMCAST] [%s]? [%s]? ? .", fireUserId,
                    comment.getBodyAuthorUserId()));
            LOG.info("[COMMCAST] ====================================");
        } else if (StringUtils.equals(target, EventTarget.FRIEND_ACCEPT.getTargetName())) {
            LOG.info("[COMMCAST] acceptFriend event received ========");

            toNaverUserId = userBo.getNaverUserId(fireUserId);

            if (StringUtils.isEmpty(toNaverUserId)) {
                LOG.info("[COMMCAST] toUserId(" + context.getEvent().getEventOption("fireUserId")
                        + ") have NO naverId.");
                return;
            }

            Friend friend = new Friend(context.getEvent().getEventOption("toUserName"),
                    context.getEvent().getEventOption("toUserId"), context.getEvent().getEventOperation(),
                    toNaverUserId, context.getEvent().getEventOption("content"));

            eventId = context.getEvent().getEventOption("eventId");

            resultMap = sendByPutMethod(friend, null, EventTarget.FRIEND_ACCEPT.getCatId(), MODE_SINGLE, eventId);

            LOG.info(String.format("[COMMCAST] [%s]? [%s]? ? ?.", fireUserId,
                    friend.getToUserId()));
            LOG.info("[COMMCAST] ====================================");
        } else if (StringUtils.equals(target, EventTarget.MENTION.getTargetName())) {
            LOG.info("[COMMCAST] mention event received =============");

            toUserId = context.getEvent().getEventOption("toUserId");
            toNaverUserId = userBo.getNaverUserId(toUserId);
            String linkDate = "";

            if (StringUtils.isEmpty(toNaverUserId)) {
                LOG.info("[COMMCAST] toUserId(" + context.getEvent().getEventOption("toUserId")
                        + ") have NO naverId.");
                return;
            }

            try {
                linkDate = CommcastUtil.getLinkDate(context.getEvent().getEventOption("registered"));
            } catch (Exception e) {
                LOG.error("[COMMCAST-mention] linkDate : " + e.getMessage());
            }

            Mention mention = new Mention(fireUserId, context.getEvent().getEventOption("title"),
                    context.getEvent().getEventOption("tag"), context.getEvent().getEventOption("authorName"),
                    toNaverUserId, context.getEvent().getEventOption("htmlTitle"),
                    context.getEvent().getEventOption("replyKey"),
                    context.getEvent().getEventOption("closeComment"),
                    StringUtils.equals(context.getEvent().getEventOption("hasPhoto"), "true") ? true : false,
                    linkDate);

            eventId = context.getEvent().getEventOption("eventId");

            resultMap = sendByPutMethod(mention, null, EventTarget.MENTION.getCatId(), MODE_SINGLE, eventId);

            LOG.info("[COMMCAST] closeComment : " + context.getEvent().getEventOption("closeComment"));
            LOG.info("[COMMCAST] isHasPhoto : " + context.getEvent().getEventOption("hasPhoto"));
            LOG.info(String.format("[COMMCAST] [%s]? [%s]? .", fireUserId, toUserId));
            LOG.info("[COMMCAST] ====================================");
        } else if (StringUtils.equals(target, EventTarget.APP.getTargetName())) {
            LOG.info("[COMMCAST] app event received =============");

            toUserId = context.getEvent().getEventOption("toUserId");
            toNaverUserId = userBo.getNaverUserId(toUserId);

            if (StringUtils.isEmpty(toNaverUserId)) {
                LOG.info("[COMMCAST] toUserId(" + context.getEvent().getEventOption("toUserId")
                        + ") have NO naverId.");
                return;
            }

            App app = new App(fireUserId, context.getEvent().getEventOption("authorName"),
                    context.getEvent().getEventOption("toUserId"), context.getEvent().getEventOption("message"),
                    toNaverUserId, context.getEvent().getEventOption("appName"),
                    context.getEvent().getEventOption("appId"), context.getEvent().getEventOption("appLinkUrl"),
                    context.getEvent().getEventOption("type"));

            eventId = context.getEvent().getEventOption("eventId");

            resultMap = sendByPutMethod(app, null, EventTarget.APP.getCatId(), MODE_SINGLE, eventId);

            LOG.info(String.format("[COMMCAST] [%s]? [%s]? [%s]  ? .",
                    fireUserId, toUserId, app.getAppName()));
            LOG.info("[COMMCAST] ====================================");
        }

        if (resultMap != null && StringUtils.equals((String) resultMap.get("result"), "1")) {
            // TODO
            // LOG.info(String.format("[COMMCAST] target name : %s, sending result : %s", target,
            // resultMap));
        }
    }
}