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

import org.springframework.beans.factory.annotation.Autowired;
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.util.OffsetBasedPageRequest;
import io.delphiplatform.api.v3.model.localization.RegionLocalization;
import io.delphiplatform.api.v3.model.localization.RegionLocalizations;
import io.delphiplatform.api.v3.rdb.service.RegionLocalizationService;
import io.delphiplatform.api.v3.view.util.Params;

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

    private final RegionLocalizationService regionLocalizationService;

    @Autowired
    public RegionLocalizationsApiController(RegionLocalizationService regionLocalizationService) {
        this.regionLocalizationService = regionLocalizationService;
    }

    @Override
    public ResponseEntity<RegionLocalizations> getSearchData(Params params) {
        List<RegionLocalization> items = regionLocalizationService
            .findAll(OffsetBasedPageRequest.ofParamsToCamelCase(params));
        return ResponseEntity.ok(new RegionLocalizations().items(items).count(items.size()));
    }
}
