package io.delphiplatform.api.v3.view.video;

import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

import io.delphiplatform.api.v3.model.video.Video;
import io.delphiplatform.api.v3.model.video.Videos;
import io.delphiplatform.api.v3.rdb.service.VideoService;
import io.delphiplatform.api.v3.view.util.Params;

@Controller
@RequestMapping("${spring.data.rest.base-path:/v3}")
public class VideosApiController implements VideosApi {

    private final VideoService videoService;

    public VideosApiController(VideoService videoService) {
        this.videoService = videoService;
    }

    @Override
    public ResponseEntity<Video> findOne(String videoId) {
        return ResponseEntity.ok(videoService.findOne(videoId));
    }

    @Override
    public ResponseEntity<Videos> getSearchData(Params params) {
        List<Video> videos = videoService.find(params);
        return ResponseEntity.ok(new Videos().items(videos).count(videos.size()));
    }
}
