-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #15 from Lukinhasssss/feature/video-aggregate
Automated PR from feature/video-aggregate
- Loading branch information
Showing
49 changed files
with
2,218 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,6 +16,7 @@ build/ | |
out/ | ||
!**/src/main/**/out/ | ||
!**/src/test/**/out/ | ||
.run/ | ||
|
||
### Eclipse ### | ||
.apt_generated | ||
|
2 changes: 1 addition & 1 deletion
2
application/src/main/kotlin/com/lukinhasssss/catalogo/application/UnitUseCase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
package com.lukinhasssss.catalogo.application | ||
|
||
abstract class UnitUseCase<IN> { | ||
abstract fun execute(anIn: IN) | ||
abstract fun execute(input: IN) | ||
} |
2 changes: 1 addition & 1 deletion
2
application/src/main/kotlin/com/lukinhasssss/catalogo/application/UseCase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
package com.lukinhasssss.catalogo.application | ||
|
||
abstract class UseCase<IN, OUT> { | ||
abstract fun execute(anIn: IN): OUT | ||
abstract fun execute(input: IN): OUT | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
...tlin/com/lukinhasssss/catalogo/application/castmember/get/GetAllCastMembersByIdUseCase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
package com.lukinhasssss.catalogo.application.castmember.get | ||
|
||
import com.lukinhasssss.catalogo.application.UseCase | ||
import com.lukinhasssss.catalogo.domain.castmember.CastMember | ||
import com.lukinhasssss.catalogo.domain.castmember.CastMemberGateway | ||
import com.lukinhasssss.catalogo.domain.castmember.CastMemberType | ||
|
||
class GetAllCastMembersByIdUseCase( | ||
private val castMemberGateway: CastMemberGateway | ||
) : UseCase<GetAllCastMembersByIdUseCase.Input, List<GetAllCastMembersByIdUseCase.Output>>() { | ||
|
||
override fun execute(input: Input): List<Output> = | ||
if (input.ids.isEmpty()) { | ||
emptyList() | ||
} else { | ||
castMemberGateway.findAllById(input.ids).map { Output(it) } | ||
} | ||
|
||
data class Input( | ||
val ids: Set<String> = emptySet() | ||
) | ||
|
||
data class Output( | ||
val id: String, | ||
val name: String, | ||
val type: CastMemberType, | ||
val createdAt: String, | ||
val updatedAt: String | ||
) { | ||
constructor(castMember: CastMember) : this( | ||
id = castMember.id, | ||
name = castMember.name, | ||
type = castMember.type, | ||
createdAt = castMember.createdAt.toString(), | ||
updatedAt = castMember.updatedAt.toString() | ||
) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
35 changes: 35 additions & 0 deletions
35
.../kotlin/com/lukinhasssss/catalogo/application/category/get/GetAllCategoriesByIdUseCase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
package com.lukinhasssss.catalogo.application.category.get | ||
|
||
import com.lukinhasssss.catalogo.application.UseCase | ||
import com.lukinhasssss.catalogo.domain.category.Category | ||
import com.lukinhasssss.catalogo.domain.category.CategoryGateway | ||
|
||
class GetAllCategoriesByIdUseCase( | ||
private val categoryGateway: CategoryGateway | ||
) : UseCase<GetAllCategoriesByIdUseCase.Input, List<GetAllCategoriesByIdUseCase.Output>>() { | ||
|
||
override fun execute(input: Input): List<Output> = | ||
if (input.ids.isEmpty()) { | ||
emptyList() | ||
} else { | ||
categoryGateway.findAllById(input.ids).map { Output(it) } | ||
} | ||
|
||
data class Input( | ||
val ids: Set<String> = emptySet() | ||
) | ||
|
||
data class Output( | ||
val id: String, | ||
val name: String, | ||
val createdAt: String, | ||
val updatedAt: String | ||
) { | ||
constructor(category: Category) : this( | ||
id = category.id, | ||
name = category.name, | ||
createdAt = category.createdAt.toString(), | ||
updatedAt = category.updatedAt.toString() | ||
) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
...rc/main/kotlin/com/lukinhasssss/catalogo/application/genre/get/GetAllGenresByIdUseCase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package com.lukinhasssss.catalogo.application.genre.get | ||
|
||
import com.lukinhasssss.catalogo.application.UseCase | ||
import com.lukinhasssss.catalogo.domain.genre.Genre | ||
import com.lukinhasssss.catalogo.domain.genre.GenreGateway | ||
import java.time.Instant | ||
|
||
class GetAllGenresByIdUseCase( | ||
private val genreGateway: GenreGateway | ||
) : UseCase<GetAllGenresByIdUseCase.Input, List<GetAllGenresByIdUseCase.Output>>() { | ||
|
||
override fun execute(input: Input): List<Output> = | ||
if (input.ids.isEmpty()) { | ||
emptyList() | ||
} else { | ||
genreGateway.findAllById(input.ids).map { Output(it) } | ||
} | ||
|
||
data class Input( | ||
val ids: Set<String> = emptySet() | ||
) | ||
|
||
data class Output( | ||
val id: String, | ||
val name: String, | ||
val active: Boolean, | ||
val categories: Set<String> = setOf(), | ||
val createdAt: Instant, | ||
val updatedAt: Instant, | ||
val deletedAt: Instant? = null | ||
) { | ||
constructor(genre: Genre) : this( | ||
id = genre.id, | ||
name = genre.name, | ||
active = genre.isActive, | ||
categories = genre.categories, | ||
createdAt = genre.createdAt, | ||
updatedAt = genre.updatedAt, | ||
deletedAt = genre.deletedAt | ||
) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 18 additions & 0 deletions
18
.../src/main/kotlin/com/lukinhasssss/catalogo/application/video/delete/DeleteVideoUseCase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package com.lukinhasssss.catalogo.application.video.delete | ||
|
||
import com.lukinhasssss.catalogo.application.UnitUseCase | ||
import com.lukinhasssss.catalogo.domain.video.VideoGateway | ||
|
||
class DeleteVideoUseCase( | ||
private val videoGateway: VideoGateway | ||
) : UnitUseCase<DeleteVideoUseCase.Input>() { | ||
|
||
override fun execute(input: Input) = with(input) { | ||
if (this.videoId.isNullOrBlank()) return | ||
videoGateway.deleteById(this.videoId) | ||
} | ||
|
||
data class Input( | ||
val videoId: String? | ||
) | ||
} |
61 changes: 61 additions & 0 deletions
61
...cation/src/main/kotlin/com/lukinhasssss/catalogo/application/video/get/GetVideoUseCase.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
package com.lukinhasssss.catalogo.application.video.get | ||
|
||
import com.lukinhasssss.catalogo.application.UseCase | ||
import com.lukinhasssss.catalogo.domain.video.Video | ||
import com.lukinhasssss.catalogo.domain.video.VideoGateway | ||
|
||
class GetVideoUseCase( | ||
private val videoGateway: VideoGateway | ||
) : UseCase<GetVideoUseCase.Input, GetVideoUseCase.Output?>() { | ||
|
||
override fun execute(input: Input): Output? = | ||
if (input.videoId.isBlank()) null else videoGateway.findById(input.videoId)?.let { Output.from(it) } | ||
|
||
data class Input(val videoId: String) | ||
|
||
data class Output( | ||
val id: String, | ||
val title: String, | ||
val description: String, | ||
val launchedAt: Int, | ||
val duration: Double, | ||
val rating: String, | ||
val opened: Boolean, | ||
val published: Boolean, | ||
val createdAt: String, | ||
val updatedAt: String, | ||
val banner: String? = null, | ||
val thumbnail: String? = null, | ||
val thumbnailHalf: String? = null, | ||
val trailer: String? = null, | ||
val video: String? = null, | ||
val categories: Set<String> = emptySet(), | ||
val genres: Set<String> = emptySet(), | ||
val castMembers: Set<String> = emptySet() | ||
) { | ||
companion object { | ||
fun from(video: Video): Output = with(video) { | ||
Output( | ||
id = id, | ||
title = title, | ||
description = description, | ||
launchedAt = launchedAt.value, | ||
duration = duration, | ||
rating = rating.name, | ||
opened = opened, | ||
published = published, | ||
createdAt = createdAt.toString(), | ||
updatedAt = updatedAt.toString(), | ||
banner = banner, | ||
thumbnail = thumbnail, | ||
thumbnailHalf = thumbnailHalf, | ||
trailer = trailer, | ||
video = this.video, | ||
categories = categories, | ||
genres = genres, | ||
castMembers = castMembers | ||
) | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.