ApplicationController.java 1.61 KB
package isa.qa.controller;

import isa.qa.core.Result;
import isa.qa.core.ResultGenerator;
import isa.qa.dto.request.AccessKeyRequestDTO;
import isa.qa.dto.request.ApplicationRequestDTO;
import isa.qa.service.ApplicationService;
import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;

@RestController
@RequestMapping("/api/applications")
@AllArgsConstructor
public class ApplicationController {

    /**
     * logger
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationController.class);

    private final ApplicationService applicationService;

    @PostMapping("/actions/register")
    public Result registerApplication(@Valid @RequestBody ApplicationRequestDTO requestDTO) {
        LOGGER.info("API 调用 :Register a new application");

        return ResultGenerator.genSuccessResult(applicationService.registerApplication(requestDTO));
    }

    @PostMapping("/accessKeys")
    public Result getAccessKey(@Valid @RequestBody AccessKeyRequestDTO requestDTO) {
        LOGGER.info("API 调用 :Get the application access key");

        return ResultGenerator.genSuccessResult(applicationService.getAccessKey(requestDTO));
    }

    @GetMapping("/accessKeys/actions/refresh")
    public Result refreshAccessKey(@RequestHeader("Authorization") String accessKey, @RequestParam(defaultValue = "2") Integer hours) {
        LOGGER.info("API 调用 :Refresh the access key");

        return ResultGenerator.genSuccessResult(applicationService.refreshAccessKey(accessKey, hours));
    }
}