/*************************************************************
 * By: Coralys Cubero Rivera
 * Date: 2019
 *************************************************************/

package uprrp.tania;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.util.Log;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

public class SendWithdrawalToServer extends AsyncTask<String, String, String> {

    private Context context;

    public SendWithdrawalToServer(Context context){
        this.context = context.getApplicationContext();
    }
    @Override
    protected String doInBackground(String... strings) {
        String jsonWithdraw  = "";

        try {
            jsonWithdraw = URLEncoder.encode("data", "UTF-8") + "=" + URLEncoder.encode(strings[0], "UTF-8");

        }

        catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        String serverReply = "";
        BufferedReader serverReader;

        //Send the signature to TANIA's server
        try
        {
            //Defined URL  where to send data
            URL url = new URL("https://tania.uprrp.edu/withdrawal.php");

            //Send POST data request
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);

            Writer writer = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8));
            writer.write(jsonWithdraw);
            writer.close();

            InputStream inputStream = conn.getInputStream();

            if (inputStream == null) {
                return null;
            }

            //Get the server response
            serverReader = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder serverResponse = new StringBuilder();
            String serverResponseLine;

            // Read Server Response
            while((serverResponseLine = serverReader.readLine()) != null)
            {
                //Append server response in string
                serverResponse.append(serverResponseLine);
            }

            serverReply = serverResponse.toString();
        }
        catch(Exception ex) {
            Log.e("ERROR WITHDRAWAL", ex.getMessage());
        }

        return serverReply;
    }

    @Override
    protected void onPostExecute(String s) {
        Log.d("WITHDRAWAL SERVER REPLY", s);

        String ss = s.substring(0,6);
        String se = s.substring(0,7);
        if (ss.equals("Succes")){

            SharedPreferences prefs = context.getSharedPreferences("prefs", Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = prefs.edit();
            editor.putBoolean("needsToRegister", true);
            editor.apply();

            try {
                Intent intent = new Intent(context, GettingStarted.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent);
            }
            catch (Exception e){
                Log.d("WITHDRAWAL TO GETTING STARTED", e.getMessage());
            }


        }

    }
}
