diff options
Diffstat (limited to 'internal/client')
| -rw-r--r-- | internal/client/crypto.go | 235 | ||||
| -rw-r--r-- | internal/client/email.go | 28 | ||||
| -rw-r--r-- | internal/client/telegram.go | 28 |
3 files changed, 291 insertions, 0 deletions
diff --git a/internal/client/crypto.go b/internal/client/crypto.go new file mode 100644 index 0000000..ee145f9 --- /dev/null +++ b/internal/client/crypto.go @@ -0,0 +1,235 @@ +package client + +import ( + "encoding/json" + "fmt" + "git.db.org.ai/dborg/internal/models" + "strings" +) + +func (c *Client) GetBundleDetection(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/bundle-detection/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetCrossTraders(addresses string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/cross-traders/%s", addresses) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetEarlyAdopters(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/early-adopters/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetFloorHolders(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/floor-holders/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetFreshAccounts(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/fresh-accounts/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetFundingSource(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/funding-source/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetGraduationStats() (*models.CryptoResponse, error) { + data, err := c.Get("/crypto/graduation-stats", nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetLaunchParticipants(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/launch-participants/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetLiquidity(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/liquidity/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetOwnerIntel(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/owner-intel/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetOwnershipDistribution(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/ownership-distribution/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetPortfolio(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/portfolio/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetTopOwners(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/top-owners/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetWhaleIntel(address string) (*models.CryptoResponse, error) { + path := fmt.Sprintf("/crypto/whale-intel/%s", address) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.CryptoResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse crypto response: %w", err) + } + + return &response, nil +} + +func ValidateCryptoAddress(address string) error { + if len(address) == 0 { + return fmt.Errorf("address cannot be empty") + } + return nil +} + +func ValidateCryptoAddresses(addresses string) error { + if len(addresses) == 0 { + return fmt.Errorf("addresses cannot be empty") + } + parts := strings.Split(addresses, ",") + if len(parts) < 2 { + return fmt.Errorf("at least 2 addresses required for cross-trader analysis") + } + return nil +} diff --git a/internal/client/email.go b/internal/client/email.go new file mode 100644 index 0000000..a7000fe --- /dev/null +++ b/internal/client/email.go @@ -0,0 +1,28 @@ +package client + +import ( + "encoding/json" + "fmt" + "git.db.org.ai/dborg/internal/models" + "strings" +) + +func (c *Client) VerifyEmail(email string) (*models.EmailVerifyResponse, error) { + email = strings.TrimSpace(email) + if email == "" { + return nil, fmt.Errorf("email address cannot be empty") + } + + path := fmt.Sprintf("/email/verify/%s", email) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.EmailVerifyResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse email verification response: %w", err) + } + + return &response, nil +} diff --git a/internal/client/telegram.go b/internal/client/telegram.go new file mode 100644 index 0000000..33b4ac2 --- /dev/null +++ b/internal/client/telegram.go @@ -0,0 +1,28 @@ +package client + +import ( + "encoding/json" + "fmt" + "git.db.org.ai/dborg/internal/models" + "strings" +) + +func (c *Client) GetTelegramPhone(identifier string) (*models.TelegramPhoneResponse, error) { + identifier = strings.TrimSpace(identifier) + if identifier == "" { + return nil, fmt.Errorf("identifier cannot be empty") + } + + path := fmt.Sprintf("/telegram/phone/%s", identifier) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.TelegramPhoneResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse telegram response: %w", err) + } + + return &response, nil +} |
