Commit c6c4e23d authored by Andrei Mihu's avatar Andrei Mihu
Browse files

Update group creation parameter usage.

parent f8937c53
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr
- Allow tournament joins before the start of the tournament active period.
- Authoritative matches now complete their stop phase faster to avoid unnecessary processing.
- Authoritative match join attempts now have their own bounded queue and no longer count towards the match call queue limit.
- Lua runtime group create function now sets the correct default max size if one is not specified.

### Fixed
- Correctly report execution mode in Lua runtime after hooks.
@@ -33,6 +34,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr
- Leaderboard and tournament runtime callbacks no longer trigger twice when time delays are observed.
- Check group max allowed user when promoting a user.
- Correct Lua runtime decoding of stream identifying parameters.
- Correctly use optional parameters when they are passed to group creation operations.

## [2.2.1] - 2018-11-20
### Added
+21 −31
Original line number Diff line number Diff line
@@ -63,43 +63,33 @@ func CreateGroup(ctx context.Context, logger *zap.Logger, db *sql.DB, userID uui
	}

	params := []interface{}{uuid.Must(uuid.NewV4()), creatorID, name, desc, avatarURL, state}
	query := `
INSERT INTO groups
	(id, creator_id, name, description, avatar_url, state, edge_count)
VALUES
	($1, $2, $3, $4, $5, $6, 1)
RETURNING id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time`
	if lang != "" {
		params = append(params, lang)
		query = `
INSERT INTO groups
	(id, creator_id, name, description, avatar_url, state, edge_count, lang_tag)
VALUES
	($1, $2, $3, $4, $5, $6, 1, $7)
RETURNING id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time`
	}
	statements := []string{"$1", "$2", "$3", "$4", "$5", "$6"}

	// called from the client
	if maxCount > 0 && metadata != "" {
		params = append(params, maxCount, metadata) //no need to add 'lang' again
	query := "INSERT INTO groups(id, creator_id, name, description, avatar_url, state"

	// Add lang tag if any.
	if lang != "" {
			query = `
INSERT INTO groups
	(id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata)
VALUES
	($1, $2, $3, $4, $5, $6, 1, $7, $8, $9)
RETURNING id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time`
		} else {
			query = `
INSERT INTO groups
	(id, creator_id, name, description, avatar_url, state, edge_count, max_count, metadata)
VALUES
	($1, $2, $3, $4, $5, $6, 1, $7, $8)
RETURNING id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time`
		query += ", lang_tag"
		params = append(params, lang)
		statements = append(statements, "$"+strconv.Itoa(len(params)))
	}
	// Add max count if any.
	if maxCount > 0 {
		query += ", max_count"
		params = append(params, maxCount)
		statements = append(statements, "$"+strconv.Itoa(len(params)))
	}
	// Add metadata if any.
	if metadata != "" {
		query += ", metadata"
		params = append(params, metadata)
		statements = append(statements, "$"+strconv.Itoa(len(params)))
	}

	// Add the trailing edge count value.
	query += `, edge_count) VALUES (` + strings.Join(statements, ",") + `,1)
RETURNING id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time`

	tx, err := db.BeginTx(ctx, nil)
	if err != nil {
		logger.Error("Could not begin database transaction.", zap.Error(err))
+1 −1
Original line number Diff line number Diff line
@@ -4401,7 +4401,7 @@ func (n *RuntimeLuaNakamaModule) groupCreate(l *lua.LState) int {
		}
		metadataStr = string(metadataBytes)
	}
	maxCount := l.OptInt(9, 0)
	maxCount := l.OptInt(9, 100)
	if maxCount < 1 || maxCount > 100 {
		l.ArgError(9, "expects max_count to be >= 1 and <= 100")
		return 0
+73 −72

File changed.

Preview size limit exceeded, changes collapsed.

+11 −10
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
package tests

import (
	"context"
	"errors"
	"io/ioutil"
	"net/http"
@@ -320,7 +321,7 @@ nakama.register_rpc(test.printWorld, "helloworld")`,
	}

	payload := "Hello World"
	result, err, _ := fn(nil, "", "", 0, "", "", "", payload)
	result, err, _ := fn(context.Background(), nil, "", "", 0, "", "", "", payload)
	if err != nil {
		t.Fatal(err.Error())
	}
@@ -398,7 +399,7 @@ nakama.register_rpc(test, "test")`,
		t.Fatal("Expected RPC function to be registered")
	}

	result, err, _ := fn(nil, "", "", 0, "", "", "", "")
	result, err, _ := fn(context.Background(), nil, "", "", 0, "", "", "", "")
	if err != nil {
		t.Fatal(err)
	}
@@ -429,7 +430,7 @@ nakama.register_rpc(test, "test")`,
	}

	payload := "{\"key\":\"value\"}"
	result, err, _ := fn(nil, "", "", 0, "", "", "", payload)
	result, err, _ := fn(context.Background(), nil, "", "", 0, "", "", "", payload)
	if err != nil {
		t.Fatal(err)
	}
@@ -460,7 +461,7 @@ nakama.register_rpc(test, "test")`,
	}

	payload := "{\"key\":\"value\"}"
	result, err, _ := fn(nil, "", "", 0, "", "", "", payload)
	result, err, _ := fn(context.Background(), nil, "", "", 0, "", "", "", payload)
	if err != nil {
		t.Fatal(err)
	}
@@ -491,7 +492,7 @@ nakama.register_rpc(test, "test")`,
	}

	payload := "{\"key\":\"value\"}"
	result, err, _ := fn(nil, "", "", 0, "", "", "", payload)
	result, err, _ := fn(context.Background(), nil, "", "", 0, "", "", "", payload)
	if err != nil {
		t.Fatal(err)
	}
@@ -522,7 +523,7 @@ nakama.register_rpc(test, "test")`,
	}

	payload := "{\"key\":\"value\"}"
	result, err, _ := fn(nil, "", "", 0, "", "", "", payload)
	result, err, _ := fn(context.Background(), nil, "", "", 0, "", "", "", payload)
	if err != nil {
		t.Fatal(err)
	}
