Skip to content

Commit 8f0c1e8

Browse files
committed
Feature: Add feature to get sealed user by userId
1 parent 624533e commit 8f0c1e8

4 files changed

Lines changed: 42 additions & 4 deletions

File tree

src/main/kotlin/com/mptsix/todaydiary/controller/UserController.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,11 @@ class UserController(
100100
userService.findUserByName(userToken, targetName)
101101
)
102102
}
103+
104+
@GetMapping("/api/v1/user/sealed/{userId}")
105+
fun getSealedUserById(@RequestHeader header: HttpHeaders, @PathVariable("userId") userId: String): ResponseEntity<UserSealed> {
106+
return ResponseEntity.ok(
107+
userService.getSealedUserById(userId)
108+
)
109+
}
103110
}

src/main/kotlin/com/mptsix/todaydiary/service/UserService.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,17 @@ class UserService(
186186
}
187187
}
188188

189+
fun getSealedUserById(userId: String): UserSealed {
190+
val user: User = userRepository.findByUserId(userId)
191+
192+
return UserSealed(
193+
userId = user.userId,
194+
userName = user.userName,
195+
journalCategoryList = createJournalCategoryList(user.userId),
196+
journalList = createJournalSealedList(user)
197+
)
198+
}
199+
189200
private fun createJournalCategoryList(userId: String): List<JournalCategoryResponse> {
190201
return enumValues<JournalCategory>().map {
191202
JournalCategoryResponse(

src/test/kotlin/com/mptsix/todaydiary/controller/UserControllerTest.kt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@ package com.mptsix.todaydiary.controller
33
import com.mptsix.todaydiary.data.request.LoginRequest
44
import com.mptsix.todaydiary.data.request.PasswordChangeRequest
55
import com.mptsix.todaydiary.data.request.UserRegisterRequest
6-
import com.mptsix.todaydiary.data.response.JournalResponse
7-
import com.mptsix.todaydiary.data.response.LoginResponse
8-
import com.mptsix.todaydiary.data.response.UserFiltered
9-
import com.mptsix.todaydiary.data.response.UserRegisterResponse
6+
import com.mptsix.todaydiary.data.response.*
107
import com.mptsix.todaydiary.data.user.User
118
import com.mptsix.todaydiary.data.user.journal.Journal
129
import com.mptsix.todaydiary.data.user.journal.JournalCategory
@@ -277,4 +274,18 @@ internal class UserControllerTest {
277274
assertThat(responseEntity.hasBody()).isEqualTo(true)
278275
assertThat(responseEntity.body!!.size).isEqualTo(0)
279276
}
277+
278+
@Test
279+
fun is_getSealedUserById_works_well() {
280+
val loginToken: String = loginUser()
281+
val url: String = "${serverUrl}/api/v1/user/sealed/KangDroid"
282+
val httpHeaders: HttpHeaders = HttpHeaders().apply {
283+
put("X-AUTH-TOKEN", listOf(loginToken))
284+
}
285+
286+
val responseEntity: ResponseEntity<UserSealed> =
287+
restTemplate.exchange(url, HttpMethod.GET, HttpEntity<Unit>(httpHeaders))
288+
289+
assertThat(responseEntity.statusCode).isEqualTo(HttpStatus.OK)
290+
}
280291
}

src/test/kotlin/com/mptsix/todaydiary/service/UserServiceTest.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,4 +412,13 @@ internal class UserServiceTest {
412412
assertThat(it[0].userName).isEqualTo("test2")
413413
}
414414
}
415+
416+
@Test
417+
fun is_getSealedUserById_works_well() {
418+
registerUser("test")
419+
420+
val sealedUser: UserSealed = userService.getSealedUserById("test")
421+
422+
assertThat(sealedUser.userName).isEqualTo("test")
423+
}
415424
}

0 commit comments

Comments
 (0)