2020-12-29 19:01:09 +01:00
|
|
|
package com.plannaplan.services;
|
|
|
|
|
2020-12-31 13:45:07 +01:00
|
|
|
import java.io.IOException;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.concurrent.ExecutionException;
|
2021-01-08 16:17:24 +01:00
|
|
|
import java.util.concurrent.TimeUnit;
|
2020-12-31 13:45:07 +01:00
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
|
|
|
|
import com.github.scribejava.core.builder.ServiceBuilder;
|
|
|
|
import com.github.scribejava.core.model.OAuth1AccessToken;
|
|
|
|
import com.github.scribejava.core.model.OAuthRequest;
|
|
|
|
import com.github.scribejava.core.model.Response;
|
|
|
|
import com.github.scribejava.core.model.Verb;
|
|
|
|
import com.github.scribejava.core.oauth.OAuth10aService;
|
|
|
|
import com.plannaplan.api.UsosOauth1Service;
|
|
|
|
import com.plannaplan.models.UserApiResponse;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
2020-12-29 19:01:09 +01:00
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
2020-12-31 13:45:07 +01:00
|
|
|
/**
|
|
|
|
* service to call usos api endpoints
|
|
|
|
*/
|
2020-12-31 14:24:55 +01:00
|
|
|
@Service
|
2020-12-29 19:01:09 +01:00
|
|
|
public class UsosApiService {
|
2020-12-31 13:45:07 +01:00
|
|
|
|
|
|
|
private static final String NAME_FIELD = "first_name";
|
|
|
|
private static final String SURNAME_FIELD = "last_name";
|
|
|
|
|
|
|
|
@Value("${plannaplan.apiurl}")
|
|
|
|
private String apiUrl;
|
|
|
|
|
|
|
|
@Value("${plannaplan.apikey}")
|
|
|
|
private String apikey;
|
|
|
|
|
|
|
|
@Value("${plannaplan.apisecret}")
|
|
|
|
private String apisecret;
|
|
|
|
|
2020-12-29 19:01:09 +01:00
|
|
|
public UsosApiService() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2020-12-31 13:45:07 +01:00
|
|
|
/**
|
|
|
|
* /services/users/user
|
|
|
|
*
|
|
|
|
* @param usosId user id in usos
|
|
|
|
* @return UserApiResponse modle contatining desired values
|
|
|
|
*/
|
|
|
|
public UserApiResponse getUserData(String usosId) {
|
|
|
|
final UserApiResponse apiResponse = new UserApiResponse();
|
|
|
|
try {
|
|
|
|
final OAuth10aService service = new ServiceBuilder(apikey).apiSecret(apisecret)
|
2021-01-08 16:03:35 +01:00
|
|
|
.build(UsosOauth1Service.instance());
|
|
|
|
|
2020-12-31 13:45:07 +01:00
|
|
|
final OAuthRequest request = new OAuthRequest(Verb.GET, apiUrl + "/services/users/user?user_id=" + usosId);
|
|
|
|
service.signRequest(new OAuth1AccessToken("", ""), request);
|
2021-01-08 16:03:35 +01:00
|
|
|
System.out.println("PRZED TRY");
|
2020-12-31 13:45:07 +01:00
|
|
|
try (Response response = service.execute(request)) {
|
2021-01-08 16:03:35 +01:00
|
|
|
System.out.println("TRY");
|
2020-12-31 13:45:07 +01:00
|
|
|
final String json = response.getBody();
|
2021-01-08 16:33:02 +01:00
|
|
|
System.out.println(json);
|
2021-01-08 16:26:47 +01:00
|
|
|
System.out.println("Przed Object");
|
2020-12-31 13:45:07 +01:00
|
|
|
final ObjectMapper mapper = new ObjectMapper();
|
2021-01-08 16:26:47 +01:00
|
|
|
System.out.println("Przed mapą");
|
2020-12-31 13:45:07 +01:00
|
|
|
Map<String, String> map = mapper.readValue(json, new TypeReference<Map<String, String>>() {
|
|
|
|
});
|
2021-01-08 16:17:24 +01:00
|
|
|
System.out.println(map.size());
|
2021-01-08 16:03:35 +01:00
|
|
|
System.out.println("FIELD");
|
2020-12-31 13:45:07 +01:00
|
|
|
apiResponse.setName(map.get(NAME_FIELD));
|
2021-01-08 16:03:35 +01:00
|
|
|
System.out.println(map.get(NAME_FIELD));
|
2020-12-31 13:45:07 +01:00
|
|
|
apiResponse.setSurname(map.get(SURNAME_FIELD));
|
2021-01-08 16:03:35 +01:00
|
|
|
System.out.println(map.get(SURNAME_FIELD));
|
2020-12-31 13:45:07 +01:00
|
|
|
}
|
|
|
|
} catch (IOException | InterruptedException | ExecutionException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
|
|
|
|
return apiResponse;
|
2020-12-29 19:01:09 +01:00
|
|
|
}
|
2020-12-31 13:45:07 +01:00
|
|
|
|
2020-12-29 19:01:09 +01:00
|
|
|
}
|