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) }