Fix warnings

This commit is contained in:
Aurélie Delhaie
2022-06-14 19:40:44 +02:00
parent 497c3e434a
commit 3caa99b22a
5 changed files with 51 additions and 16 deletions

View File

@@ -99,14 +99,14 @@ func AddUser(username string, password []byte) error {
}
// AddAdmin register a user and set his role to admin
func AddAdmin(username string, password []byte) error {
/*func AddAdmin(username string, password []byte) error {
user := &User{
Username: username,
Password: password,
Role: adminRole,
}
return db.Save(user).Error
}
}*/
// GameInfoById return information of a game
func GameInfoById(userId, gameId int) (*Game, error) {

View File

@@ -3,20 +3,20 @@ package database
import "time"
type User struct {
ID int `json:"id"`
Username string `json:"username"`
Role string `json:"role"`
Password []byte `json:"-"`
ID int `json:"id"`
IsAdmin bool `json:"is_admin" gorm:"-:all"`
}
type Game struct {
ID int `json:"id"`
Name string `json:"name"`
Revision int `json:"rev"`
PathStorage string `json:"-"`
Hash *string `json:"hash"`
LastUpdate *time.Time `json:"last_update"`
ID int `json:"id"`
Revision int `json:"rev"`
UserId int `json:"-"`
Available bool `json:"available"`
Hash *string `json:"hash"`
LastUpdate *time.Time `json:"last_update"`
}

View File

@@ -5,6 +5,7 @@ import (
"github.com/go-chi/chi/v5"
"io"
"log"
"mime/multipart"
"net/http"
"opensavecloudserver/config"
"opensavecloudserver/database"
@@ -165,8 +166,13 @@ func UploadSave(w http.ResponseWriter, r *http.Request) {
log.Println(err)
return
}
defer file.Close()
err = upload.UploadSave(file, game)
defer func(file multipart.File) {
err := file.Close()
if err != nil {
log.Println(err)
}
}(file)
err = upload.ProcessFile(file, game)
if err != nil {
internalServerError(w, r)
log.Println(err)
@@ -216,7 +222,12 @@ func Download(w http.ResponseWriter, r *http.Request) {
log.Println(err)
return
}
defer file.Close()
defer func(file *os.File) {
err := file.Close()
if err != nil {
log.Println(err)
}
}(file)
_, err = io.Copy(w, file)
if err != nil {
internalServerError(w, r)

View File

@@ -44,6 +44,10 @@ func Serve() {
secureRouter.Get("/information", UserInformation)
secureRouter.Post("/passwd", ChangePassword)
})
r.Route("/admin", func(secureRouter chi.Router) {
secureRouter.Use(authMiddleware)
secureRouter.Use(adminMiddleware)
})
r.Route("/game", func(secureRouter chi.Router) {
secureRouter.Use(authMiddleware)
secureRouter.Post("/create", CreateGame)

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"github.com/google/uuid"
"io"
"log"
"mime/multipart"
"opensavecloudserver/config"
"opensavecloudserver/database"
@@ -43,16 +44,30 @@ func MoveFile(sourcePath, destPath string) error {
}
outputFile, err := os.Create(destPath)
if err != nil {
inputFile.Close()
err := inputFile.Close()
if err != nil {
return err
}
return fmt.Errorf("couldn't open dest file: %s", err)
}
defer outputFile.Close()
defer func(outputFile *os.File) {
err := outputFile.Close()
if err != nil {
log.Println(err)
}
}(outputFile)
_, err = io.Copy(outputFile, inputFile)
if err != nil {
inputFile.Close()
err := inputFile.Close()
if err != nil {
return err
}
return fmt.Errorf("writing to output file failed: %s", err)
}
inputFile.Close()
err = inputFile.Close()
if err != nil {
return err
}
// The copy was successful, so now delete the original file
err = os.Remove(sourcePath)
if err != nil {
@@ -92,7 +107,7 @@ func CheckUploadToken(uploadToken string) (int, bool) {
return -1, false
}
func UploadSave(file multipart.File, game *database.Game) error {
func ProcessFile(file multipart.File, game *database.Game) error {
filePath := path.Join(config.Path().Cache, strconv.Itoa(game.UserId))
if _, err := os.Stat(filePath); err != nil {
err = os.Mkdir(filePath, 0766)
@@ -105,7 +120,12 @@ func UploadSave(file multipart.File, game *database.Game) error {
if err != nil {
return err
}
defer f.Close()
defer func(f *os.File) {
err := f.Close()
if err != nil {
log.Println(err)
}
}(f)
_, err = io.Copy(f, file)
if err != nil {
return err