| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #pragma once
- #include <memory>
- #include <string>
- #include <vector>
- #include <grpcpp/grpcpp.h>
- #include "proto/credentials.grpc.pb.h"
- #include "credential_types.hpp"
- #include "common/error.hpp"
- namespace smartbotic::credentials {
- // Configuration for credential client
- struct CredentialClientConfig {
- std::string address = "localhost:9013"; // Credential service address
- int timeout_ms = 5000;
- };
- // gRPC client for credential service
- class CredentialClient {
- public:
- explicit CredentialClient(const CredentialClientConfig& config);
- ~CredentialClient() = default;
- // Get HTTP authentication header for a credential
- common::Result<HttpAuth> getHttpAuth(const std::string& credential_id,
- const std::string& workflow_id = "");
- // Get IMAP credentials
- common::Result<ImapData> getImapCredentials(const std::string& credential_id,
- const std::string& workflow_id = "");
- // List available credentials
- common::Result<std::vector<CredentialInfo>> listCredentials(const std::string& workflow_id = "");
- // Check if connected
- bool isConnected() const;
- private:
- CredentialClientConfig config_;
- std::shared_ptr<grpc::Channel> channel_;
- std::unique_ptr<proto::CredentialService::Stub> stub_;
- };
- } // namespace smartbotic::credentials
|