package de.fau.cs.mad.fly.HttpClient;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Net.HttpMethods;
import com.badlogic.gdx.Net.HttpRequest;
import com.badlogic.gdx.Net.HttpResponse;
import com.badlogic.gdx.Net.HttpResponseListener;
import com.badlogic.gdx.net.HttpStatus;
import de.fau.cs.mad.fly.profile.PlayerProfile;
public class PutUserService {
public PutUserService(FlyHttpResponseListener listener) {
this.listener = listener;
}
private final FlyHttpResponseListener listener;
public void execute(PlayerProfile player) {
String subURL = "/users/" + player.getFlyID();
String userData = "{ \"user\": { \"name\": \"" + player.getName() + "\" } }";
HttpRequest post = new HttpRequest(HttpMethods.PUT);
post.setHeader("Content-Type", "application/json");
post.setUrl(RemoteServices.getServerURL() + subURL);
post.setContent(userData);
Gdx.app.log("PutUserService", "sending:" + userData);
RemoteServices.sendHttpRequest(post, new HttpResponseListener() {
@Override
public void handleHttpResponse(HttpResponse httpResponse) {
HttpStatus status = httpResponse.getStatus();
if (status.getStatusCode() == HttpStatus.SC_OK || status.getStatusCode() == HttpStatus.SC_NO_CONTENT) {
Gdx.app.log("PutUserService", " successful with code:" + status.getStatusCode());
listener.successful(new Object());
} else {
Gdx.app.log("PutUserService", "update user name services return code: " + String.valueOf(status.getStatusCode()));
listener.failed(String.valueOf(status.getStatusCode()));
}
}
@Override
public void failed(Throwable t) {
Gdx.app.log("PutUserService", "update user name services failed:" + t.getMessage());
listener.failed(t.getLocalizedMessage());
}
@Override
public void cancelled() {
listener.cancelled();
}
});
}
}