optimize the amount data sent from the backend

This commit is contained in:
2023-02-12 02:49:33 -03:00
parent 63106edd97
commit 1caceda470
20 changed files with 229 additions and 91 deletions

View File

@@ -16,7 +16,7 @@ func ListFrame(writer http.ResponseWriter, request *http.Request, params httprou
gdb := database.Connect()
defer database.Close(gdb)
var frame []models.Frame
var frames []models.Frame
queryParams := request.URL.Query()
@@ -40,14 +40,20 @@ func ListFrame(writer http.ResponseWriter, request *http.Request, params httprou
return
}
result := gdb.Model(&models.Frame{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&frame)
result := gdb.Model(&models.Frame{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&frames)
if result.Error != nil {
utils.JSONErrorOutput(writer, http.StatusBadRequest, result.Error.Error())
return
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(frame)
var framesPublic []models.FramePublic
for _, frame := range frames {
framesPublic = append(framesPublic, models.FramePublic{Frame: frame})
}
json.NewEncoder(writer).Encode(framesPublic)
}
}
@@ -67,7 +73,7 @@ func GetFrame(writer http.ResponseWriter, request *http.Request, params httprout
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(frame)
json.NewEncoder(writer).Encode(models.FramePublic{Frame: frame})
}
}

View File

@@ -57,7 +57,13 @@ func ListGame(writer http.ResponseWriter, request *http.Request, params httprout
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(games)
var gamesPublic []models.GamePublic
for _, game := range games {
gamesPublic = append(gamesPublic, models.GamePublic{Game: game})
}
json.NewEncoder(writer).Encode(gamesPublic)
return
}
}
@@ -78,7 +84,7 @@ func GetGame(writer http.ResponseWriter, request *http.Request, params httproute
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(game)
json.NewEncoder(writer).Encode(models.GamePublic{Game: game})
return
}
}

View File

