Files
golang-lab4/handlers/getUrl.go
2025-11-07 05:26:09 +08:00

47 lines
870 B
Go

package handlers
import (
"golang-lab4/middlewares"
"golang-lab4/models"
"net/http"
"github.com/uptrace/bunrouter"
"go.uber.org/zap"
)
// GetUrl
//
// @param url query string true "url"
// @success 200 {object} models.UrlState
// @router /url [get]
func (self *Handlers) GetUrl(
w http.ResponseWriter,
req bunrouter.Request,
) error {
ctx := req.Context()
url := req.URL.Query().Get("url")
if url == "" {
zap.L().Warn("url not exist")
return middlewares.HTTPError{
StatusCode: http.StatusBadRequest,
Message: "url not provided",
}
}
var ret models.UrlState
err := self.db.NewSelect().
Model(&ret).
Where("url = ?", url).
Scan(ctx)
if err != nil {
return middlewares.HTTPError{
StatusCode: http.StatusInternalServerError,
Message: "failed to query db",
OriginError: err,
}
}
return bunrouter.JSON(w, ret)
}