chore: clean .gitignore cache
This commit is contained in:
@@ -1,77 +0,0 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/Wikid82/charon/backend/internal/services"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// DNSDetectionHandler handles DNS provider auto-detection API requests.
|
||||
type DNSDetectionHandler struct {
|
||||
service services.DNSDetectionService
|
||||
}
|
||||
|
||||
// NewDNSDetectionHandler creates a new DNS detection handler.
|
||||
func NewDNSDetectionHandler(service services.DNSDetectionService) *DNSDetectionHandler {
|
||||
return &DNSDetectionHandler{
|
||||
service: service,
|
||||
}
|
||||
}
|
||||
|
||||
// DetectRequest represents the request body for DNS provider detection.
|
||||
type DetectRequest struct {
|
||||
Domain string `json:"domain" binding:"required"`
|
||||
}
|
||||
|
||||
// Detect handles POST /api/v1/dns-providers/detect
|
||||
// Performs DNS provider auto-detection for a given domain.
|
||||
func (h *DNSDetectionHandler) Detect(c *gin.Context) {
|
||||
var req DetectRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "domain is required"})
|
||||
return
|
||||
}
|
||||
|
||||
// Perform detection
|
||||
result, err := h.service.DetectProvider(req.Domain)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to detect DNS provider"})
|
||||
return
|
||||
}
|
||||
|
||||
// If detected, try to find a matching configured provider
|
||||
if result.Detected {
|
||||
suggestedProvider, err := h.service.SuggestConfiguredProvider(c.Request.Context(), req.Domain)
|
||||
if err == nil && suggestedProvider != nil {
|
||||
result.SuggestedProvider = suggestedProvider
|
||||
}
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, result)
|
||||
}
|
||||
|
||||
// GetPatterns handles GET /api/v1/dns-providers/detection-patterns
|
||||
// Returns the current nameserver pattern database.
|
||||
func (h *DNSDetectionHandler) GetPatterns(c *gin.Context) {
|
||||
patterns := h.service.GetNameserverPatterns()
|
||||
|
||||
// Convert to structured response
|
||||
type ProviderPattern struct {
|
||||
Pattern string `json:"pattern"`
|
||||
ProviderType string `json:"provider_type"`
|
||||
}
|
||||
|
||||
patternsList := make([]ProviderPattern, 0, len(patterns))
|
||||
for pattern, providerType := range patterns {
|
||||
patternsList = append(patternsList, ProviderPattern{
|
||||
Pattern: pattern,
|
||||
ProviderType: providerType,
|
||||
})
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"patterns": patternsList,
|
||||
"total": len(patternsList),
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user