/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package info.ozkan.vipera.client;
import info.ozkan.vipera.api.healthdata.HealthDataModel;
import java.io.IOException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.fluent.Request;
import org.apache.http.entity.ContentType;
import com.google.gson.Gson;
/**
* Vipera'ya sağlık verisi ekler
*
* @author Ömer Özkan
*/
public class HealthDataAddClient {
/**
* Sayfa bulunamadı
*/
public static final String NOT_FOUND = "NOT_FOUND";
/**
* sunucu hatası
*/
public static final String SERVER_ERROR = "SERVER_ERROR";
/**
* yetkilendirme hatası
*/
public static final String FORBIDDEN = "FORBIDDEN";
/**
* yetkilendirme hatası
*/
public static final String AUTHORIZATION_FAILED = "AUTHORIZATION_FAILED";
/**
* bad request
*/
public static final String BAD_REQUEST = "BAD_REQUEST";
/**
* başarılı
*/
public static final String SUCCESS = "SUCCESS";
/**
* gson
*/
public final Gson gson = new Gson();
/**
* vipera adresi
*/
public final String viperaUrl;
/**
* consructor
*
* @param url
*/
public HealthDataAddClient(final String url) {
viperaUrl = url;
}
/**
* ekleme işlemi
*
* @param model
* @return
*/
public String add(final HealthDataModel model) {
String result = "";
try {
final String url = viperaUrl + "/rest/healthdata/add";
final String json = gson.toJson(model);
final Request request =
Request.Post(url).bodyString(json,
ContentType.APPLICATION_JSON);
request.execute().returnContent();
result = SUCCESS;
} catch (final ClientProtocolException e) {
final String message = e.getMessage();
if (message.contains("400")) {
result = BAD_REQUEST;
} else if (message.contains("401")) {
result = AUTHORIZATION_FAILED;
} else if (message.contains("Forbidden")) {
result = FORBIDDEN;
} else if (message.contains("500")) {
result = SERVER_ERROR;
} else {
result = NOT_FOUND;
}
e.printStackTrace();
} catch (final IOException e) {
result = NOT_FOUND;
e.printStackTrace();
}
return result;
}
}