package com.sonymusic.dx.dxuiservice.usm;


import com.sonymusic.dx.dxuiservice.dto.USMAuthorizationRequest;
import com.sonymusic.dx.dxuiservice.dto.USMAuthorizationResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * USM authorization client.
 */
@FeignClient(name = "authorizationClient", url = "${usm.client.url}")
public interface USMAuthorizationClient {

    /**
     * Performs USM authorization.
     *
     * @param request UsmAuthorizationRequest.
     * @return authorization result.
     */
    @PostMapping(
            path = "${usm.authorization.path}",
            consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    USMAuthorizationResponse authorize(@RequestBody USMAuthorizationRequest request);
}
