Commit 4035674c authored by Vijay Chaitanya's avatar Vijay Chaitanya Committed by tdutta-nisum-com

Mt 78 mt 82 changes (#24)

* Service side code changes done for MT-78 and MT-82 tasks

* changes done as per review comments

* code corrected for get domains

* changes done as per new requirement

* as per Review comments corrected the code

* changes for validation and Id generation

* corrected the code

* conflicts
parent 64c64bd4
......@@ -7,6 +7,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
......@@ -17,12 +21,40 @@ import com.nisum.mytime.exception.handler.MyTimeException;
import com.nisum.mytime.model.Domains;
import com.nisum.mytime.service.DomainService;
import com.nisum.mytime.utils.MyTimeUtils;
@RestController
public class DomainController {
@Autowired
private DomainService domainService;
@RequestMapping(value = "/domains", method = RequestMethod.POST, produces = MediaType.TEXT_PLAIN_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> addDomain(@RequestBody Domains domains)
throws MyTimeException {
String response=null;
if (StringUtils.isEmpty(domains.getDomainId())) {
domains.setDomainId(generateDomainId());
}
domains.setStatus("Y");
if(domains.getId()==null){
response="saved Succesfully";
}else{
response="updated Succesfully";
}
domainService.addDomain(domains);
return new ResponseEntity<>(response, HttpStatus.OK);
}
@RequestMapping(value = "/domains", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<HashMap<Object, Object>>> getDomains() throws MyTimeException {
@RequestMapping(value = "/domains", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Domains> addDomain(@RequestBody Domains domains)
throws MyTimeException {
......@@ -32,6 +64,7 @@ public class DomainController {
@RequestMapping(value = "/domains", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<HashMap<Object, Object>>> getAccounts() throws MyTimeException {
return new ResponseEntity<>(domainService.getAllDomains(), HttpStatus.OK);
}
......@@ -40,4 +73,20 @@ public class DomainController {
domainService.deleteDomain(domainId);
return new ResponseEntity<>("Success", HttpStatus.OK);
}
@RequestMapping(value = "/domains/{domainName}/{accountName}", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<String> validateDomain(@PathVariable ("domainName") String domainName,@PathVariable ("accountName") String accountName) throws MyTimeException {
String response=null;
List<Domains> domainList=domainService.validateDomains(domainName,accountName);
if(domainList.size()>0) {
response="Record already exists";
}
return new ResponseEntity<>(response, HttpStatus.OK);
}
private String generateDomainId() throws MyTimeException {
return (MyTimeUtils.DOM + MyTimeUtils.ZERO_) + (domainService.getAllDomains().size() +1);
}
}
\ No newline at end of file
......@@ -29,6 +29,10 @@ public class Domains implements Serializable {
private String domainName;
private String accountName;
private String status;
List<String> deliveryManagers;
List<String> employee;
}
package com.nisum.mytime.repository;
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
import com.nisum.mytime.model.Domains;
public interface DomainRepo extends MongoRepository<Domains, String> {
List<Domains> findByDomainNameAndAccountName(String domianName,String accountName);
}
\ No newline at end of file
......@@ -21,4 +21,8 @@ public interface DomainService {
List<HashMap<Object,Object>> getAllDomains() throws MyTimeException;
WriteResult deleteDomain(String id) throws MyTimeException;
List<Domains> validateDomains(String domainName,String accountName) throws MyTimeException;
}
......@@ -20,6 +20,9 @@ import com.nisum.mytime.model.Domains;
import com.nisum.mytime.model.EmployeeRoles;
import com.nisum.mytime.repository.DomainRepo;
import com.nisum.mytime.utils.MyTimeUtils;
/**
* @author Vijay
*
......@@ -44,18 +47,32 @@ public class DomainServiceImpl implements DomainService {
@Override
public List<HashMap<Object, Object>> getAllDomains() throws MyTimeException {
domainList=domainRepo.findAll();
Query activeDomainListQuery = new Query(Criteria.where("status").is("Y"));
List<Domains> domainList = mongoTemplate.find(activeDomainListQuery, Domains.class);
updatedDomainList = new ArrayList<>();
for (Domains domain : domainList) {
HashMap<Object, Object> domainMap = new HashMap<>();
domainMap.put("id",domain.getId());
domainMap.put(MyTimeUtils.DOMAIN_ID, domain.getDomainId());
domainMap.put(MyTimeUtils.DOMAIN_NAME,domain.getDomainName());
domainMap.put("accountName",domain.getAccountName());
domainMap.put(MyTimeUtils.STATUS,domain.getStatus());
updatedEmployeeList = new ArrayList<>();
List<String> employeeIds=domain.getDeliveryManagers();
domainMap.put("domainName",domain.getDomainName());
domainMap.put("accountName",domain.getAccountName());
domainMap.put("status",domain.getStatus());
updatedEmployeeList = new ArrayList<>();
List<String> employeeIds=domain.getEmployee();
Query query = new Query(Criteria.where("employeeId").in(employeeIds));
List<EmployeeRoles> employeeRoles = mongoTemplate.find(query, EmployeeRoles.class);
......@@ -78,4 +95,13 @@ public class DomainServiceImpl implements DomainService {
update.set("status","N");
return mongoTemplate.upsert(query, update,Domains.class);
}
@Override
public List<Domains> validateDomains(String domainName, String accountName) throws MyTimeException {
List<Domains> domainList=domainRepo.findByDomainNameAndAccountName(domainName,accountName);
return domainList;
}
}
......@@ -37,6 +37,16 @@ public class MyTimeUtils {
public final static String ABESENT_QUERY1 = ") AND STATUS='Working' AND EMPLOYEECODE NOT LIKE 'del%' ";
public final static String ABESENT ="Absent";
public final static String EMAIL_ID = "emailId";
//Domain Constants
public final static String DOM="DOM";
public final static String ZERO_="00";
public final static String ONE="1";
public final static String DOMAIN_NAME="domainName";
public final static String DOMAIN_ID="domainId";
public final static String STATUS="status";
public final static String ACCOUNT_ID = "accountId";
public static final int ONE = 1;
public final static String ACC_NAME = "Acc";
......@@ -60,4 +70,5 @@ public class MyTimeUtils {
public final static int MINUS_ONE = -1;
public final static String FREE_POLL="Free Pool";
public final static String START_DATE="startDate";
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment