package dns import ( "fmt" "strconv" dnsService "dove/services/dns" "dove/utils/meta" "dove/utils/shortcuts" "github.com/gofiber/fiber/v2" ) func CreateRecord(context *fiber.Ctx) error { body, parseError := meta.Body[dnsService.CreateRecordRequest](context) if parseError != nil { return shortcuts.BadRequestError(context, parseError) } serviceError := dnsService.CreateRecord(body) if serviceError != nil { return shortcuts.HandleError(context, serviceError) } return shortcuts.RedirectToPath(context, fmt.Sprintf("/domains/manage/%d", body.DomainID)) } func UpdateRecord(context *fiber.Ctx) error { recordID, parseError := strconv.ParseUint(meta.Request(context).Param("id"), 10, 64) if parseError != nil { return shortcuts.BadRequestError(context, parseError) } recordType := meta.Request(context).Param("type") body, bodyError := meta.Body[dnsService.UpdateRecordRequest](context) if bodyError != nil { return shortcuts.BadRequestError(context, bodyError) } serviceError := dnsService.UpdateRecord(recordType, uint(recordID), body) if serviceError != nil { return shortcuts.HandleError(context, serviceError) } domainID := meta.Request(context).Query("domain_id") return shortcuts.RedirectToPath(context, fmt.Sprintf("/domains/manage/%s", domainID)) } func DeleteRecord(context *fiber.Ctx) error { recordID, parseError := strconv.ParseUint(meta.Request(context).Param("id"), 10, 64) if parseError != nil { return shortcuts.BadRequestError(context, parseError) } recordType := meta.Request(context).Param("type") serviceError := dnsService.DeleteRecord(recordType, uint(recordID)) if serviceError != nil { return shortcuts.HandleError(context, serviceError) } domainID := meta.Request(context).Query("domain_id") return shortcuts.RedirectToPath(context, fmt.Sprintf("/domains/manage/%s", domainID)) }