앱에서도 새로운 요청을 위한 인터페이스 추가를 먼저 해주었습니다.
loginService.kt
데이터는 같은 클래스를 이용해 통신할 예정이기 때문에 새로 추가하지는 않았습니다.
interface loginService{
@POST("/login")
fun requestLogin( //인풋
@Body jsonparams: Login
) : Call<LoginResult> //아웃풋
}
interface signupService{
@POST("/signup")
fun requestLogin( //인풋
@Body jsonparams: Login
) : Call<LoginResult> //아웃풋
}
interface idCheckService{
@POST("/idcheck")
fun requestLogin( //인풋
@Body jsonparams: Login
) : Call<LoginResult> //아웃풋
}
그리고 회원가입 페이지를 만들고 로그인 화면에서 회원가입 버튼을 만들어 화면을 넘기는 방식으로 만들었습니다.
MainActivity.kt
btn2.setOnClickListener {
var intent : Intent = Intent(this,SingupActivity::class.java)
startActivity(intent)
}
SignupActivity.kt
ID중복확인요청
//아이디 중복확인
btn_id.setOnClickListener {
var loginService = retrofit.create(idCheckService::class.java)
var id = et_id.text.toString()
val builder = AlertDialog.Builder(this)
loginService.requestLogin(Login(id)).enqueue(object : Callback<LoginResult> {
override fun onResponse(call: Call<LoginResult>, response: Response<LoginResult>) {
var login = response.body()
var dialog = AlertDialog.Builder(this@SingupActivity)
dialog.setTitle("ID중복확인")
if(login?.msg != null){
dialog.setMessage("입력하신 ID는 이미 존재하는 ID입니다.")
et_id.setText("")
}else{
dialog.setMessage("사용가능한 ID입니다.")
dialog.setPositiveButton("확인") { dialogInterface: DialogInterface, i: Int ->
check_id = true
}
}
dialog.show()
}
override fun onFailure(call: Call<LoginResult>, t: Throwable) {
var dialog = AlertDialog.Builder(this@SingupActivity)
Log.d("abcd",t.message.toString())
dialog.setTitle("실패")
dialog.setMessage("$id")
dialog.show()
}
})
}
회원가입 요청
//회원가입
btn_signup.setOnClickListener {
var id = et_id.text.toString()
var pwd = et_pw.text.toString()
var loginService = retrofit.create(signupService::class.java)
if(id != "" && pwd != ""){
if(check_id){
var data = Login(id,pwd)
loginService.requestLogin(data).enqueue(object : Callback<LoginResult> {
override fun onResponse(call: Call<LoginResult>, response: Response<LoginResult>) {
var login = response.body()
var dialog = AlertDialog.Builder(this@SingupActivity)
dialog.setTitle("성공")
dialog.setMessage("id : ${login?.id}, pw:${login?.pwd},msg : ${login?.msg}")
dialog.setPositiveButton("확인") { dialogInterface: DialogInterface, i: Int ->
var intent : Intent = Intent(baseContext,MainActivity::class.java)
startActivity(intent)
}
dialog.show()
}
override fun onFailure(call: Call<LoginResult>, t: Throwable) {
var dialog = AlertDialog.Builder(this@SingupActivity)
Log.d("abcd",t.message.toString())
dialog.setTitle("실패")
dialog.setMessage("$id,$pwd")
dialog.show()
}
})
}else{
val builder = AlertDialog.Builder(this)
builder.setTitle("ID중복확인")
builder.setMessage("ID 중복 확인을 해주세요")
builder.setPositiveButton("확인") { dialogInterface: DialogInterface, i: Int ->
}
builder.show()
}
}else{
val builder = AlertDialog.Builder(this)
builder.setTitle("회원가입")
builder.setMessage("ID 또는 Password를 입력해주세요")
builder.setPositiveButton("확인") { dialogInterface: DialogInterface, i: Int ->
}
builder.show()
}
}
이렇게 회원가입도 완성했습니다.
'MVC 게시판' 카테고리의 다른 글
Oauth 카카오로그인 웹 (0) | 2022.01.10 |
---|---|
Oauth 카카오 로그인 앱 (0) | 2022.01.10 |
회원가입-2 (0) | 2022.01.06 |
회원가입-1 (0) | 2022.01.06 |
로그인-5 (0) | 2022.01.03 |