Skip to content

Commit 2505cce

Browse files
authored
logEvent() 수정 및 DTO version 프로퍼티 추가 (#26)
* chore: DTO에 version 추가 * chore: logEvent "name"으로 변경 * chore: Timestamp 수정 * chore: 자잘한 수정 * version 0.1.1 * chore: timestamp desugaring 삭제 * 테스트 url 삭제
1 parent 310fa01 commit 2505cce

File tree

8 files changed

+28
-13
lines changed

8 files changed

+28
-13
lines changed

version.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
versionName=0.1.0
1+
versionName=0.1.1

yls/build.gradle.kts

-3
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ android {
3737
compileOptions {
3838
sourceCompatibility = JavaVersion.VERSION_17
3939
targetCompatibility = JavaVersion.VERSION_17
40-
isCoreLibraryDesugaringEnabled = true
4140
}
4241
kotlinOptions {
4342
jvmTarget = "17"
@@ -72,8 +71,6 @@ dependencies {
7271
testImplementation("junit:junit:4.13.2")
7372
androidTestImplementation("androidx.test.ext:junit:1.1.5")
7473
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
75-
76-
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")
7774
}
7875

7976
tasks.withType<DokkaTask>().configureEach {

yls/src/androidTest/kotlin/com/yourssu/logging/system/WorkerTest.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class WorkerTest {
4141
val eventData = YLSEventData(
4242
hashedId = "aaaabbbbccccddddaaaabbbbccccdddd",
4343
timestamp = "2023-12-04T10:30:00Z",
44+
version = 1,
4445
event = mapOf("platform" to "android", "event" to "AppInitialEntry"),
4546
)
4647

@@ -49,7 +50,7 @@ class WorkerTest {
4950
val worker = TestListenableWorkerBuilder<RemoteLoggingWorker>(
5051
context = context,
5152
inputData = workDataOf(
52-
RemoteLoggingWorker.KEY_LOGGING_URL to "http://52.78.169.59:8085/",
53+
RemoteLoggingWorker.KEY_LOGGING_URL to "your api url",
5354
RemoteLoggingWorker.KEY_LOGGING_SINGLE_DATA to json,
5455
),
5556
).build()
@@ -66,6 +67,7 @@ class WorkerTest {
6667
YLSEventData(
6768
hashedId = "aaaabbbbccccddddaaaabbbbccccdddd",
6869
timestamp = "2023-12-04T10:30:00Z",
70+
version = 1,
6971
event = mapOf("platform" to "android", "event" to "AppInitialEntry"),
7072
),
7173
)

yls/src/main/kotlin/com/yourssu/logging/system/Util.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ fun YLS.Facade.logEvent(
44
eventName: String,
55
vararg extra: Pair<String, Any>,
66
) {
7-
YLS.log("event" to eventName, *extra)
7+
YLS.log("name" to eventName, *extra)
88
}
99

1010
fun YLS.Facade.logAppInit(vararg extra: Pair<String, Any>) {

yls/src/main/kotlin/com/yourssu/logging/system/YLS.kt

+16-2
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
package com.yourssu.logging.system
22

3+
import android.annotation.SuppressLint
34
import android.content.Context
5+
import android.os.Build
46
import android.util.Log
57
import androidx.work.OneTimeWorkRequestBuilder
68
import androidx.work.WorkManager
79
import androidx.work.workDataOf
810
import com.google.gson.Gson
911
import com.yourssu.logging.system.remote.RemoteLoggingWorker
1012
import java.security.MessageDigest
13+
import java.text.SimpleDateFormat
1114
import java.time.OffsetDateTime
1215
import java.time.ZoneOffset
1316
import java.time.format.DateTimeFormatter
17+
import java.util.Date
18+
import java.util.TimeZone
1419

1520
/**
1621
* Yourssu Logging System, inspired by [Timber](https://github.com/JakeWharton/timber)
@@ -222,11 +227,20 @@ class YLS private constructor() {
222227
/**
223228
* 현재 시각을 ISO 8601 포맷의 문자열을 반환합니다.
224229
*
230+
* "yyyy-MM-dd'T'HH:mm:ss'Z'"
231+
*
225232
* @return ISO 8601 format string of current
226233
*/
234+
@SuppressLint("SimpleDateFormat")
227235
fun getTimestamp(): String {
228-
return OffsetDateTime.now(ZoneOffset.UTC)
229-
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'"))
236+
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
237+
OffsetDateTime.now(ZoneOffset.UTC)
238+
.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
239+
} else {
240+
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").apply {
241+
timeZone = TimeZone.getTimeZone("UTC")
242+
}.format(Date())
243+
}
230244
}
231245

232246
/** SHA-256 알고리즘으로 `origin`을 암호화 한 문자열을 반환합니다. */

yls/src/main/kotlin/com/yourssu/logging/system/remote/Dto.kt

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ fun YLSEventData.toLoggingRequest(): LoggingRequest {
77
return LoggingRequest(
88
hashedId = hashedId,
99
timestamp = timestamp,
10+
version = version,
1011
event = event,
1112
)
1213
}
@@ -16,6 +17,8 @@ data class LoggingRequest(
1617
val hashedId: String,
1718
@SerializedName("timestamp")
1819
val timestamp: String,
20+
@SerializedName("version")
21+
val version: Int,
1922
@SerializedName("event")
2023
val event: Map<String, Any>,
2124
)

yls/src/main/kotlin/com/yourssu/logging/system/remote/RemoteLoggingWorker.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.coroutines.withContext
1111
import retrofit2.Retrofit
1212
import retrofit2.converter.gson.GsonConverterFactory
1313

14-
internal class RemoteLoggingWorker(
14+
class RemoteLoggingWorker(
1515
appContext: Context,
1616
params: WorkerParameters,
1717
) : CoroutineWorker(appContext, params) {

yls/src/test/kotlin/com/yourssu/logging/system/ApiTest.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ class ApiTest {
3131
.build()
3232

3333
retrofit = Retrofit.Builder()
34-
.baseUrl("http://52.78.169.59:8085/") // 실제 Api 테스트
35-
// .baseUrl(server.url("/")) // 가짜 Response 테스트
34+
.baseUrl(server.url("/")) // 가짜 Response 테스트
3635
.addConverterFactory(GsonConverterFactory.create())
3736
.client(client)
3837
.build()
@@ -46,7 +45,7 @@ class ApiTest {
4645

4746
val eventData = YLSEventData(
4847
hashedId = "testtest",
49-
timestamp = "2023-12-04T10:30:00Z",
48+
timestamp = YLS.getTimestamp(),
5049
version = 1,
5150
event = mapOf("event" to "test"),
5251
)
@@ -63,7 +62,7 @@ class ApiTest {
6362
val eventDataList = listOf(
6463
YLSEventData(
6564
hashedId = "testtest",
66-
timestamp = "2023-12-04T10:30:00Z",
65+
timestamp = YLS.getTimestamp(),
6766
version = 1,
6867
event = mapOf("event" to "test"),
6968
),

0 commit comments

Comments
 (0)