@@ -16,7 +16,7 @@ func ListGodotVersion(writer http.ResponseWriter, request *http.Request, params
gdb := database.Connect()
defer database.Close(gdb)
var godotVersion []models.GodotVersion
var godotVersions []models.GodotVersion
queryParams := request.URL.Query()
@@ -44,14 +44,20 @@ func ListGodotVersion(writer http.ResponseWriter, request *http.Request, params
return
}
result := gdb.Model(&models.GodotVersion{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&godotVersion)
result := gdb.Model(&models.GodotVersion{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&godotVersions)
if result.Error != nil {
utils.JSONErrorOutput(writer, http.StatusBadRequest, result.Error.Error())
return
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(godotVersion)
var godotVersionsPublic []models.GodotVersionPublic
for _, godotversion := range godotVersions {
godotVersionsPublic = append(godotVersionsPublic, models.GodotVersionPublic{GodotVersion: godotversion})
}
json.NewEncoder(writer).Encode(godotVersionsPublic)
}
}
@@ -71,7 +77,7 @@ func GetGodotVersion(writer http.ResponseWriter, request *http.Request, params h
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(godotVersion)
json.NewEncoder(writer).Encode(models.GodotVersionPublic{GodotVersion: godotVersion})
}
}

View File

@@ -16,7 +16,7 @@ func ListLevel(writer http.ResponseWriter, request *http.Request, params httprou
gdb := database.Connect()
defer database.Close(gdb)
var level []models.Level
var levels []models.Level
queryParams := request.URL.Query()
@@ -36,14 +36,20 @@ func ListLevel(writer http.ResponseWriter, request *http.Request, params httprou
return
}
result := gdb.Model(&models.Level{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&level)
result := gdb.Model(&models.Level{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&levels)
if result.Error != nil {
utils.JSONErrorOutput(writer, http.StatusBadRequest, result.Error.Error())
return
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(level)
var levelsPublic []models.LevelPublic
for _, level := range levels {
levelsPublic = append(levelsPublic, models.LevelPublic{Level: level})
}
json.NewEncoder(writer).Encode(levelsPublic)
}
}
@@ -63,7 +69,7 @@ func GetLevel(writer http.ResponseWriter, request *http.Request, params httprout
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(level)
json.NewEncoder(writer).Encode(models.LevelPublic{Level: level})
}
}

View File

@@ -16,7 +16,7 @@ func ListObject(writer http.ResponseWriter, request *http.Request, params httpro
gdb := database.Connect()
defer database.Close(gdb)
var object []models.Object
var objects []models.Object
queryParams := request.URL.Query()
@@ -42,14 +42,20 @@ func ListObject(writer http.ResponseWriter, request *http.Request, params httpro
return
}
result := gdb.Model(&models.Object{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&object)
result := gdb.Model(&models.Object{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&objects)
if result.Error != nil {
utils.JSONErrorOutput(writer, http.StatusBadRequest, result.Error.Error())
return
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(object)
var objectsPublic []models.ObjectPublic
for _, object := range objects {
objectsPublic = append(objectsPublic, models.ObjectPublic{Object: object})
}
json.NewEncoder(writer).Encode(objectsPublic)
}
}
@@ -69,7 +75,7 @@ func GetObject(writer http.ResponseWriter, request *http.Request, params httprou
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(object)
json.NewEncoder(writer).Encode(models.ObjectPublic{Object: object})
}
}

View File

@@ -16,7 +16,7 @@ func ListObjectName(writer http.ResponseWriter, request *http.Request, params ht
gdb := database.Connect()
defer database.Close(gdb)
var objectName []models.ObjectName
var objectNames []models.ObjectName
queryParams := request.URL.Query()
@@ -36,14 +36,20 @@ func ListObjectName(writer http.ResponseWriter, request *http.Request, params ht
return
}
result := gdb.Model(&models.ObjectName{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&objectName)
result := gdb.Model(&models.ObjectName{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&objectNames)
if result.Error != nil {
utils.JSONErrorOutput(writer, http.StatusBadRequest, result.Error.Error())
return
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(objectName)
var objectNamesPublic []models.ObjectNamePublic
for _, objectname := range objectNames {
objectNamesPublic = append(objectNamesPublic, models.ObjectNamePublic{ObjectName: objectname})
}
json.NewEncoder(writer).Encode(objectNamesPublic)
}
}
@@ -63,7 +69,7 @@ func GetObjectName(writer http.ResponseWriter, request *http.Request, params htt
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(objectName)
json.NewEncoder(writer).Encode(models.ObjectNamePublic{ObjectName: objectName})
}
}

View File

@@ -16,7 +16,7 @@ func ListObjectState(writer http.ResponseWriter, request *http.Request, params h
gdb := database.Connect()
defer database.Close(gdb)
var objectState []models.ObjectState
var objectStates []models.ObjectState
queryParams := request.URL.Query()
@@ -36,14 +36,20 @@ func ListObjectState(writer http.ResponseWriter, request *http.Request, params h
return
}
result := gdb.Model(&models.ObjectState{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&objectState)
result := gdb.Model(&models.ObjectState{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&objectStates)
if result.Error != nil {
utils.JSONErrorOutput(writer, http.StatusBadRequest, result.Error.Error())
return
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(objectState)
var objectStatesPublic []models.ObjectStatePublic
for _, objectstate := range objectStates {
objectStatesPublic = append(objectStatesPublic, models.ObjectStatePublic{ObjectState: objectstate})
}
json.NewEncoder(writer).Encode(objectStatesPublic)
}
}
@@ -63,7 +69,7 @@ func GetObjectState(writer http.ResponseWriter, request *http.Request, params ht
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(objectState)
json.NewEncoder(writer).Encode(models.ObjectStatePublic{ObjectState: objectState})
}
}

View File

@@ -16,7 +16,7 @@ func ListOS(writer http.ResponseWriter, request *http.Request, params httprouter
gdb := database.Connect()
defer database.Close(gdb)
var os []models.OS
var oses []models.OS
queryParams := request.URL.Query()
@@ -36,14 +36,20 @@ func ListOS(writer http.ResponseWriter, request *http.Request, params httprouter
return
}
result := gdb.Model(&models.OS{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&os)
result := gdb.Model(&models.OS{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&oses)
if result.Error != nil {
utils.JSONErrorOutput(writer, http.StatusBadRequest, result.Error.Error())
return
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(os)
var osesPublic []models.OSPublic
for _, os := range oses {
osesPublic = append(osesPublic, models.OSPublic{OS: os})
}
json.NewEncoder(writer).Encode(osesPublic)
}
}
@@ -63,7 +69,7 @@ func GetOS(writer http.ResponseWriter, request *http.Request, params httprouter.
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(os)
json.NewEncoder(writer).Encode(models.OSPublic{OS: os})
}
}

View File

@@ -16,7 +16,7 @@ func ListPlayer(writer http.ResponseWriter, request *http.Request, params httpro
gdb := database.Connect()
defer database.Close(gdb)
var player []models.Player
var players []models.Player
queryParams := request.URL.Query()
@@ -38,14 +38,20 @@ func ListPlayer(writer http.ResponseWriter, request *http.Request, params httpro
return
}
result := gdb.Model(&models.Player{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&player)
result := gdb.Model(&models.Player{}).Where(whereClause).Order("ID asc").Limit(limit).Offset(offset).Find(&players)
if result.Error != nil {
utils.JSONErrorOutput(writer, http.StatusBadRequest, result.Error.Error())
return
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(player)
var playersPublic []models.PlayerPublic
for _, player := range players {
playersPublic = append(playersPublic, models.PlayerPublic{Player: player})
}
json.NewEncoder(writer).Encode(playersPublic)
}
}
@@ -65,7 +71,7 @@ func GetPlayer(writer http.ResponseWriter, request *http.Request, params httprou
} else {
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(player)
json.NewEncoder(writer).Encode(models.PlayerPublic{Player: player})
}
}

View File

@@ -46,12 +46,15 @@ func ListUser(writer http.ResponseWriter, request *http.Request, params httprout
utils.JSONErrorOutput(writer, http.StatusBadRequest, result.Error.Error())
return
} else {
for i := range users {
users[i].Password = ""
}
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(users)
var usersPublic []models.UserPublic
for _, user := range users {
usersPublic = append(usersPublic, models.UserPublic{User: user})
}
json.NewEncoder(writer).Encode(usersPublic)
}
}
@@ -69,10 +72,9 @@ func GetUser(writer http.ResponseWriter, request *http.Request, params httproute
writer.WriteHeader(http.StatusNotFound)
return
} else {
user.Password = ""
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
json.NewEncoder(writer).Encode(user)
json.NewEncoder(writer).Encode(models.UserPublic{User: user})
}
}