package com.airlock.iam.oauth2.infrastructure.validation;

import ch.ergon.restal.jsonapi.document.request.RequestDocument;
import com.airlock.iam.base.api.domain.model.validation.GenericError;
import com.airlock.iam.base.api.domain.model.validation.ValidationResult;

public final class OAuth2SessionIdValidator {
   public static ValidationResult validateSessionId(String sessionId, RequestDocument<?> requestDocument) {
      if (requestDocument.getData().getId() == null) {
         return ValidationResult.singleError("/data/id", GenericError.REQUIRED);
      } else {
         return !requestDocument.getData().getId().equals(sessionId)
            ? ValidationResult.singleError("/data/id", GenericError.CONFLICT)
            : ValidationResult.valid();
      }
   }

   private OAuth2SessionIdValidator() {
      throw new AssertionError();
   }
}
