Subversion Repositories SmartDukaan

Rev

Rev 21812 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21812 amit.gupta 1
package com.spice.profitmandi.web.controller;
2
 
3
import java.util.Arrays;
4
import java.util.HashMap;
5
import java.util.List;
6
import java.util.Map;
7
 
8
import javax.servlet.http.HttpServletRequest;
9
 
10
import org.slf4j.Logger;
11
import org.slf4j.LoggerFactory;
12
import org.springframework.beans.factory.annotation.Autowired;
13
import org.springframework.http.ResponseEntity;
14
import org.springframework.stereotype.Controller;
15
import org.springframework.web.bind.annotation.RequestAttribute;
16
import org.springframework.web.bind.annotation.RequestBody;
17
import org.springframework.web.bind.annotation.RequestMapping;
18
import org.springframework.web.bind.annotation.RequestMethod;
19
 
20
import com.spice.profitmandi.admin.util.JWTUtil;
21
import com.spice.profitmandi.common.model.ProfitMandiConstants;
22
import com.spice.profitmandi.common.model.UserInfo;
23
import com.spice.profitmandi.common.services.Department;
24
import com.spice.profitmandi.common.services.HelperServiceUtils;
25
import com.spice.profitmandi.common.web.util.ResponseSender;
26
import com.spice.profitmandi.web.request.EmailPassword;
27
 
28
import in.shop2020.utils.Agent;
29
import io.swagger.annotations.ApiImplicitParam;
30
import io.swagger.annotations.ApiImplicitParams;
31
 
32
@Controller
33
public class AuthController {
34
 
35
	private static final Logger LOGGER = LoggerFactory.getLogger(AuthController.class);
36
 
37
 
38
	@Autowired
22923 ashik.ali 39
	private ResponseSender<?> responseSender;
21812 amit.gupta 40
 
41
	@RequestMapping(value = "/login", method = RequestMethod.POST)
42
	public ResponseEntity<?> login(HttpServletRequest request, @RequestBody EmailPassword emailPassword) throws Throwable {
43
 
44
		Map<String, Object> responseMap = new HashMap<>();
45
 
46
		if(HelperServiceUtils.authenticate(emailPassword.getEmail(), emailPassword.getPassword())){
47
			List<String> roles = HelperServiceUtils.getRolesByAgent(emailPassword.getEmail());
48
			Agent agent = HelperServiceUtils.getAgent(emailPassword.getEmail());
49
			responseMap.put(ProfitMandiConstants.ACCESS_TOKEN, JWTUtil.create(agent.getId(), roles.toArray(new String[(roles.size())])));
50
			responseMap.put(ProfitMandiConstants.AUTHENTICATED, true);
51
		} else {
52
			responseMap.put(ProfitMandiConstants.AUTHENTICATED, false);
53
		}
54
 
55
		return responseSender.ok(responseMap);
56
 
57
	}
58
 
59
	@RequestMapping(value = "/departments", method = RequestMethod.POST)
60
	@ApiImplicitParams({
61
		@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
62
	public ResponseEntity<?> getRoles(@RequestAttribute("userInfo") UserInfo userInfo) throws Throwable {
63
		return responseSender.ok(Arrays.asList(Department.values()));
64
 
65
	}
66
 
67
}