com.unilever.audit.services2.NewUser.java Source code

Java tutorial

Introduction

Here is the source code for com.unilever.audit.services2.NewUser.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.unilever.audit.services2;

import com.unilever.audit.entities.Merchandisers;
import com.unilever.audit.services.MerchandisersFacadeREST;
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TransactionRequiredException;
import javax.transaction.UserTransaction;
import javax.ws.rs.POST;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

/**
 * REST Web Service
 *
 * @author Trust
 */
@Path("NewUser")
@Stateless
public class NewUser {

    @PersistenceContext(unitName = "com.unilever_audit_war_1.0-SNAPSHOTPU")
    private EntityManager em;
    @Resource
    private UserTransaction utx;
    @Context
    private UriInfo context;
    @Inject
    private MerchandisersFacadeREST merchandisersFacadeREST;

    public NewUser() {
    }

    @POST
    @Path("AddUser")
    @Produces("application/json")
    @Consumes("text/plain")
    public String NewUser(String json) throws IOException {
        boolean status = true;
        String error = null;
        Map<String, Object> hm = new HashMap<String, Object>();

        JSONObject result = new JSONObject();
        Merchandisers merchandiser;
        try {
            JSONObject user = (JSONObject) new JSONParser().parse(json);

            ////////////check if this user already exist bec w cant check it from internal exception
            hm.put("email", (String) user.get("email"));
            merchandiser = (Merchandisers) merchandisersFacadeREST.findOneByQuery("Merchandisers.checkMerchandiser",
                    hm);
            //////////if dont exist 
            if (merchandiser == null) {
                merchandiser = (Merchandisers) merchandisersFacadeREST.findOneByQuery("Merchandisers.findByEmail",
                        hm);
                if (merchandiser != null) {
                    merchandiser.setActive("Y");
                    merchandiser.setPassword((String) user.get("password"));
                    try {
                        merchandisersFacadeREST.edit(merchandiser);
                        status = true;
                        error = "User registered successfully, Congrats :)";
                    } catch (TransactionRequiredException ex) {
                        status = false;
                        error = "Can't add merchandiser problem with server";
                    } catch (IllegalArgumentException ex) {
                        status = false;
                        error = "Wrong data Please try again";
                    }
                } else {
                    status = false;
                    error = "Your email is not registered in our system, Please contact the system admin.";
                }
            } else {
                status = true;
                error = "You are already active please login directly.";
            }
        } catch (Exception e) {
            Logger.getLogger(NewUser.class.getName()).log(Level.SEVERE, null, e);
        }
        result.put("status", status);
        result.put("error", error);
        System.out.println("----------------" + result.toString());
        return result.toString();
    }
}