package com.rongyichuang.tag.api; import com.rongyichuang.tag.dto.response.TagResponse; import com.rongyichuang.tag.entity.Tag; import com.rongyichuang.tag.repository.TagRepository; import org.springframework.graphql.data.method.annotation.Argument; import org.springframework.graphql.data.method.annotation.QueryMapping; import org.springframework.stereotype.Controller; import java.util.List; import java.util.stream.Collectors; @Controller public class TagGraphqlApi { private final TagRepository tagRepository; public TagGraphqlApi(TagRepository tagRepository) { this.tagRepository = tagRepository; } @QueryMapping public List tags() { return tagRepository.findAll().stream() .map(this::convertToResponse) .collect(Collectors.toList()); } @QueryMapping public List tagsByCategory(@Argument String category) { return tagRepository.findByCategory(category).stream() .map(this::convertToResponse) .collect(Collectors.toList()); } private TagResponse convertToResponse(Tag tag) { TagResponse response = new TagResponse(); response.setId(tag.getId()); response.setName(tag.getName()); response.setCode(tag.getCode()); return response; } }