Rev 3390 | Rev 3405 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/****/package in.shop2020.serving.controllers;import in.shop2020.crm.Activity;import in.shop2020.crm.ActivityType;import in.shop2020.crm.Agent;import in.shop2020.crm.SearchFilter;import in.shop2020.serving.auth.CRMAuthorizingRealm;import in.shop2020.thrift.clients.CRMClient;import in.shop2020.thrift.clients.HelperClient;import in.shop2020.util.CRMConstants;import in.shop2020.utils.HelperService.Client;import java.text.ParseException;import java.util.ArrayList;import java.util.Collections;import java.util.List;import org.apache.thrift.TException;/*** @author mandeep**/public class ActivityController extends BaseController {/****/private static final long serialVersionUID = 1L;private List<Activity> activities;private String activityId;private String description;private String type;private String subject;private String body;private String userEmailId;private String customerMobileNumber;private String creatorId;private String[] agentIds;private String startTimestamp;private String endTimestamp;public String index() {try {SearchFilter searchFilter = new SearchFilter();if (creatorId != null && !creatorId.isEmpty()) {searchFilter.setActivityCreatorIds(Collections.singletonList(Long.parseLong(creatorId)));searchFilter.setIsActivityRead(false);}else if (agentIds != null && agentIds.length != 0) {searchFilter.setActivityCreatorIds(new ArrayList<Long>());for (String agentId : agentIds) {searchFilter.getActivityCreatorIds().add(CRMAuthorizingRealm.getAgent(agentId).getId());}try {if (startTimestamp != null && !startTimestamp.isEmpty()) {searchFilter.setStartTimestamp(SDF.parse(startTimestamp).getTime());}if (endTimestamp != null && !endTimestamp.isEmpty()) {searchFilter.setEndTimestamp(SDF.parse(endTimestamp).getTime());}}catch (ParseException e) {log.error("Error parsing timestamps", e);}}else {searchFilter.setActivityCreatorIds(Collections.singletonList(CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId()));}crmServiceClient = new CRMClient().getClient();activities = crmServiceClient.getActivities(searchFilter);} catch (TException e) {log.error("Error while retrieving activities for "+ currentAgentEmailId, e);}return INDEX;}public String create() throws Exception {Activity activity = new Activity();activity.setDescription(description);activity.setType(ActivityType.valueOf(type));activity.setCreatorId(CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId());if (customerMobileNumber != null && !customerMobileNumber.isEmpty()) {activity.setCustomerMobileNumber(customerMobileNumber);}if (ActivityType.SEND_EMAIL_TO_CUSTOMER.equals(activity.getType())) {log.info("Sending mail");Client helperClient = new HelperClient().getClient();activity.setUserEmailId(helperClient.saveUserEmailForSending(userEmailId, CRMConstants.CRM_EMAIL_SENDOR, subject, body,null, CRMConstants.CRM_EMAIL_TYPE));activity.setDescription("Subject: " + subject + "\n\n" + "Body: "+ body);}crmServiceClient = new CRMClient().getClient();crmServiceClient.insertActivity(activity);return index();}public String markAsRead(){try {crmServiceClient = new CRMClient().getClient();crmServiceClient.markAsRead(Long.parseLong(activityId), CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId());} catch (NumberFormatException e) {log.error("Could not parse activity id from" + activityId, e);} catch (TException e) {log.error("Could not mark the activityId: " + activityId + " as read", e);}return INDEX;}public ActivityType[] getActivityTypes() {return ActivityType.values();}public Agent getAgent(long agentId) throws TException {return CRMAuthorizingRealm.getAgent(agentId);}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public String getBody() {return body;}public void setBody(String body) {this.body = body;}public String getUserEmailId() {return userEmailId;}public void setUserEmailId(String userEmailId) {this.userEmailId = userEmailId;}public String getCustomerMobileNumber() {return customerMobileNumber;}public void setCustomerMobileNumber(String customerMobileNumber) {this.customerMobileNumber = customerMobileNumber;}public List<Activity> getActivities() {return activities;}public String getCreatorId() {return creatorId;}public void setCreatorId(String creatorId) {this.creatorId = creatorId;}public String getActivityId() {return activityId;}public void setActivityId(String activityId) {this.activityId = activityId;}public String[] getAgentIds() {return agentIds;}public void setAgentIds(String[] agentIds) {this.agentIds = agentIds;}public String getStartTimestamp() {return startTimestamp;}public void setStartTimestamp(String startTimestamp) {this.startTimestamp = startTimestamp;}public String getEndTimestamp() {return endTimestamp;}public void setEndTimestamp(String endTimestamp) {this.endTimestamp = endTimestamp;}public void setActivities(List<Activity> activities) {this.activities = activities;}}