package com.sonymusic.dx.dxuiservice.usm;

import java.util.Optional;

import com.sonymusic.dx.dxuiservice.properties.USMApiClientProperties;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Service;

/**
 * Usm Session Service.
 */
@Service
@RequiredArgsConstructor
@ConditionalOnProperty(
        name = "usm.session.validation.enabled",
        havingValue = "true",
        matchIfMissing = true
)
public class USMSessionServiceImpl implements USMSessionService {

    private final USMSessionValidationClient smeSessionClient;
    private final USMApiClientProperties usmApiClientProperties;

    @Override
    public boolean isValid(String tokenHintId) {
        var response = smeSessionClient.validate(USMSessionRequest.builder()
                .tokenHintId(tokenHintId)
                .clientSecret(usmApiClientProperties.getClientSecret())
                .clientId(usmApiClientProperties.getClientId())
                .build());

        return Optional.ofNullable(response.getSuccess())
                .orElse(false);
    }
}
