Skip to content

Commit

Permalink
chore: fix ktlint
Browse files Browse the repository at this point in the history
  • Loading branch information
stepan662 committed Jul 4, 2024
1 parent e2e67fb commit d43c50c
Show file tree
Hide file tree
Showing 12 changed files with 117 additions and 103 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class TaskController(
private val taskService: TaskService,
private val taskModelAssembler: TaskModelAssembler,
private val pagedResourcesAssembler: PagedResourcesAssembler<Task>,
private val projectHolder: ProjectHolder
private val projectHolder: ProjectHolder,
) {
@GetMapping("")
@Operation(summary = "Get tasks")
Expand All @@ -59,7 +59,6 @@ class TaskController(
return taskModelAssembler.toModel(task)
}


@PutMapping("/{taskId}")
@Operation(summary = "Update task")
@UseDefaultPermissions
Expand All @@ -73,5 +72,4 @@ class TaskController(
val task = taskService.updateTask(projectHolder.projectEntity, taskId, dto)
return taskModelAssembler.toModel(task)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import org.springframework.hateoas.server.core.Relation
import java.util.*

@Relation(collectionRelation = "tasks", itemRelation = "task")
class TaskModel (
class TaskModel(
var id: Long = 0L,
var name: String = "",
var description: String = "",
var type: TaskType = TaskType.TRANSLATE,
var language: LanguageModel,
var dueDate: Date? = null,
var assignees: MutableSet<UserAccountModel> = mutableSetOf()
): RepresentationModel<TaskModel>() {}
var assignees: MutableSet<UserAccountModel> = mutableSetOf(),
) : RepresentationModel<TaskModel>()
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,26 @@ class TaskModelAssembler(
private val userAccountModelAssembler: UserAccountModelAssembler,
private val languageModelAssembler: LanguageModelAssembler,
) : RepresentationModelAssemblerSupport<Task, TaskModel>(
TaskController::class.java,
TaskModel::class.java
) {
TaskController::class.java,
TaskModel::class.java,
) {
override fun toModel(entity: Task): TaskModel {
return TaskModel(
id = entity.id,
name = entity.name,
description = entity.description,
type = entity.type,
language = entity.language.let {
languageModelAssembler.toModel(
LanguageDto.fromEntity(
it,
entity.project.baseLanguage?.id
language =
entity.language.let {
languageModelAssembler.toModel(
LanguageDto.fromEntity(
it,
entity.project.baseLanguage?.id,
),
)
)
},
},
dueDate = entity.dueDate,
assignees = entity.assignees.map { userAccountModelAssembler.toModel(it) }.toMutableSet()
assignees = entity.assignees.map { userAccountModelAssembler.toModel(it) }.toMutableSet(),
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,19 @@ class TaskControllerTest : ProjectAuthControllerTest("/v2/projects/") {
@Test
@ProjectJWTAuthTestMethod
fun `creates new task`() {
performProjectAuthPost("tasks", CreateTaskRequest(
name = "Another task",
description = "...",
type = TaskType.TRANSLATE,
languageId = testData.englishLanguage.id,
assignees = mutableListOf(
testData.orgMember.self.id
)
)).andAssertThatJson {
performProjectAuthPost(
"tasks",
CreateTaskRequest(
name = "Another task",
description = "...",
type = TaskType.TRANSLATE,
languageId = testData.englishLanguage.id,
assignees =
mutableListOf(
testData.orgMember.self.id,
),
),
).andAssertThatJson {
node("id").isNumber
node("name").isEqualTo("Another task")
node("assignees[0].name").isEqualTo(testData.orgMember.self.name)
Expand All @@ -64,41 +68,51 @@ class TaskControllerTest : ProjectAuthControllerTest("/v2/projects/") {
@Test
@ProjectJWTAuthTestMethod
fun `fails to create task with assignee from different project`() {
performProjectAuthPost("tasks", CreateTaskRequest(
name = "Another task",
description = "...",
type = TaskType.TRANSLATE,
languageId = testData.englishLanguage.id,
assignees = mutableListOf(
testData.unrelatedUser.self.id
)
)).andIsBadRequest.andAssertThatJson {
performProjectAuthPost(
"tasks",
CreateTaskRequest(
name = "Another task",
description = "...",
type = TaskType.TRANSLATE,
languageId = testData.englishLanguage.id,
assignees =
mutableListOf(
testData.unrelatedUser.self.id,
),
),
).andIsBadRequest.andAssertThatJson {
node("code").isEqualTo(Message.USER_HAS_NO_PROJECT_ACCESS)
}
}

@Test
@ProjectJWTAuthTestMethod
fun `fails to create task with language from different project`() {
performProjectAuthPost("tasks", CreateTaskRequest(
name = "Another task",
description = "...",
type = TaskType.TRANSLATE,
languageId = testData.unrelatedEnglish.self.id,
assignees = mutableListOf()
)).andIsBadRequest.andAssertThatJson {
performProjectAuthPost(
"tasks",
CreateTaskRequest(
name = "Another task",
description = "...",
type = TaskType.TRANSLATE,
languageId = testData.unrelatedEnglish.self.id,
assignees = mutableListOf(),
),
).andIsBadRequest.andAssertThatJson {
node("code").isEqualTo(Message.LANGUAGE_NOT_FROM_PROJECT)
}
}

@Test
@ProjectJWTAuthTestMethod
fun `updates existing task`() {
performProjectAuthPut("tasks/${testData.createdTask.self.id}", UpdateTaskRequest(
name = "Updated task",
description = "updated description",
assignees = mutableListOf()
)).andIsOk.andAssertThatJson {
performProjectAuthPut(
"tasks/${testData.createdTask.self.id}",
UpdateTaskRequest(
name = "Updated task",
description = "updated description",
assignees = mutableListOf(),
),
).andIsOk.andAssertThatJson {
node("id").isEqualTo(testData.createdTask.self.id)
node("name").isEqualTo("Updated task")
node("description").isEqualTo("updated description")
Expand All @@ -109,9 +123,12 @@ class TaskControllerTest : ProjectAuthControllerTest("/v2/projects/") {
@Test
@ProjectJWTAuthTestMethod
fun `fails when updating assignees to non-members`() {
performProjectAuthPut("tasks/${testData.createdTask.self.id}", UpdateTaskRequest(
assignees = mutableListOf(testData.unrelatedUser.self.id)
)).andIsBadRequest.andAssertThatJson {
performProjectAuthPut(
"tasks/${testData.createdTask.self.id}",
UpdateTaskRequest(
assignees = mutableListOf(testData.unrelatedUser.self.id),
),
).andIsBadRequest.andAssertThatJson {
node("code").isEqualTo(Message.USER_HAS_NO_PROJECT_ACCESS)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ enum class Message {
SLACK_NOT_CONFIGURED,
SLACK_WORKSPACE_ALREADY_CONNECTED,
SLACK_CONNECTION_ERROR,
TASK_NOT_FOUND
TASK_NOT_FOUND,
;

val code: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import io.tolgee.model.task.Task
class TaskBuilder(
val projectBuilder: ProjectBuilder,
) : EntityDataBuilder<Task, TaskBuilder> {
override var self: Task = Task().apply {
this.project = projectBuilder.self
}
override var self: Task =
Task().apply {
this.project = projectBuilder.self
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,23 @@ class TaskTestData : BaseTestData("tagsTestUser", "tagsTestProject") {
}
}


projectBuilder.apply {
addPermission {
user = projectUser.self
type = ProjectPermissionType.EDIT
}

createdTask = addTask {
name = "New task"
type = TaskType.TRANSLATE
assignees = mutableSetOf(
projectUser.self,
)
project = projectBuilder.self
language = englishLanguage
}
createdTask =
addTask {
name = "New task"
type = TaskType.TRANSLATE
assignees =
mutableSetOf(
projectUser.self,
)
project = projectBuilder.self
language = englishLanguage
}
}

unrelatedOrg.self.apply {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,33 @@
package io.tolgee.dtos.request.task

import io.swagger.v3.oas.annotations.media.Schema
import io.tolgee.dtos.request.LanguageRequest
import io.tolgee.model.enums.TaskType
import jakarta.persistence.EnumType
import jakarta.persistence.Enumerated
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotEmpty
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size

data class CreateTaskRequest(
@field:NotBlank
@field:Size(min = 3, max = 255)
var name: String = "",

@field:NotBlank
@field:Size(min = 0, max = 2000)
var description: String = "",

@Enumerated(EnumType.STRING)
val type: TaskType,

@Schema(
description = "Due to date in epoch format (milliseconds).",
example = "1661172869000",
)
var dueDate: Long? = null,

@Schema(
description = "Id of language, this task is attached to.",
example = "1",
)
@field:NotNull
var languageId: Long? = null,

@field:NotNull
var assignees: List<Long>? = null,
)
Original file line number Diff line number Diff line change
@@ -1,24 +1,17 @@
package io.tolgee.dtos.request.task

import io.swagger.v3.oas.annotations.media.Schema
import io.tolgee.model.enums.TaskType
import jakarta.persistence.EnumType
import jakarta.persistence.Enumerated
import jakarta.validation.constraints.Size

data class UpdateTaskRequest(
@field:Size(min = 3, max = 255)
var name: String? = null,

@field:Size(min = 0, max = 2000)
var description: String? = null,

@Schema(
description = "Due to date in epoch format (milliseconds).",
example = "1661172869000",
)
var dueDate: Long? = null,

var assignees: List<Long>? = null,
)

3 changes: 1 addition & 2 deletions backend/data/src/main/kotlin/io/tolgee/model/task/Task.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,12 @@ import jakarta.persistence.*
import jakarta.validation.constraints.Size
import java.util.*


@Entity
@IdClass(TaskId::class)
class Task {
@Id
@ManyToOne(fetch = FetchType.LAZY)
var project: Project = Project() // Initialize to avoid null issues
var project: Project = Project() // Initialize to avoid null issues

@Id
var id: Long = 1L
Expand Down
9 changes: 3 additions & 6 deletions backend/data/src/main/kotlin/io/tolgee/model/task/TaskId.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,11 @@ package io.tolgee.model.task

import io.tolgee.model.Project
import jakarta.persistence.FetchType
import jakarta.persistence.GeneratedValue
import jakarta.persistence.GenerationType
import jakarta.persistence.ManyToOne
import java.io.Serializable

data class TaskId (
data class TaskId(
@ManyToOne(fetch = FetchType.LAZY)
var project: Project = Project(), // Initialize to avoid null issues

var id: Long = 1L
var project: Project,
var id: Long = 1L,
) : Serializable
Loading

0 comments on commit d43c50c

Please sign in to comment.