/* * Copyright (c) 2023. yo-saito. All Rights Reserved. */ package net.piedpiper.bremer.controller.api import net.piedpiper.bremer.model.api.AudioListResponse import net.piedpiper.bremer.service.AudioService import org.springframework.beans.factory.annotation.Qualifier import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RequestParam import org.springframework.web.bind.annotation.RestController @RestController("bremer.controller.AudioApiController") @RequestMapping("bremer/api/audio") class AudioApiController( @Qualifier("bremer.service.AudioService") private val audioService: AudioService ) { companion object { private const val PAGE_LIMIT = 50 } @GetMapping fun getAudioList( @RequestParam("audio", required = false) audioName: String?, @RequestParam("artist", required = false) artistName: String?, @RequestParam("album", required = false) albumName: String?, @RequestParam("tag", required = false) tagName: String? ): ResponseEntity<AudioListResponse> = ResponseEntity.ok(audioService.getByKeywords( audioName, artistName, albumName, tagName, PAGE_LIMIT)) @GetMapping("history") fun getLeastRecentlyPlayedList(): ResponseEntity<AudioListResponse> = ResponseEntity.ok(audioService.getLeastRecentlyAccessedAudio(PAGE_LIMIT)) }