@@ -579,7 +580,7 @@ nakama.register_rpc(test, "test")`,
	}

	payload := "{\"key\":\"value\"}"
	result, err, _ := fn(nil, "", "", 0, "", "", "", payload)
	result, err, _ := fn(context.Background(), nil, "", "", 0, "", "", "", payload)
	if err != nil {
		t.Fatal(err)
	}
@@ -612,7 +613,7 @@ nakama.register_rpc(test, "test")`,

	payload := "something_to_encrypt"
	hash, _ := bcrypt.GenerateFromPassword([]byte(payload), bcrypt.DefaultCost)
	result, err, _ := fn(nil, "", "", 0, "", "", "", string(hash))
	result, err, _ := fn(context.Background(), nil, "", "", 0, "", "", "", string(hash))
	if err != nil {
		t.Fatal(err)
	}
@@ -980,7 +981,7 @@ local users = nk.group_users_list(group.id)
for i, u in ipairs(users)
do
  assert(u.user.id == user_id, "'u.id' must be equal to user_id")
	assert(u.state == 1, "'u.state' must be equal to 1 / superadmin")
	assert(u.state == 0, "'u.state' must be equal to 0 / superadmin")
end

local groups = nk.user_groups_list(user_id)
@@ -988,7 +989,7 @@ for i, g in ipairs(groups)
do
	print(nk.json_encode(g))
  assert(g.group.name == group_update_name, "'g.name' must be equal to group_update_name")
	assert(g.state == 1, "'g.state' must be equal to 1 / superadmin")
	assert(g.state == 0, "'g.state' must be equal to 0 / superadmin")
end

nk.group_delete(group.id)`,
Loading