2rabs/nito-app

View on GitHub
app/backend/src/main/kotlin/nito/club/backend/schema/BookQueryService.kt

Summary

Maintainability
A
35 mins
Test Coverage
package nito.club.backend.schema

import com.expediagroup.graphql.generator.annotations.GraphQLDescription
import com.expediagroup.graphql.server.operations.Query
import graphql.schema.DataFetchingEnvironment
import nito.club.backend.schema.dataloaders.BookDataLoader
import nito.club.backend.schema.models.Book
import java.util.concurrent.CompletableFuture

class BookQueryService : Query {
    @GraphQLDescription("Return list of books based on BookSearchParameter options")
    @Suppress("unused")
    fun searchBooks(params: BookSearchParameters, dfe: DataFetchingEnvironment): CompletableFuture<List<Book>> =
        dfe.getDataLoader<Int, Book>(BookDataLoader.dataLoaderName)
            .loadMany(params.ids)
}

data class BookSearchParameters(val ids: List<Int>)