mirror of
https://github.com/pagefaultgames/rogueserver.git
synced 2025-05-23 11:26:17 +08:00
Return generic error on non-existent save
This commit is contained in:
parent
4141d13a69
commit
21209ef4a7
@ -200,7 +200,7 @@ func handleSession(w http.ResponseWriter, r *http.Request) {
|
|||||||
switch r.PathValue("action") {
|
switch r.PathValue("action") {
|
||||||
case "get":
|
case "get":
|
||||||
save, err := savedata.GetSession(uuid, slot)
|
save, err := savedata.GetSession(uuid, slot)
|
||||||
if errors.Is(err, sql.ErrNoRows) {
|
if errors.Is(err, savedata.ErrSaveNotExist) {
|
||||||
http.Error(w, err.Error(), http.StatusNotFound)
|
http.Error(w, err.Error(), http.StatusNotFound)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -220,7 +220,7 @@ func handleSession(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
existingSave, err := savedata.GetSession(uuid, slot)
|
existingSave, err := savedata.GetSession(uuid, slot)
|
||||||
if err != nil && !errors.Is(err, sql.ErrNoRows) {
|
if err != nil && !errors.Is(err, savedata.ErrSaveNotExist) {
|
||||||
httpError(w, r, fmt.Errorf("failed to retrieve session save data: %s", err), http.StatusInternalServerError)
|
httpError(w, r, fmt.Errorf("failed to retrieve session save data: %s", err), http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
@ -339,7 +339,7 @@ func handleUpdateAll(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
existingPlaytime, err := savedata.GetPlaytime(uuid)
|
existingPlaytime, err := savedata.GetPlaytime(uuid)
|
||||||
if err != nil && !errors.Is(err, sql.ErrNoRows) {
|
if err != nil && !errors.Is(err, savedata.ErrSaveNotExist) {
|
||||||
httpError(w, r, fmt.Errorf("failed to retrieve playtime: %s", err), http.StatusInternalServerError)
|
httpError(w, r, fmt.Errorf("failed to retrieve playtime: %s", err), http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
@ -356,7 +356,7 @@ func handleUpdateAll(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
existingSave, err := savedata.GetSession(uuid, data.SessionSlotId)
|
existingSave, err := savedata.GetSession(uuid, data.SessionSlotId)
|
||||||
if err != nil && !errors.Is(err, sql.ErrNoRows) {
|
if err != nil && !errors.Is(err, savedata.ErrSaveNotExist) {
|
||||||
httpError(w, r, fmt.Errorf("failed to retrieve session save data: %s", err), http.StatusInternalServerError)
|
httpError(w, r, fmt.Errorf("failed to retrieve session save data: %s", err), http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
@ -417,7 +417,7 @@ func handleSystem(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
save, err := savedata.GetSystem(uuid)
|
save, err := savedata.GetSystem(uuid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, sql.ErrNoRows) {
|
if errors.Is(err, savedata.ErrSaveNotExist) {
|
||||||
http.Error(w, err.Error(), http.StatusNotFound)
|
http.Error(w, err.Error(), http.StatusNotFound)
|
||||||
} else {
|
} else {
|
||||||
httpError(w, r, fmt.Errorf("failed to get system save data: %s", err), http.StatusInternalServerError)
|
httpError(w, r, fmt.Errorf("failed to get system save data: %s", err), http.StatusInternalServerError)
|
||||||
@ -441,7 +441,7 @@ func handleSystem(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
existingPlaytime, err := savedata.GetPlaytime(uuid)
|
existingPlaytime, err := savedata.GetPlaytime(uuid)
|
||||||
if err != nil && !errors.Is(err, sql.ErrNoRows) {
|
if err != nil && !errors.Is(err, savedata.ErrSaveNotExist) {
|
||||||
httpError(w, r, fmt.Errorf("failed to retrieve playtime: %s", err), http.StatusInternalServerError)
|
httpError(w, r, fmt.Errorf("failed to retrieve playtime: %s", err), http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
package savedata
|
package savedata
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"database/sql"
|
||||||
|
"errors"
|
||||||
|
|
||||||
"github.com/pagefaultgames/rogueserver/db"
|
"github.com/pagefaultgames/rogueserver/db"
|
||||||
"github.com/pagefaultgames/rogueserver/defs"
|
"github.com/pagefaultgames/rogueserver/defs"
|
||||||
)
|
)
|
||||||
@ -25,6 +28,10 @@ import (
|
|||||||
func GetSession(uuid []byte, slot int) (defs.SessionSaveData, error) {
|
func GetSession(uuid []byte, slot int) (defs.SessionSaveData, error) {
|
||||||
session, err := db.ReadSessionSaveData(uuid, slot)
|
session, err := db.ReadSessionSaveData(uuid, slot)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.Is(err, sql.ErrNoRows) {
|
||||||
|
err = ErrSaveNotExist
|
||||||
|
}
|
||||||
|
|
||||||
return session, err
|
return session, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,21 +18,33 @@
|
|||||||
package savedata
|
package savedata
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"database/sql"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"github.com/aws/aws-sdk-go-v2/service/s3/types"
|
||||||
"github.com/pagefaultgames/rogueserver/db"
|
"github.com/pagefaultgames/rogueserver/db"
|
||||||
"github.com/pagefaultgames/rogueserver/defs"
|
"github.com/pagefaultgames/rogueserver/defs"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var ErrSaveNotExist = errors.New("save does not exist")
|
||||||
|
|
||||||
func GetSystem(uuid []byte) (defs.SystemSaveData, error) {
|
func GetSystem(uuid []byte) (defs.SystemSaveData, error) {
|
||||||
var system defs.SystemSaveData
|
var system defs.SystemSaveData
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
if os.Getenv("S3_SYSTEM_BUCKET_NAME") != "" { // use S3
|
if os.Getenv("S3_SYSTEM_BUCKET_NAME") != "" { // use S3
|
||||||
system, err = db.GetSystemSaveFromS3(uuid)
|
system, err = db.GetSystemSaveFromS3(uuid)
|
||||||
|
var nokey *types.NoSuchKey
|
||||||
|
if errors.As(err, &nokey) {
|
||||||
|
err = ErrSaveNotExist
|
||||||
|
}
|
||||||
} else { // use database
|
} else { // use database
|
||||||
system, err = db.ReadSystemSaveData(uuid)
|
system, err = db.ReadSystemSaveData(uuid)
|
||||||
|
if errors.Is(err, sql.ErrNoRows) {
|
||||||
|
err = ErrSaveNotExist
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return system, err
|
return system, err
|
||||||
|
Loading…
x
Reference in New Issue
Block a user