diff --git a/backend/app/migrator/remark.go b/backend/app/migrator/remark.go index 6cad5cfb..b2964c75 100644 --- a/backend/app/migrator/remark.go +++ b/backend/app/migrator/remark.go @@ -42,9 +42,9 @@ func (r *Remark) Export(w io.Writer, siteID string) (size int, err error) { commentsCount := 0 for i := len(topics) - 1; i >= 0; i-- { // topics from List sorted in opposite direction topic := topics[i] - comments, err := r.DataStore.Find(store.Locator{SiteID: siteID, URL: topic.URL}, "time") + comments, e := r.DataStore.Find(store.Locator{SiteID: siteID, URL: topic.URL}, "time") if err != nil { - return commentsCount, err + return commentsCount, e } for n, comment := range comments { @@ -53,12 +53,12 @@ func (r *Remark) Export(w io.Writer, siteID string) (size int, err error) { enc := json.NewEncoder(buf) enc.SetEscapeHTML(false) - if err := enc.Encode(comment); err != nil { + if err = enc.Encode(comment); err != nil { return commentsCount, errors.Wrapf(err, "can't marshal %v", comments) } data := buf.Bytes() data = bytes.TrimSuffix(data, []byte("\n")) - if _, err := w.Write(data); err != nil { + if _, err = w.Write(data); err != nil { return commentsCount, errors.Wrap(err, "can't write comment data") } if n < len(comments)-1 || i != 0 { // don't add , on last comment @@ -75,9 +75,13 @@ func (r *Remark) Export(w io.Writer, siteID string) (size int, err error) { } } log.Printf("[DEBUG] exported %d comments", commentsCount) + err = r.exportMeta(siteID, w) + return commentsCount, err +} - if _, err := fmt.Fprintf(w, "%s", metaHeader); err != nil { - return 0, errors.Wrap(err, "can't write meta header") +func (r *Remark) exportMeta(siteID string, w io.Writer) (err error) { + if _, err = fmt.Fprintf(w, "%s", metaHeader); err != nil { + return errors.Wrap(err, "can't write meta header") } meta := struct { @@ -87,18 +91,17 @@ func (r *Remark) Export(w io.Writer, siteID string) (size int, err error) { meta.Users, meta.Posts, err = r.DataStore.Metas(siteID) if err != nil { - return 0, errors.Wrap(err, "can't get meta") + return errors.Wrap(err, "can't get meta") } if err := json.NewEncoder(w).Encode(meta); err != nil { - return 0, errors.Wrap(err, "can't encode meta") + return errors.Wrap(err, "can't encode meta") } if _, err := fmt.Fprintf(w, "%s\n", footer); err != nil { - return 0, errors.Wrap(err, "can't write footer") + return errors.Wrap(err, "can't write footer") } - - return commentsCount, nil + return nil } // Import comments from json strings produced by Remark.Export diff --git a/backend/app/rest/api/rest.go b/backend/app/rest/api/rest.go index 2e32e69b..74ba5afe 100644 --- a/backend/app/rest/api/rest.go +++ b/backend/app/rest/api/rest.go @@ -142,7 +142,7 @@ func (s *Rest) Shutdown() { s.lock.Unlock() } -func (s *Rest) makeHTTPServer(port int, router chi.Router) *http.Server { +func (s *Rest) makeHTTPServer(port int, router http.Handler) *http.Server { return &http.Server{ Addr: fmt.Sprintf(":%d", port), Handler: router, diff --git a/backend/app/rest/api/ssl.go b/backend/app/rest/api/ssl.go index a087a613..14a4b728 100644 --- a/backend/app/rest/api/ssl.go +++ b/backend/app/rest/api/ssl.go @@ -82,7 +82,7 @@ func (s *Rest) makeAutocertManager() *autocert.Manager { } // makeHTTPSAutoCertServer makes https server with autocert mode (LE support) -func (s *Rest) makeHTTPSAutocertServer(port int, router chi.Router, m *autocert.Manager) *http.Server { +func (s *Rest) makeHTTPSAutocertServer(port int, router http.Handler, m *autocert.Manager) *http.Server { server := s.makeHTTPServer(port, router) cfg := makeTLSConfig() cfg.GetCertificate = m.GetCertificate @@ -91,7 +91,7 @@ func (s *Rest) makeHTTPSAutocertServer(port int, router chi.Router, m *autocert. } // makeHTTPSServer makes https server for static mode -func (s *Rest) makeHTTPSServer(port int, router chi.Router) *http.Server { +func (s *Rest) makeHTTPSServer(port int, router http.Handler) *http.Server { server := s.makeHTTPServer(port, router) server.TLSConfig = makeTLSConfig() return server