org.wso2.rnd.nosql.UIHelper.java Source code

Java tutorial

Introduction

Here is the source code for org.wso2.rnd.nosql.UIHelper.java

Source

/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License.
 */
package org.wso2.rnd.nosql;

import me.prettyprint.hector.api.exceptions.HectorPoolException;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.wso2.rnd.nosql.model.Blob;
import org.wso2.rnd.nosql.model.Record;
import org.wso2.rnd.nosql.model.User;

import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;

/**
 * EMR UI helper methods.
 */
public class UIHelper {

    public static final String USER = "username";
    public static final String ERROR_MSG = "ErrMessage";
    public static final String DATE_FORMT = "EEE MMM dd HH:mm:ss zzz yyyy";

    public static User getUser(HttpSession session) {
        return (User) session.getAttribute(USER);
    }

    /**
     * Get and clear error message
     * @param session
     * @return
     */
    public static String getAndClearErrorMsg(HttpSession session) {
        String errMsg = (String) session.getAttribute(ERROR_MSG);
        session.removeAttribute(ERROR_MSG);
        return errMsg;
    }

    /**
     * Process signing call method
     * @param session
     * @param username
     * @param config
     */
    public static void processSignIn(HttpSession session, String username, ServletConfig config) {
        String userId = username;
        boolean isUserNameEmpty = false;
        if (userId == null) {
            userId = "";
        }
        userId = userId.trim();
        if ("".equals(userId)) {
            isUserNameEmpty = true;
        }
        /* String userPassword = (String)session.getAttribute("j_password");
         boolean isPasswordEmpty = false;
         if (userPassword == null) {
        userPassword = "";
         }
         userPassword = userPassword.trim();
         if ("".equals(userPassword)) {
        isPasswordEmpty = true;
         }
         if (!isPasswordEmpty && !isUserNameEmpty) {
        ///test
            
        */
        //            //Auth with Carbon user base
        //            String backendServerURL = config.getServletContext().getInitParameter("emrServerURL");
        //            ConfigurationContext configCtx =
        //                    (ConfigurationContext) config.getServletContext().getAttribute(CarbonConstants.CONFIGURATION_CONTEXT);
        /*           boolean status = false;
        //            AuthenticationAdminClient authAdmin = null;
        //            //System.out.println(configCtx.toString());
        //            try {
        //                authAdmin =
        //                        new AuthenticationAdminClient(configCtx, backendServerURL, null, session, true);
        //            } catch (Exception e) {
        //                System.out.println("Can not get configCtx");
        //            }
        //            try {
        //                status = authAdmin.login(userId, userPassword, request.getRemoteAddr());
        //                //tobe removed. true for all users========================
            status = true;
        //            } catch (Exception e) {
        //                System.out.println("Carbon auth error");
        //            }
        */
        boolean status = true;
        EMRClient emrClient = null;
        User user = null;
        if (status) {
            try {
                emrClient = EMRClient.getInstance();
                user = emrClient.getCurrentUserInformation(userId);
                if (user == null) {
                    user = new User();
                    user.setUserID(userId);
                    user.setFullName("<Full Name>");
                    user.setEmail("<Email>");
                    user.setDateOfBirth("<DOB>");
                    user.setGender("<Gender>");
                    user.setBloodGroup("<Blood Group>");
                    user.setEthnicity("<Ethnicity>");
                    emrClient.saveUser(user);
                    session.setAttribute(USER, user);
                }

            } catch (HectorPoolException e) {
                session.setAttribute(ERROR_MSG, "Cassandra Connection Error");
                System.out.println(e.toString());
            } finally {

            }
            session.setAttribute(USER, user);
        } else {
            session.setAttribute(ERROR_MSG, "Username or Password is invalid!");
        }

        //            if (user == null) {
        //                session.setAttribute(ERROR_MSG, "Username or Password is invalid!");
        //            } else {
        //                session.setAttribute(USER, user);
        //            }
        //        }*/
        if (isUserNameEmpty) {
            session.setAttribute(ERROR_MSG, "Username is empty!");
        }
    }

