package ru.loparev.rmp

import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_sing_up.*
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import ru.loparev.rmp.api.Api
import ru.loparev.rmp.models.NewUser
import ru.loparev.rmp.models.ResponseBody
import ru.loparev.rmp.models.UserLogin

class SingUpActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_sing_up)
    }

    fun buttonSingUpPressed(view: View) {

        //получаем логин и пароль из текстовых полей
        val login = editTextSingUpPersonName.text
        val email = editTextEmailPersonName.text
        val password1 = editSingUpTextPassword1.text.toString()
        val password2 = editSingUpTextPassword2.text.toString()
        if (password1 == password2) {
            //Создаем конструктор Retrofit с параметрами URL и указываем типа конвертера данных
            val retrofit = Retrofit.Builder()
                .baseUrl("http://cars.areas.su/")
                .addConverterFactory(GsonConverterFactory.create())
                .build()
            //Создаем экземпляр retrofit и указываем интерфейс для запрооса
            val registerAPI = retrofit.create(Api.RegisterAPI::class.java)
            //Вызываем функцию из интерфейса и передаем ей логин и пароль
            val call = registerAPI?.singup(NewUser(login.toString(),email.toString(), password1.toString()))
            //асинхронно выполняем запрос
            call?.enqueue(object : Callback<ResponseBody> {
                //если ответ успешен
                override fun onResponse(p0: Call<ResponseBody>?, p1: Response<ResponseBody>?) {
                    //если ответ не пустой
                    if (p1 != null) {
                        Toast.makeText(baseContext, p1.body().notice["answer"].toString(), Toast.LENGTH_SHORT).show()

                        //если ответ успешен, открываем окно входа
                        if (p1.body().notice["answer"] == "Success"
                        ) {


                            //Создаем намерение (соединяем нашу активность и активность логином и паролем)
                            val intent = Intent(this@SingUpActivity, MainActivity::class.java)
                            //Открываем активность входа
                            startActivity(intent)
                            //Протоколируем в терминал
                            Log.d("TAG1", p1.body().notice["answer"].toString())


                        } else {
                            //сообщение об ошибке

                        }
                    }

                }

                override fun onFailure(p0: Call<ResponseBody>?, p1: Throwable?) {
                    //действия при ошибках с сетью
                    Log.d("TAG1", p0.toString())
                }
            }
            )
        }
        else
        {
            Toast.makeText(this@SingUpActivity, "Пароли не совпадают!", Toast.LENGTH_SHORT).show()
        }
    }


}