qa roles
This commit is contained in:
@@ -92,6 +92,17 @@ interface ItemRepository {
|
||||
suspend fun getAllLabels(): List<LabelOut>
|
||||
// [END_ENTITY: Function('getAllLabels')]
|
||||
|
||||
// [ENTITY: Function('getLabelDetails')]
|
||||
// [RELATION: Function('getLabelDetails')] -> [RETURNS] -> [DataClass('LabelOut')]
|
||||
/**
|
||||
* @summary Получает детальную информацию о метке.
|
||||
* @param labelId ID метки.
|
||||
* @return Детальная информация о метке.
|
||||
*/
|
||||
suspend fun getLabelDetails(labelId: String): LabelOut
|
||||
|
||||
// [END_ENTITY: Function('getLabelDetails')]
|
||||
|
||||
// [ENTITY: Function('createLabel')]
|
||||
// [RELATION: Function('createLabel')] -> [RETURNS] -> [DataClass('LabelSummary')]
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
// [PACKAGE] com.homebox.lens.domain.usecase
|
||||
// [FILE] GetLabelDetailsUseCase.kt
|
||||
// [SEMANTICS] business_logic, use_case, label_retrieval
|
||||
|
||||
package com.homebox.lens.domain.usecase
|
||||
|
||||
// [IMPORTS]
|
||||
import com.homebox.lens.domain.model.LabelOut
|
||||
import com.homebox.lens.domain.repository.ItemRepository
|
||||
import javax.inject.Inject
|
||||
// [END_IMPORTS]
|
||||
|
||||
// [ENTITY: UseCase('GetLabelDetailsUseCase')]
|
||||
// [RELATION: UseCase('GetLabelDetailsUseCase')] -> [DEPENDS_ON] -> [Interface('ItemRepository')]
|
||||
/**
|
||||
* @summary Получает детальную информацию о метке по ее ID.
|
||||
* @param itemRepository Репозиторий для работы с данными о метках.
|
||||
*/
|
||||
class GetLabelDetailsUseCase @Inject constructor(
|
||||
private val itemRepository: ItemRepository
|
||||
) {
|
||||
/**
|
||||
* @summary Выполняет получение детальной информации о метке.
|
||||
* @param labelId ID запрашиваемой метки.
|
||||
* @return Детальная информация о метке [LabelOut].
|
||||
* @throws IllegalArgumentException если `labelId` пустой.
|
||||
* @throws NoSuchElementException если метка с указанным ID не найдена.
|
||||
*/
|
||||
suspend operator fun invoke(labelId: String): LabelOut {
|
||||
require(labelId.isNotBlank()) { "Label ID cannot be blank." }
|
||||
return itemRepository.getLabelDetails(labelId)
|
||||
}
|
||||
}
|
||||
// [END_ENTITY: UseCase('GetLabelDetailsUseCase')]
|
||||
// [END_FILE_GetLabelDetailsUseCase.kt]
|
||||
Reference in New Issue
Block a user