package com.fourtails.usuariolecturista.jobs;
import com.appspot.ocr_backend.backend.Backend;
import com.appspot.ocr_backend.backend.model.MessagesPayBill;
import com.appspot.ocr_backend.backend.model.MessagesPayBillResponse;
import com.fourtails.usuariolecturista.MainActivity;
import com.fourtails.usuariolecturista.fragments.BillsFragment;
import com.fourtails.usuariolecturista.model.ChartBill;
import com.fourtails.usuariolecturista.ottoEvents.MakePaymentOnBackendEvent;
import com.google.api.client.extensions.android.http.AndroidHttp;
import com.google.api.client.extensions.android.json.AndroidJsonFactory;
import com.orhanobut.logger.Logger;
import com.path.android.jobqueue.Job;
import com.path.android.jobqueue.Params;
import java.util.List;
import static com.fourtails.usuariolecturista.ottoEvents.MakePaymentOnBackendEvent.Type;
/**
* MakePaymentOnBackendJob async job
*/
public class MakePaymentOnBackendJob extends Job {
boolean responseOk = false;
boolean retry = true;
public MakePaymentOnBackendJob() {
super(new Params(Priority.MID).requireNetwork().groupBy("MakePaymentOnBackendJob"));
}
@Override
public void onAdded() {
Logger.d("MakePaymentOnBackendJob initiated");
}
@Override
public void onRun() throws Throwable {
List<ChartBill> bills = BillsFragment.getBillsForThisMonthRange(1);
ChartBill bill = bills.get(BillsFragment.selectedBillIndex);
// Use a builder to help formulate the API request.
Backend.Builder builder = new Backend.Builder(AndroidHttp.newCompatibleTransport(), new AndroidJsonFactory(), null);
Backend service = builder.build();
MessagesPayBill messagesPayBill = new MessagesPayBill();
messagesPayBill.setBillKey(bill.urlSafeKey);
MessagesPayBillResponse response = service.bill().pay(messagesPayBill).execute();
if (response.getOk()) {
Logger.json(response.toPrettyString());
MainActivity.bus.post(new MakePaymentOnBackendEvent(Type.COMPLETED, 1));
responseOk = true;
} else {
Logger.e(response.getError());
}
}
@Override
protected void onCancel() {
Logger.d("MakePaymentOnBackendJob canceled");
MainActivity.bus.post(new MakePaymentOnBackendEvent(Type.COMPLETED, 99));
responseOk = false;
}
@Override
protected boolean shouldReRunOnThrowable(Throwable throwable) {
return retry;
}
}