Loading server/core_group.go +11 −9 Original line number Diff line number Diff line Loading @@ -255,8 +255,8 @@ func GroupsUpdate(logger *zap.Logger, db *sql.DB, caller uuid.UUID, updates []*T groupLogger := logger.With(zap.String("group_id", groupID.String())) statements := make([]string, 6) params := make([]interface{}, 7) statements := make([]string, 5) params := make([]interface{}, 6) params[0] = groupID.Bytes() Loading @@ -272,17 +272,19 @@ func GroupsUpdate(logger *zap.Logger, db *sql.DB, caller uuid.UUID, updates []*T statements[3] = "lang = $5" params[4] = g.Lang statements[4] = "metadata = $6" params[5] = g.Metadata statements[5] = "state = $7" params[6] = 0 statements[4] = "state = $6" params[5] = 0 if g.Private { params[6] = 1 params[5] = 1 } if len(g.Metadata) != 0 { statements = append(statements, fmt.Sprintf("metadata = $%v", len(params)+1)) params = append(params, g.Metadata) } if g.Name != "" { statements = append(statements, "name = $8") statements = append(statements, fmt.Sprintf("name = $%v", len(params)+1)) params = append(params, g.Name) } Loading server/core_leaderboard.go +3 −3 Original line number Diff line number Diff line Loading @@ -25,16 +25,16 @@ import ( "go.uber.org/zap" ) func leaderboardCreate(logger *zap.Logger, db *sql.DB, id, sortOrder, resetSchedule, metadata string, authoritative bool) ([]byte, error) { func leaderboardCreate(logger *zap.Logger, db *sql.DB, id []byte, sortOrder, resetSchedule, metadata string, authoritative bool) ([]byte, error) { query := `INSERT INTO leaderboard (id, authoritative, sort_order, reset_schedule, metadata) VALUES ($1, $2, $3, $4, $5)` params := []interface{}{} // ID. if id == "" { if len(id) == 0 { params = append(params, uuid.NewV4().Bytes()) } else { params = append(params, []byte(id)) params = append(params, id) } // Authoritative. Loading server/runtime_nakama_module.go +10 −11 Original line number Diff line number Diff line Loading @@ -1273,12 +1273,6 @@ func (n *NakamaModule) leaderboardCreate(l *lua.LState) int { metadata := l.OptTable(4, l.NewTable()) authoritative := l.OptBool(5, false) leaderboardId, err := uuid.FromString(id) if err != nil { l.ArgError(1, "invalid leaderboard id") return 0 } if sort != "asc" && sort != "desc" { l.ArgError(2, "invalid sort - only acceptable values are 'asc' and 'desc'") return 0 Loading @@ -1291,7 +1285,7 @@ func (n *NakamaModule) leaderboardCreate(l *lua.LState) int { return 0 } _, err = leaderboardCreate(n.logger, n.db, leaderboardId.String(), sort, reset, string(metadataBytes), authoritative) _, err = leaderboardCreate(n.logger, n.db, []byte(id), sort, reset, string(metadataBytes), authoritative) if err != nil { l.RaiseError(fmt.Sprintf("failed to create leaderboard: %s", err.Error())) return 0 Loading Loading @@ -1334,13 +1328,13 @@ func (n *NakamaModule) leaderboardSubmit(l *lua.LState, op string) int { metadataMap := ConvertLuaTable(metadata) metadataBytes, err := json.Marshal(metadataMap) if err != nil { l.RaiseError(fmt.Sprintf("failed to convert metadata: %s", err.Error())) l.RaiseError(fmt.Sprintf("failed to convert leaderboard record metadata: %s", err.Error())) return 0 } record, err := leaderboardSubmit(n.logger, n.db, uuid.Nil, []byte(leaderboardID), ownerID, handle, lang, op, value, location, timezone, metadataBytes) if err != nil { l.RaiseError(fmt.Sprintf("failed to create leaderboard: %s", err.Error())) l.RaiseError(fmt.Sprintf("failed to submit leaderboard record: %s", err.Error())) return 0 } Loading @@ -1351,7 +1345,7 @@ func (n *NakamaModule) leaderboardSubmit(l *lua.LState, op string) int { outgoingMetadataMap := make(map[string]interface{}) err = json.Unmarshal(record.Metadata, &outgoingMetadataMap) if err != nil { l.RaiseError(fmt.Sprintf("failed to convert metadata to json: %s", err.Error())) l.RaiseError(fmt.Sprintf("failed to convert leaderboard record metadata to json: %s", err.Error())) return 0 } Loading Loading @@ -1451,7 +1445,7 @@ func (n *NakamaModule) groupsCreate(l *lua.LState) int { } }) // mandatory items // Check mandatory items. if p.Name == "" { conversionError = true l.ArgError(1, "missing group Name") Loading @@ -1462,6 +1456,11 @@ func (n *NakamaModule) groupsCreate(l *lua.LState) int { return } // Set defaults if the values are missing. if len(p.Metadata) == 0 { p.Metadata = []byte("{}") } groupParams = append(groupParams, p) }) Loading tests/modules/e2e_runtime.lua +11 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,14 @@ end -- leaderboard_create do local status, res = pcall(nk.leaderboard_submit_set, "ce042d38-c3db-4ebd-bc99-3aaa0adbdef7", 10, "4c2ae592-b2a7-445e-98ec-697694478b1c", "02ebb2c8") local id = nk.uuid_v4() local status, res = pcall(nk.leaderboard_create, id, "desc", "0 0 * * 1", {}, true) if not status then print(res) end assert(status == true) local status, res = pcall(nk.leaderboard_submit_set, id, 10, "4c2ae592-b2a7-445e-98ec-697694478b1c", "02ebb2c8") if not status then print(res) end Loading Loading @@ -150,6 +157,9 @@ do assert(status_update == true) local status_list, res_list = pcall(nk.groups_user_list, user_id) if not status_list then print(res_list) end assert(status_list == true) assert(#res_list == 1) assert(res_list[1].Group.Name == updated_group_name) Loading Loading
server/core_group.go +11 −9 Original line number Diff line number Diff line Loading @@ -255,8 +255,8 @@ func GroupsUpdate(logger *zap.Logger, db *sql.DB, caller uuid.UUID, updates []*T groupLogger := logger.With(zap.String("group_id", groupID.String())) statements := make([]string, 6) params := make([]interface{}, 7) statements := make([]string, 5) params := make([]interface{}, 6) params[0] = groupID.Bytes() Loading @@ -272,17 +272,19 @@ func GroupsUpdate(logger *zap.Logger, db *sql.DB, caller uuid.UUID, updates []*T statements[3] = "lang = $5" params[4] = g.Lang statements[4] = "metadata = $6" params[5] = g.Metadata statements[5] = "state = $7" params[6] = 0 statements[4] = "state = $6" params[5] = 0 if g.Private { params[6] = 1 params[5] = 1 } if len(g.Metadata) != 0 { statements = append(statements, fmt.Sprintf("metadata = $%v", len(params)+1)) params = append(params, g.Metadata) } if g.Name != "" { statements = append(statements, "name = $8") statements = append(statements, fmt.Sprintf("name = $%v", len(params)+1)) params = append(params, g.Name) } Loading
server/core_leaderboard.go +3 −3 Original line number Diff line number Diff line Loading @@ -25,16 +25,16 @@ import ( "go.uber.org/zap" ) func leaderboardCreate(logger *zap.Logger, db *sql.DB, id, sortOrder, resetSchedule, metadata string, authoritative bool) ([]byte, error) { func leaderboardCreate(logger *zap.Logger, db *sql.DB, id []byte, sortOrder, resetSchedule, metadata string, authoritative bool) ([]byte, error) { query := `INSERT INTO leaderboard (id, authoritative, sort_order, reset_schedule, metadata) VALUES ($1, $2, $3, $4, $5)` params := []interface{}{} // ID. if id == "" { if len(id) == 0 { params = append(params, uuid.NewV4().Bytes()) } else { params = append(params, []byte(id)) params = append(params, id) } // Authoritative. Loading
server/runtime_nakama_module.go +10 −11 Original line number Diff line number Diff line Loading @@ -1273,12 +1273,6 @@ func (n *NakamaModule) leaderboardCreate(l *lua.LState) int { metadata := l.OptTable(4, l.NewTable()) authoritative := l.OptBool(5, false) leaderboardId, err := uuid.FromString(id) if err != nil { l.ArgError(1, "invalid leaderboard id") return 0 } if sort != "asc" && sort != "desc" { l.ArgError(2, "invalid sort - only acceptable values are 'asc' and 'desc'") return 0 Loading @@ -1291,7 +1285,7 @@ func (n *NakamaModule) leaderboardCreate(l *lua.LState) int { return 0 } _, err = leaderboardCreate(n.logger, n.db, leaderboardId.String(), sort, reset, string(metadataBytes), authoritative) _, err = leaderboardCreate(n.logger, n.db, []byte(id), sort, reset, string(metadataBytes), authoritative) if err != nil { l.RaiseError(fmt.Sprintf("failed to create leaderboard: %s", err.Error())) return 0 Loading Loading @@ -1334,13 +1328,13 @@ func (n *NakamaModule) leaderboardSubmit(l *lua.LState, op string) int { metadataMap := ConvertLuaTable(metadata) metadataBytes, err := json.Marshal(metadataMap) if err != nil { l.RaiseError(fmt.Sprintf("failed to convert metadata: %s", err.Error())) l.RaiseError(fmt.Sprintf("failed to convert leaderboard record metadata: %s", err.Error())) return 0 } record, err := leaderboardSubmit(n.logger, n.db, uuid.Nil, []byte(leaderboardID), ownerID, handle, lang, op, value, location, timezone, metadataBytes) if err != nil { l.RaiseError(fmt.Sprintf("failed to create leaderboard: %s", err.Error())) l.RaiseError(fmt.Sprintf("failed to submit leaderboard record: %s", err.Error())) return 0 } Loading @@ -1351,7 +1345,7 @@ func (n *NakamaModule) leaderboardSubmit(l *lua.LState, op string) int { outgoingMetadataMap := make(map[string]interface{}) err = json.Unmarshal(record.Metadata, &outgoingMetadataMap) if err != nil { l.RaiseError(fmt.Sprintf("failed to convert metadata to json: %s", err.Error())) l.RaiseError(fmt.Sprintf("failed to convert leaderboard record metadata to json: %s", err.Error())) return 0 } Loading Loading @@ -1451,7 +1445,7 @@ func (n *NakamaModule) groupsCreate(l *lua.LState) int { } }) // mandatory items // Check mandatory items. if p.Name == "" { conversionError = true l.ArgError(1, "missing group Name") Loading @@ -1462,6 +1456,11 @@ func (n *NakamaModule) groupsCreate(l *lua.LState) int { return } // Set defaults if the values are missing. if len(p.Metadata) == 0 { p.Metadata = []byte("{}") } groupParams = append(groupParams, p) }) Loading
tests/modules/e2e_runtime.lua +11 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,14 @@ end -- leaderboard_create do local status, res = pcall(nk.leaderboard_submit_set, "ce042d38-c3db-4ebd-bc99-3aaa0adbdef7", 10, "4c2ae592-b2a7-445e-98ec-697694478b1c", "02ebb2c8") local id = nk.uuid_v4() local status, res = pcall(nk.leaderboard_create, id, "desc", "0 0 * * 1", {}, true) if not status then print(res) end assert(status == true) local status, res = pcall(nk.leaderboard_submit_set, id, 10, "4c2ae592-b2a7-445e-98ec-697694478b1c", "02ebb2c8") if not status then print(res) end Loading Loading @@ -150,6 +157,9 @@ do assert(status_update == true) local status_list, res_list = pcall(nk.groups_user_list, user_id) if not status_list then print(res_list) end assert(status_list == true) assert(#res_list == 1) assert(res_list[1].Group.Name == updated_group_name) Loading