package ru.ibs.socrates.confexporter.external.access.api;

import java.util.Map;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import ru.ibs.socrates.confexporter.external.access.dto.AccessResponseDto;

/**
 * API Keycloak.
 */
public interface AccessApi {

  /**
   * Запрос на получение токена.
   *
   * @param tokenRequest запрос с идентификацией клиента.
   *     <p>grant_type = client_credentials
   *     <p>client_id
   *     <p>client_secret
   * @return ответ с токеном
   */
  @PostMapping(
      value = "",
      consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE})
  ResponseEntity<AccessResponseDto> getToken(Map<String, ?> tokenRequest);
}
