Skip to content

Call Notification Service From Account Create Service

Piyush Chaudhari edited this page Aug 19, 2018 · 2 revisions

Go to account-create-service project and update UserServiceImpl.java as below

@Autowired
private UserDao userDao;

@Autowired
private DiscoveryClient discoveryClient;

@Override
public User save(User user) {
	log.info("save user:> {} ",user);
	User u = userDao.save(user);
	if(null !=u) {
		sendNotification(u);
	}
	return u;
}

private void sendNotification(User u) {
	List<ServiceInstance> instances = discoveryClient.getInstances("notification-service");
	ServiceInstance serviceInstance = instances.get(0);

	StringBuilder baseUrl = new StringBuilder(serviceInstance.getUri().toString());
	baseUrl.append("/notification/registration/welcome");
	
	Map<String,String> modelMap = new HashMap<>();
	
	modelMap.put("to",u.getEmail());
	modelMap.put("name",u.getFirstName());
	modelMap.put("signature","Notification Team");
	modelMap.put("location","Ahmedabad");
	RestTemplate restTemplate = new RestTemplate();
	String result = restTemplate.postForObject(baseUrl.toString(), modelMap, String.class);
	log.info("result:> {} ",result);
}