Skip to content

Commit 3a3fd3b

Browse files
committed
출석 시작, 종료 api 완료
1 parent f8150f3 commit 3a3fd3b

25 files changed

+245
-45
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ dependencies {
6666
// retrofit2
6767
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
6868
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
69-
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
69+
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'
7070
implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2'
7171

7272
// gson

app/src/main/java/com/ddd/attendance/check/api/ApiService.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.ddd.attendance.check.api
22

3+
import com.ddd.attendance.check.model.Attendance
34
import com.ddd.attendance.check.model.LoginResponse
45
import kotlinx.coroutines.Deferred
56
import retrofit2.Response
@@ -12,4 +13,10 @@ interface ApiService {
1213
@FormUrlEncoded
1314
@POST("/auth/login")
1415
fun login(@Field("account") id: String, @Field("password") password: String): Deferred<Response<LoginResponse>>
16+
17+
@POST("/attends/start")
18+
fun attendsStart(): Deferred<Response<Attendance>>
19+
20+
@POST("/attends/end")
21+
fun attendsEnd(): Deferred<Response<Attendance>>
1522
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.ddd.attendance.check.common
2+
3+
enum class AttendanceStatus {
4+
START, STOP
5+
}

app/src/main/java/com/ddd/attendance/check/common/DDDDialog.kt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,42 @@ import android.graphics.drawable.ColorDrawable
77
import android.os.Bundle
88
import android.util.DisplayMetrics
99
import android.view.ViewGroup
10+
import androidx.core.content.ContextCompat
11+
import com.ddd.attendance.check.R
1012
import kotlinx.android.synthetic.main.dialog_ddd.*
1113

1214

13-
class DDDDialog(context: Context, userType: UserType) : Dialog(context) {
15+
class DDDDialog(context: Context, private val data: Pair<UserType, String>) : Dialog(context) {
1416
private lateinit var dddDialogEventListener: DDDDialogEventListener
1517
override fun onCreate(savedInstanceState: Bundle?) {
1618
super.onCreate(savedInstanceState)
1719
window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
1820
setContentView(com.ddd.attendance.check.R.layout.dialog_ddd)
19-
val metrics = DisplayMetrics()
20-
window?.windowManager?.defaultDisplay?.getMetrics(metrics)
21-
val width = (metrics.widthPixels * 0.8).toInt()
22-
window?.setLayout(width, ViewGroup.LayoutParams.WRAP_CONTENT)
2321

22+
setInitView()
23+
setBackGround()
24+
25+
tvMessage.text = data.second
2426
btnOK.setOnClickListener {
2527
dddDialogEventListener.onClick(this)
2628
dismiss()
2729
}
2830
}
2931

32+
private fun setInitView() {
33+
val metrics = DisplayMetrics()
34+
window?.windowManager?.defaultDisplay?.getMetrics(metrics)
35+
val width = (metrics.widthPixels * 0.8).toInt()
36+
window?.setLayout(width, ViewGroup.LayoutParams.WRAP_CONTENT)
37+
}
38+
39+
private fun setBackGround() {
40+
linearDialog.background = ContextCompat.getDrawable(
41+
context,
42+
if (data.first == UserType.BASIC) R.drawable.dialog_ddd_background else R.drawable.dialog_ddd_background_admin
43+
)
44+
}
45+
3046
fun setDialogListener(dddDialogEventListener: DDDDialogEventListener): DDDDialog {
3147
this.dddDialogEventListener = dddDialogEventListener
3248
return this
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.ddd.attendance.check.data.repository
2+
3+
import com.ddd.attendance.check.data.Repository
4+
import com.ddd.attendance.check.data.source.attendance.AttendanceRemoteDataSource
5+
import com.ddd.attendance.check.model.Attendance
6+
import retrofit2.Response
7+
import javax.inject.Inject
8+
9+
class AttendanceRepository @Inject constructor(private val attendanceRemoteDataSource: AttendanceRemoteDataSource) :
10+
Repository {
11+
suspend fun attendanceStart(): Response<Attendance> {
12+
return attendanceRemoteDataSource.attendanceStart()
13+
}
14+
15+
suspend fun attendsEnd(): Response<Attendance> {
16+
return attendanceRemoteDataSource.attendsEnd()
17+
}
18+
}

app/src/main/java/com/ddd/attendance/check/data/LoginRepository.kt renamed to app/src/main/java/com/ddd/attendance/check/data/repository/LoginRepository.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package com.ddd.attendance.check.data
1+
package com.ddd.attendance.check.data.repository
22

3+
import com.ddd.attendance.check.data.Repository
34
import com.ddd.attendance.check.data.source.login.LoginRemoteDataSource
45
import com.ddd.attendance.check.model.LoginResponse
56
import retrofit2.Response

app/src/main/java/com/ddd/attendance/check/data/UserRepository.kt renamed to app/src/main/java/com/ddd/attendance/check/data/repository/UserRepository.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
package com.ddd.attendance.check.data
1+
package com.ddd.attendance.check.data.repository
22

3+
import com.ddd.attendance.check.data.Repository
34
import com.ddd.attendance.check.data.source.user.UserLocalDataSource
45
import com.ddd.attendance.check.db.entity.User
56
import javax.inject.Inject
67

7-
class UserRepository @Inject constructor(private val userLocalDataSource: UserLocalDataSource) : Repository {
8+
class UserRepository @Inject constructor(private val userLocalDataSource: UserLocalDataSource) :
9+
Repository {
810
suspend fun saveUsers(user: User) {
911
userLocalDataSource.saveUser(user)
1012
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.ddd.attendance.check.data.source.attendance
2+
3+
class AttendanceLocalDataSource
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.ddd.attendance.check.data.source.attendance
2+
3+
import com.ddd.attendance.check.api.ApiService
4+
import com.ddd.attendance.check.model.Attendance
5+
import retrofit2.Response
6+
7+
class AttendanceRemoteDataSource(private val apiService: ApiService) {
8+
suspend fun attendanceStart(): Response<Attendance> {
9+
return apiService.attendsStart().await()
10+
}
11+
12+
suspend fun attendsEnd(): Response<Attendance> {
13+
return apiService.attendsEnd().await()
14+
}
15+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
package com.ddd.attendance.check.data.source.login
2+

0 commit comments

Comments
 (0)