package de.ozgcloud.xta.client; import org.apache.commons.lang3.NotImplementedException; import de.ozgcloud.xta.client.config.XtaClientConfig; import de.ozgcloud.xta.client.core.WrappedXtaService; import de.ozgcloud.xta.client.model.Identifier; import de.ozgcloud.xta.client.model.XtaMessage; import de.ozgcloud.xta.client.model.XtaMessageMetaDataAndHeader; import genv3.de.xoev.transport.xta.x211.PermissionDeniedException; import genv3.de.xoev.transport.xta.x211.XTAWSTechnicalProblemException; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor(access = AccessLevel.PROTECTED) @Builder(access = AccessLevel.PROTECTED) @Getter(AccessLevel.PROTECTED) public class XtaClient { private final WrappedXtaService service; private final XtaClientConfig config; public XtaMessageMetaDataAndHeader getMessagesMetadata(String xtaIdentifier) throws XTAWSTechnicalProblemException, PermissionDeniedException { var clientIdentifier = deriveIdentifier(xtaIdentifier); service.checkAccountActive(clientIdentifier); return getStatusList(clientIdentifier); } public XtaMessageMetaDataAndHeader getNextMessagesMetadata(String xtaIdentifier) throws XTAWSTechnicalProblemException, PermissionDeniedException { return getStatusList(deriveIdentifier(xtaIdentifier)); } private XtaMessageMetaDataAndHeader getStatusList(Identifier clientIdentifier) throws XTAWSTechnicalProblemException, PermissionDeniedException { return service.getStatusList(clientIdentifier, config.getMaxListItems()); } Identifier deriveIdentifier(String xtaIdentifier) { return Identifier.builder().value(xtaIdentifier).build(); } public XtaMessage getMessage(String messageId) { throw new NotImplementedException(""); } public void close(String messageId) { throw new NotImplementedException(""); } }