diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 35a0b72..30bbf20 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -2,7 +2,6 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlinKapt) - alias(libs.plugins.google.gms.google.services) } android { @@ -64,6 +63,17 @@ dependencies { implementation("androidx.room:room-runtime:2.8.3") kapt("androidx.room:room-compiler:2.8.3") - implementation (platform("com.google.firebase:firebase-bom:34.5.0")) - implementation ("com.google.firebase:firebase-database-ktx:21.0.0") + //Retrofit + implementation ("com.squareup.retrofit2:retrofit:2.9.0") + implementation ("com.squareup.retrofit2:converter-gson:2.9.0") + implementation ("com.squareup.retrofit2:adapter-rxjava2:2.9.0") + + //okHttp + implementation ("com.squareup.okhttp3:okhttp:4.9.0") + implementation ("com.squareup.okhttp3:logging-interceptor:4.9.0") + + //Glide + implementation ("com.github.bumptech.glide:glide:4.11.0") + annotationProcessor ("com.github.bumptech.glide:compiler:4.11.0") + } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 344f714..0a9583c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/com/keder/flo/AuthResponse.kt b/app/src/main/java/com/keder/flo/AuthResponse.kt new file mode 100644 index 0000000..bbd479b --- /dev/null +++ b/app/src/main/java/com/keder/flo/AuthResponse.kt @@ -0,0 +1,17 @@ +package com.keder.flo + +import com.google.gson.annotations.SerializedName + + +data class AuthResponse( + @SerializedName("isSuccess") val isSuccess: Boolean, + @SerializedName("code") val code: String, + @SerializedName("message") val message: String, + @SerializedName("result") val result: Result? + +) + +data class Result( + @SerializedName("userIdx") val userIdx: Int, + @SerializedName("jwt") val jwt: String +) \ No newline at end of file diff --git a/app/src/main/java/com/keder/flo/AuthRetrofitInterface.kt b/app/src/main/java/com/keder/flo/AuthRetrofitInterface.kt new file mode 100644 index 0000000..1e30636 --- /dev/null +++ b/app/src/main/java/com/keder/flo/AuthRetrofitInterface.kt @@ -0,0 +1,14 @@ +package com.keder.flo + +import retrofit2.Call +import retrofit2.http.Body +import retrofit2.http.POST + +interface AuthRetrofitInterface { + @POST("/users") + fun signUp(@Body user: User): Call + + @POST("/users/login") + fun login(@Body user: User): Call + +} \ No newline at end of file diff --git a/app/src/main/java/com/keder/flo/SignupActivity.kt b/app/src/main/java/com/keder/flo/SignupActivity.kt index 79ab10d..851634e 100644 --- a/app/src/main/java/com/keder/flo/SignupActivity.kt +++ b/app/src/main/java/com/keder/flo/SignupActivity.kt @@ -1,14 +1,20 @@ package com.keder.flo -import android.content.Intent import android.os.Bundle import android.util.Log +import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity +import com.keder.flo.User import com.keder.flo.databinding.ActivitySignupBinding +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response -class SignupActivity : AppCompatActivity() { - private lateinit var binding : ActivitySignupBinding + +class SignUpActivity : AppCompatActivity(){ + + lateinit var binding: ActivitySignupBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -17,31 +23,78 @@ class SignupActivity : AppCompatActivity() { binding.signupSignupBtn.setOnClickListener { signUp() - finish() } } - private fun getUser() : User{ - val email : String = binding.signupIdEt.text.toString() + "@" + binding.signupInputIdEt.text.toString() - val pwd : String = binding.signupPasswordEt.text.toString() + private fun getUser(): User { + val email: String = + binding.signupIdEt.text.toString() + "@" + binding.signupInputIdEt.text.toString() + val name: String = binding.signUpNameEt.text.toString() + val pwd: String = binding.signupPasswordEt.text.toString() - return User(email, pwd) + return User(email, pwd, name) } - private fun signUp(){ - if(binding.signupIdEt.text.toString().isEmpty() || binding.signupInputIdEt.text.toString().isEmpty()){ +// private fun signUp() { +// if (binding.signUpIdEt.text.toString().isEmpty() || binding.signUpDirectInputEt.text.toString().isEmpty()) { +// Toast.makeText(this, "이메일 형식이 잘못되었습니다.", Toast.LENGTH_SHORT).show() +// return +// } +// +// if (binding.signUpPasswordEt.text.toString() != binding.signUpPasswordCheckEt.text.toString()) { +// Toast.makeText(this, "비밀번호가 일치하지 않습니다.", Toast.LENGTH_SHORT).show() +// return +// } +// +// val userDB = SongDatabase.getInstance(this)!! +// userDB.userDao().insert(getUser()) +// +// val users = userDB.userDao().getUsers() +// +// Log.d("SIGNUPACT", users.toString()) +// } + + private fun signUp() { + if (binding.signupIdEt.text.toString() + .isEmpty() || binding.signupInputIdEt.text.toString().isEmpty() + ) { Toast.makeText(this, "이메일 형식이 잘못되었습니다.", Toast.LENGTH_SHORT).show() return } - if(binding.signupPasswordEt.text.toString() != binding.signupPwCheckEt.text.toString()){ + + if (binding.signupPasswordEt.text.toString() != binding.signupPwCheckEt.text.toString()) { Toast.makeText(this, "비밀번호가 일치하지 않습니다.", Toast.LENGTH_SHORT).show() return } - val userDB = SongDatabase.getInstance(this)!! - userDB.userDao().insert(getUser()) + val authService = getRetrofit().create(AuthRetrofitInterface::class.java) + authService.signUp(getUser()).enqueue(object: Callback{ + override fun onResponse( + call: Call, + response: Response + ) { + Log.d("SIGNUP/SUCCESS", "Hello, FLO") + val resp: AuthResponse = response.body()!! + when(resp.code){ + "COMMON201" -> finish() + "AUTH400_1" -> { + binding.signUpEmailErrorTv.visibility = View.VISIBLE + binding.signUpEmailErrorTv.text = resp.message + } + } + } - val user = userDB.userDao().getUsers() - Log.d("SIGNUPACT", user.toString()) + override fun onFailure( + call: Call, + t: Throwable + ) { + Log.d("SIGNUP/FAILURE", "Hello, FLO") + } + + }) + + + Log.d("SIGNUP-ACT/ASYNC", "Hello, FLO") } + } \ No newline at end of file diff --git a/app/src/main/java/com/keder/flo/User.kt b/app/src/main/java/com/keder/flo/User.kt new file mode 100644 index 0000000..9128d44 --- /dev/null +++ b/app/src/main/java/com/keder/flo/User.kt @@ -0,0 +1,14 @@ +package com.keder.flo + +import androidx.room.Entity +import androidx.room.PrimaryKey +import com.google.gson.annotations.SerializedName + +@Entity(tableName = "UserTable") +data class User( + @SerializedName(value="email") var email : String, + @SerializedName(value="pasword") var password : String, + @SerializedName(value="name") var name : String, +){ + @PrimaryKey(autoGenerate = true) var id : Int = 0 +} diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml index ce9be7c..2baf7be 100644 --- a/app/src/main/res/layout/activity_signup.xml +++ b/app/src/main/res/layout/activity_signup.xml @@ -89,6 +89,43 @@ app:layout_constraintEnd_toEndOf="@id/signup_input_id_et" app:layout_constraintTop_toTopOf="@id/signup_input_id_et"/> + + + + + + + + app:layout_constraintTop_toBottomOf="@id/sign_up_name_underscore_view"/>