Compare commits

...

2 Commits

6 changed files with 29 additions and 19 deletions

View File

@ -3,6 +3,7 @@ package backend
import ( import (
"fmt" "fmt"
"io" "io"
"log"
"os" "os"
) )
@ -19,10 +20,30 @@ func CopyFile(src, dst string) error {
} }
defer dstFile.Close() defer dstFile.Close()
_, err = io.Copy(dstFile, srcFile) if _, err = io.Copy(dstFile, srcFile); err != nil {
if err != nil {
return fmt.Errorf("error copying file: %v", err) return fmt.Errorf("error copying file: %v", err)
} }
return dstFile.Sync() return dstFile.Sync()
} }
func WriteFile(path string, src io.Reader) error {
file, err := os.Create(path)
if err != nil {
log.Println(err)
return fmt.Errorf("error creating file: %v", err)
}
defer file.Close()
if _, err = io.Copy(file, src); err != nil {
log.Println(err)
return fmt.Errorf("error copying file: %v", err)
}
if err = file.Sync(); err != nil {
log.Println(err)
return fmt.Errorf("error syncing file: %v", err)
}
return nil
}

View File

@ -55,7 +55,7 @@ func GenerateRSS(c *Config, db *DB) (*string, error) {
} }
item := &rss.Item{ item := &rss.Item{
Author: fmt.Sprint(user.FirstName, " ", user.LastName), Author: user.FirstName + " " + user.LastName,
Categories: tagNames, Categories: tagNames,
Description: articleDescription, Description: articleDescription,
Guid: string(article.ID), Guid: string(article.ID),

View File

@ -2,7 +2,6 @@ package calls
import ( import (
"encoding/json" "encoding/json"
"fmt"
"log" "log"
"net/http" "net/http"
"os" "os"
@ -43,6 +42,6 @@ func ServePDF(c *b.Config) http.HandlerFunc {
return return
} }
http.ServeFile(w, r, fmt.Sprint(c.PDFDir, "/", r.PathValue("id"))) http.ServeFile(w, r, c.PDFDir+"/"+r.PathValue("id"))
} }
} }

View File

@ -547,7 +547,7 @@ func UploadArticleImage(c *b.Config, s *b.CookieStore) http.HandlerFunc {
return return
} }
url := fmt.Sprint(c.Domain, "/image/serve/", filename) url := c.Domain + "/image/serve/" + filename
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(url) json.NewEncoder(w).Encode(url)
} }

View File

@ -61,7 +61,7 @@ func PublishLatestIssue(c *b.Config, db *b.DB, s *b.CookieStore) http.HandlerFun
article := &b.Article{ article := &b.Article{
Title: title, Title: title,
EncURL: fmt.Sprint(c.Domain, "/image/serve/", imgFileName), EncURL: c.Domain + "/image/serve/" + imgFileName,
EncLength: int(imgInfo.Size()), EncLength: int(imgInfo.Size()),
EncType: mime.TypeByExtension(filepath.Ext(imgAbsName)), EncType: mime.TypeByExtension(filepath.Ext(imgAbsName)),
Published: true, Published: true,

View File

@ -2,10 +2,8 @@ package frontend
import ( import (
"fmt" "fmt"
"io"
"log" "log"
"net/http" "net/http"
"os"
"path/filepath" "path/filepath"
"github.com/google/uuid" "github.com/google/uuid"
@ -53,22 +51,14 @@ func UploadPDF(c *b.Config, s *b.CookieStore) http.HandlerFunc {
} }
filename := fmt.Sprint(uuid.New(), ".pdf") filename := fmt.Sprint(uuid.New(), ".pdf")
absFilepath, err := filepath.Abs(fmt.Sprint(c.PDFDir, "/", filename)) absFilepath, err := filepath.Abs(c.PDFDir + "/" + filename)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return
} }
pdf, err := os.Create(absFilepath) if err = b.WriteFile(absFilepath, file); err != nil {
if err != nil {
log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer pdf.Close()
if _, err = io.Copy(pdf, file); err != nil {
log.Println(err) log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return