updateProductionStatus(..) 수정

master
mjkhan21 4 months ago
parent 66faf1c5d6
commit 4a753fe6aa

@ -1,6 +1,7 @@
package cokr.xit.interfaces.postplus.post.service;
import java.util.List;
import java.util.Map;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.interfaces.postplus.post.PostResponse;
@ -35,10 +36,10 @@ public interface PostplusService {
/** .
* @param apiName apiKey
* @param intfID
* @return
* @param intfIDs
* @return
*/
StatusResponse updateProductionStatus(String apiName, String intfID);
Map<String, StatusResponse> updateProductionStatus(String apiName, List<String> intfIDs);
void updateProductionStatus();

@ -5,6 +5,7 @@ import java.io.FileWriter;
import java.io.InputStream;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@ -139,19 +140,28 @@ public class PostplusServiceBean extends ScheduledServiceBean implements Postplu
}
@Override
public StatusResponse updateProductionStatus(String apiName, String intfID) {
HttpResponse<String> hresp = new WebClient().post(req ->
req.uri(conf.productionStatusURL())
.json(json)
.data("apiKey", conf.api(apiName).getKey())
.data("inputCode", intfID)
);
String body = hresp.body();
log().debug("response:\n{}", body);
StatusResponse resp = json.parse(body, StatusResponse.class);
logProductionStatus(resp);
return resp;
public Map<String, StatusResponse> updateProductionStatus(String apiName, List<String> intfIDs) {
String apiKey = conf.api(apiName).getKey();
String productionStatusURL = conf.productionStatusURL();
LinkedHashMap<String, StatusResponse> responses = new LinkedHashMap<>();
WebClient webClient = new WebClient();
for (String intfID: intfIDs) {
HttpResponse<String> hresp = webClient.post(req ->
req.uri(productionStatusURL)
.json(json)
.data("apiKey", apiKey)
.data("inputCode", intfID)
);
String body = hresp.body();
log().debug("response:\n{}", body);
StatusResponse resp = json.parse(body, StatusResponse.class);
responses.put(intfID, resp);
}
responses.values().forEach(this::logProductionStatus);
return responses;
}
private void logProductionStatus(StatusResponse resp) {

@ -72,7 +72,7 @@ public class PostplusController extends AbstractController {
* @return
*/
@PostMapping(name = "신청우편 상태 조회", value = "/status")
public StatusResponse getProductionStatus(String apiName, String intfID) {
return postplusService.updateProductionStatus(apiName, intfID);
public Map<String, StatusResponse> getProductionStatus(String apiName, List<String> intfIDs) {
return postplusService.updateProductionStatus(apiName, intfIDs);
}
}
Loading…
Cancel
Save