Skip to content
Snippets Groups Projects
Commit 6e4b8937 authored by Christian Dresen's avatar Christian Dresen
Browse files

Anpassung an die Restschnittstelle, Versenden aller Transaktionen als Liste

parent 5e3f117e
No related branches found
No related tags found
No related merge requests found
......@@ -174,8 +174,6 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
return true;
}
if(this.manager.getCurrentUser() != null) {
if (event.getAction() == KeyEvent.ACTION_UP) {
if (KeyEvent.KEYCODE_ENTER == event.getKeyCode()) {
......
package ms.warpzone.warppay.data;
import java.util.ArrayList;
import java.util.List;
import ms.warpzone.warppay.data.models.rest.RestCategory;
......@@ -34,8 +35,8 @@ public interface RestService {
@GET("categories/")
Call<List<RestCategory>> getAllCategories();
@PUT("transaction/{userid}/")
Call<Void> saveTransaction(@Path("userid") String uid, @Body RestTransaction transaction);
@PUT("transactions/{userid}/")
Call<Void> saveTransaction(@Path("userid") String uid, @Body ArrayList<RestTransaction> transaction);
@PUT("products/{productid}/barcode/")
Call<Void> saveBarcode(@Path("productid") int pid, @Body RestProduct product);
......
......@@ -4,6 +4,7 @@ import android.util.Log;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import ms.warpzone.warppay.data.models.local.User;
import ms.warpzone.warppay.data.models.rest.RestProduct;
......@@ -15,12 +16,13 @@ import retrofit.Response;
import retrofit.Retrofit;
public class DataManager {
private static DataManager ourInstance = new DataManager();
private User currentUser;
private Boolean is_guest=false;
private double totalAmount;
private ArrayList<Order> orderList;
private static DataManager ourInstance = new DataManager();
private String lastCardId;
public static DataManager getInstance() {
......@@ -32,7 +34,6 @@ public class DataManager {
}
public void saveCurrentUser() {
RestUser rest_user = RestUser.fromLocalUser(this.currentUser);
MainManager.getInstance().getRestService().saveUser(rest_user.getUserid(), rest_user).enqueue(new Callback<RestUser>() {
@Override
......@@ -49,7 +50,6 @@ public class DataManager {
Log.d("REST", t.getMessage());
}
});
}
public Boolean getIs_guest() {
......@@ -61,24 +61,28 @@ public class DataManager {
}
public void performPayment(Boolean cash) {
ArrayList transactions = new ArrayList<>();
for (Order order:this.orderList) {
RestTransaction transaction = new RestTransaction();
transaction.setProduct(RestProduct.fromLocalProduct(order.getProduct()));
transaction.setTrans_type(2);
if(this.is_guest || cash)
if (this.is_guest || cash)
transaction.setCash_paid(true);
MainManager.getInstance().getRestService().saveTransaction(this.currentUser.getUserid(), transaction).enqueue(new Callback<Void>() {
@Override
public void onResponse(Response<Void> response, Retrofit retrofit) {
transactions.add(transaction);
}
MainManager.getInstance().getRestService().saveTransaction(this.currentUser.getUserid(), transactions).enqueue(new Callback<Void>() {
@Override
public void onResponse(Response<Void> response, Retrofit retrofit) {
Log.d("REST",String.valueOf(response.code()));
}
}
@Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
@Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
}
if(!this.is_guest && !cash) {
this.currentUser.setCredit(this.currentUser.getCredit() - this.totalAmount);
this.currentUser.save();
......@@ -113,10 +117,6 @@ public class DataManager {
this.orderList.remove(order);
this.totalAmount -= order.getProduct().getPrice();
}
public void setTotalAmount(double totalAmount) {
this.totalAmount = totalAmount;
}
public void setLastCardId(String lastCardId) {
this.lastCardId = lastCardId;
}
......
......@@ -22,6 +22,7 @@ import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
......@@ -49,6 +50,7 @@ import retrofit.Response;
import retrofit.Retrofit;
public class MainManager {
private static MainManager instance = new MainManager();
private RestService restService;
private MainActivity mainActivity;
......@@ -57,9 +59,8 @@ public class MainManager {
private DataManager dataManager;
private boolean barcodeLearning=false;
private Timer timer;
private static MainManager instance = new MainManager();
private Timer screenSaverTimer;
public AlertDialog alertAmount;
public static MainManager getInstance() {
return instance;
}
......@@ -70,8 +71,9 @@ public class MainManager {
private RestService createRestService() {
Retrofit.Builder builder = new Retrofit.Builder()
// .baseUrl("http://infra.warpzone:8000/api/")
.baseUrl("https://infra.warpzone/api/")
.addConverterFactory(GsonConverterFactory.create());
.addConverterFactory(GsonConverterFactory.create());
OkHttpClient okHttp = new OkHttpClient();
......@@ -84,7 +86,7 @@ public class MainManager {
Request newRequest;
newRequest = request.newBuilder()
.addHeader("Authorization", "Token 7b6ca8ade59a32cef9b516e91f3bc9545b6c75a7")
.addHeader("Authorization", "Token 29e87bab51b9634504b9aee58c1360668e4afd0a")
.build();
return chain.proceed(newRequest);
......@@ -95,14 +97,12 @@ public class MainManager {
}
Retrofit retrofit = builder.client(okHttp).build();
return retrofit.create(RestService.class);
}
private static SSLContext getSSLConfig(Context context) throws CertificateException, IOException,
KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
CertificateFactory cf = null;
String password = "e44r4dv9z1d0vwr9erotafxe66114v31jwhjlvttc8qkoa3nrskcj4ml0pwrh8aw";
KeyStore keyStore = KeyStore.getInstance("BKS");
keyStore.load(context.getResources().openRawResource(R.raw.keystore), password.toCharArray());
......@@ -116,6 +116,7 @@ public class MainManager {
return sslContext;
}
public void init(MainActivity mainActivity) {
this.mainActivity = mainActivity;
this.sqLiteService = SQLiteService.getInstance();
......@@ -283,7 +284,10 @@ public class MainManager {
t.setAmount(amount);
t.setTrans_type(1);
t.setCash_paid(true);
MainManager.getInstance().getRestService().saveTransaction(currentUser.getUserid(), t).enqueue(new Callback<Void>() {
ArrayList transactions = new ArrayList<>();
transactions.add(t);
MainManager.getInstance().getRestService().saveTransaction(currentUser.getUserid(), transactions).enqueue(new Callback<Void>() {
@Override
public void onResponse(Response<Void> response, Retrofit retrofit) {
}
......@@ -316,8 +320,33 @@ public class MainManager {
if (totalAmount > 0.0 && user != null){
if (DataManager.getInstance().getCurrentUser().getCredit()>=totalAmount || cash){
DataManager.getInstance().performPayment(cash);
if(!cash) {
AlertDialog.Builder builder = new AlertDialog.Builder(this.mainActivity);
builder.setMessage("Neues Guthaben: " + this.getCurrentUser().getCredit() + " Euro");
alertAmount = builder.create();
alertAmount.show();
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
@Override
public void run() {
if (MainManager.getInstance().alertAmount.isShowing()) {
alertAmount.dismiss();
}
}
};
alertAmount.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
handler.removeCallbacks(runnable);
}
});
handler.postDelayed(runnable, 2500);
}
MainManager.getInstance().clearCurrentUser();
} else {
Toast.makeText(mainActivity, mainActivity.getResources().getString(R.string.please_charge), Toast.LENGTH_LONG).show();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment