Files
telecom-platform/sdk/elixir/lib/telecom_sdk/security_api.ex
T
nutcas3 9f51d6f20e feat: Add analytics, security, and currency SDK modules with comprehensive API endpoints across Elixir and Go SDKs
- Add AnalyticsAPI with churn prediction (predict, metrics, at-risk), market analytics (metrics, competitors, opportunities), predictive maintenance (metrics, assets, alerts, predict), and pricing optimization (metrics, optimize, elasticity) endpoints
- Add SecurityAPI with fraud detection (analyze, alerts, update status, metrics, patterns) and SIM swap protection (verify, history) endpoints
- Add CurrencyAPI with currency conversion (convert, exchange rates, rate
2026-05-03 13:29:44 +03:00

48 lines
1.5 KiB
Elixir

defmodule TelecomSDK.SecurityAPI do
@moduledoc """
Security API for fraud detection and SIM swap protection
"""
defstruct [:http_client]
def new(http_client) do
%__MODULE__{http_client: http_client}
end
# Fraud Detection
def analyze_transaction(%__MODULE__{http_client: client}, transaction) do
HTTPClient.post(client, "/api/v1/security/fraud/analyze", transaction)
end
def get_fraud_alerts(%__MODULE__{http_client: client}, filter \\ nil) do
body = if filter, do: filter, else: %{}
HTTPClient.post(client, "/api/v1/security/fraud/alerts", body)
end
def update_alert_status(%__MODULE__{http_client: client}, alert_id, status, actions \\ []) do
body = %{status: status, actions: actions}
HTTPClient.put(client, "/api/v1/security/fraud/alerts/#{alert_id}", body)
end
def get_fraud_metrics(%__MODULE__{http_client: client}, period \\ "monthly") do
params = %{period: period}
HTTPClient.get(client, "/api/v1/security/fraud/metrics", params)
end
def get_fraud_patterns(%__MODULE__{http_client: client}) do
HTTPClient.get(client, "/api/v1/security/fraud/patterns", %{})
end
# SIM Swap Protection
def verify_sim_swap(%__MODULE__{http_client: client}, profile_id, msisdn) do
body = %{profile_id: profile_id, msisdn: msisdn}
HTTPClient.post(client, "/api/v1/security/simswap/verify", body)
end
def get_sim_swap_history(%__MODULE__{http_client: client}, profile_id) do
HTTPClient.get(client, "/api/v1/security/simswap/history/#{profile_id}", %{})
end
end