Init: lab4 done
This commit is contained in:
46
handlers/getUrl.go
Normal file
46
handlers/getUrl.go
Normal file
@@ -0,0 +1,46 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user