Add methods for getting the results of a user
This commit is contained in:
@@ -301,6 +301,23 @@ public class UserService {
|
|||||||
.encode().toUri(), Map.class);
|
.encode().toUri(), Map.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the results of a user.
|
||||||
|
* @param name name of the user
|
||||||
|
* @return Map with all results
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("Duplicates")
|
||||||
|
public Map<String, String> getResults(String name) {
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getResults")
|
||||||
|
.queryParam("name", name);
|
||||||
|
HttpEntity<?> entity = new HttpEntity<>(headers);
|
||||||
|
System.out.println(builder.build().encode().toUri());
|
||||||
|
return this.restTemplate.getForObject(builder.build()
|
||||||
|
.encode().toUri(), Map.class);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the list of all users.
|
* Gets the list of all users.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -185,5 +185,15 @@ public class UserController {
|
|||||||
public Map<String, Boolean> getAchievements(@RequestParam(value = "name") String name) {
|
public Map<String, Boolean> getAchievements(@RequestParam(value = "name") String name) {
|
||||||
return userService.getAchievements(name);
|
return userService.getAchievements(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method gets the result for schema.
|
||||||
|
* @param name name of the user
|
||||||
|
* @return map of all results of the user
|
||||||
|
*/
|
||||||
|
@RequestMapping("/getResults")
|
||||||
|
public Map<String, String> getResults(@RequestParam(value = "name") String name) {
|
||||||
|
return userService.getResults(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@@ -108,5 +109,43 @@ public class CalculatorService {
|
|||||||
inputs.put("input_footprint_shopping_goods_total", netShopping + "");
|
inputs.put("input_footprint_shopping_goods_total", netShopping + "");
|
||||||
user.setFootPrintInputs(inputs);
|
user.setFootPrintInputs(inputs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getResults(Map<String, String> map) {
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.set("accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
|
headers.set("app_id", "a98272e3");
|
||||||
|
headers.set("app_key", "b9167c4918cb2b3143614b595065d83b");
|
||||||
|
HttpEntity<String> entity = new HttpEntity<>("parameters", headers);
|
||||||
|
UriComponentsBuilder builder =
|
||||||
|
UriComponentsBuilder.fromHttpUrl("https://apis.berkeley.edu/coolclimate/footprint");
|
||||||
|
for (String inputId : map.keySet()) {
|
||||||
|
builder = builder.queryParam(inputId, map.get(inputId));
|
||||||
|
}
|
||||||
|
ResponseEntity<String> response = restTemplate
|
||||||
|
.exchange(builder.build().encode().toUri(), HttpMethod.GET,
|
||||||
|
entity, String.class);
|
||||||
|
String transport = response.getBody().substring(Objects.requireNonNull(response.getBody())
|
||||||
|
.indexOf("<result_transport_total>")
|
||||||
|
+ 24, response.getBody().indexOf("</result_transport_total>"));
|
||||||
|
String housing = response.getBody().substring(Objects.requireNonNull(response.getBody())
|
||||||
|
.indexOf("<result_housing_total>")
|
||||||
|
+ 22, response.getBody().indexOf("</result_housing_total>"));
|
||||||
|
String food = response.getBody().substring(Objects.requireNonNull(response.getBody())
|
||||||
|
.indexOf("<result_food_total>")
|
||||||
|
+ 19, response.getBody().indexOf("</result_food_total>"));
|
||||||
|
String goods = response.getBody().substring(Objects.requireNonNull(response.getBody())
|
||||||
|
.indexOf("<result_goods_total>")
|
||||||
|
+ 20, response.getBody().indexOf("</result_goods_total>"));
|
||||||
|
String services = response.getBody().substring(Objects.requireNonNull(response.getBody())
|
||||||
|
.indexOf("<result_services_total>")
|
||||||
|
+ 23, response.getBody().indexOf("</result_services_total>"));
|
||||||
|
Map<String, String> resultMap = new HashMap<>();
|
||||||
|
resultMap.put("transport", transport);
|
||||||
|
resultMap.put("housing", housing);
|
||||||
|
resultMap.put("food", food);
|
||||||
|
resultMap.put("goods", goods);
|
||||||
|
resultMap.put("services", services);
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -280,6 +280,17 @@ public class UserService {
|
|||||||
return user.getAchievements();
|
return user.getAchievements();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method gets all achievements of a user.
|
||||||
|
* @param name name of the user
|
||||||
|
* @return map with all achievements of a user
|
||||||
|
*/
|
||||||
|
public Map<String, String> getResults(String name) {
|
||||||
|
User user = userRepository.findByName(name);
|
||||||
|
Map<String, String> results = calculatorService.getResults(user.getFootPrintInputs());
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method gets the list of all users.
|
* This method gets the list of all users.
|
||||||
* @return list of all users
|
* @return list of all users
|
||||||
|
|||||||
Reference in New Issue
Block a user