package handler import ( "net/http" "github.com/gin-gonic/gin" "dating-app/internal/service" "dating-app/internal/utils" ) type BackupHandler struct { backupService *service.BackupService } func NewBackupHandler(backupService *service.BackupService) *BackupHandler { return &BackupHandler{backupService: backupService} } // List GET /admin/backups func (h *BackupHandler) List(c *gin.Context) { backups, err := h.backupService.List() if err != nil { utils.Fail(c, http.StatusInternalServerError, "خطا در دریافت لیست بک‌آپ‌ها", nil) return } utils.Success(c, http.StatusOK, "", backups) } // Create POST /admin/backups func (h *BackupHandler) Create(c *gin.Context) { info, err := h.backupService.Create() if err != nil { utils.Fail(c, http.StatusInternalServerError, "گرفتن بک‌آپ ناموفق بود: "+err.Error(), nil) return } utils.Success(c, http.StatusCreated, "بک‌آپ با موفقیت ساخته شد", info) } // Download GET /admin/backups/:filename func (h *BackupHandler) Download(c *gin.Context) { filename := c.Param("filename") path, err := h.backupService.ResolvePath(filename) if err != nil { utils.Fail(c, http.StatusNotFound, "فایل بک‌آپ یافت نشد", nil) return } c.FileAttachment(path, filename) }