diff --git a/internal/rest/v1/project.go b/internal/rest/v1/project.go index 0db90cd..25d1204 100644 --- a/internal/rest/v1/project.go +++ b/internal/rest/v1/project.go @@ -60,16 +60,6 @@ func (h *Handlers) getProjectLanguage(ctx echo.Context, l *logrus.Entry) error { return echo.NewHTTPError(499, "client closed request") } - if ctx.Request() == nil { - l.Error("Request is nil") - - return errors.New("request is nil") - } - - if ctx.Request().Header.Get("If-None-Match") == trans.Checksum { - return ctx.NoContent(http.StatusNotModified) - } - if err != nil { switch err.(type) { case *poedit.ErrProjectPermissionDenied: @@ -83,6 +73,16 @@ func (h *Handlers) getProjectLanguage(ctx echo.Context, l *logrus.Entry) error { } } + if ctx.Request() == nil { + l.Error("Request is nil") + + return errors.New("request is nil") + } + + if ctx.Request().Header.Get("If-None-Match") == trans.Checksum { + return ctx.NoContent(http.StatusNotModified) + } + ctx.Response().Header().Add("Etag", trans.Checksum) ctx.Response().Header().Add("Cache-Control", fmt.Sprintf("max-age=%.0f", trans.TTL.Seconds())) ctx.Response().Header().Add("Content-Disposition", fmt.Sprintf("filename=%d-%s.%s", req.Project, req.Language, contentMeta.Extension))