    /**
     * Save user profile
     * @param request
     * @param session
     */
    public static void saveUser(HttpServletRequest request, HttpSession session) {

        User user = getUser(session);
        if (user == null) {
            user = new User();
        }
        String userId = request.getParameter("userId");
        if (userId != null) {
            user.setUserID(userId);
        }
        String password = request.getParameter("password");
        String repassword = request.getParameter("repassword");
        if (password != null) {
            user.setPassword(password);
        }
        String username = request.getParameter("fullname");
        user.setFullName(username);
        String dob = request.getParameter("dob");
        user.setDateOfBirth(dob);
        String email = request.getParameter("contactDetails");
        user.setEmail(email);
        String gender = request.getParameter("gender");
        user.setGender(gender);
        String bloodgroup = request.getParameter("bloodType");
        user.setBloodGroup(bloodgroup);
        session.setAttribute(USER, user);
        EMRClient.getInstance().saveUser(user);
    }

    /**
     * Save record
     * @param request
     * @param session
     */
    public static void saveRecord(HttpServletRequest request, HttpSession session) {

        String userId = request.getParameter("userId");
        String recordId = request.getParameter("recordId");
        String recordType = request.getParameter("recordType");
        String recordTypeData = request.getParameter("recordTypeData");
        String recordData = request.getParameter("recordData");
        String userComment = request.getParameter("userComment");
        String sickness = request.getParameter("sicknessInfo");

        if ("".equals(recordId) || recordId == null) {
            recordId = UUID.randomUUID().toString();
        }
        if ("".equals(recordType) || recordId == null) {
            recordType = "General";
        }
        if ("".equals(recordTypeData) || recordId == null) {
            recordTypeData = "Fine";
        }
        if (recordData == null) {
            recordData = "Not available";
        }
        if (userComment == null) {
            userComment = "Not available";
        }
        if (sickness == null) {
            sickness = "fever";
        }
        Calendar calendar = Calendar.getInstance();
        DateFormat dateFormat = new SimpleDateFormat(DATE_FORMT);
        Record record = new Record(recordId, dateFormat.format(calendar.getTime()), recordType);
        record.setRecordTypeData(recordTypeData);
        record.setRecordData(recordData);
        record.setUserCommnet(userComment);
        record.setSickness(sickness);
        EMRClient.getInstance().saveEmrRecord(record);
        EMRClient.getInstance().saveUserRecord(userId, recordId);
    }

    /**
     * Upload image
     * @param request
     * @param session
     * @throws FileUploadException
     */

    public static void uploadImage(HttpServletRequest request, HttpSession session) throws FileUploadException {

        if (ServletFileUpload.isMultipartContent(request)) {
            ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory());
            List fileItems = servletFileUpload.parseRequest(request);
            FileItem fileItem = null;
            String recordId = null;
            String fileComment = null;
            Iterator it = fileItems.iterator();
            while (it.hasNext()) {
                FileItem fileItemTemp = (FileItem) it.next();
                if (!fileItemTemp.isFormField()) {
                    fileItem = fileItemTemp;
                } else if ("recordId".equals(fileItemTemp.getFieldName())) {
                    recordId = fileItemTemp.getString();
                } else if ("fileComment".equals(fileItemTemp.getFieldName())) {
                    fileComment = fileItemTemp.getString();
                }
            }

            if (fileItem != null && recordId != null) {
                if (fileItem.getSize() > 0) {
                    UUID blobId = UUID.randomUUID();
                    Blob blob = new Blob();
                    blob.setBlobId(blobId);
                    blob.setComment("Scanned Emr Records");
                    blob.setFileName(fileItem.getName());
                    blob.setContentType(fileItem.getContentType());
                    blob.setFileSize(fileItem.getSize());
                    blob.setFileContent(fileItem.get());
                    blob.setTimeStamp(String.valueOf(System.currentTimeMillis()));
                    //blob.setComment(fileComment);
                    blob.setComment("Scanned Emr Records");
                    //save blob and update record
                    EMRClient.getInstance().saveEmrBlob(blob);
                    //set record blob ids
                    EMRClient.getInstance().saveBlobRecord(recordId, blobId);
                    //can not get all the columns in one row :(
                    //EMRClient.getInstance().updateRecordBlob(recordId, blobId);

                }
            }

        }
    }

    /**
     * Get latest record
     * @param recordList
     * @return
     */
    public static List<Record> getLatestRecords(List<Record> recordList) {
        Collections.sort(recordList, new RecordDateComparator());
        return recordList;
    }

    /**
     * Search user
     * @param userPattern
     * @return
     */
    public static List<User> searchUser(String userPattern) {
        //get user list
        //returen user list

        return null;
    }
}