Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr - Correct handling of `httpRequest` calls in the Lua runtime Nakama module. - Fix handling of users attempting to leave groups they're banned from. - Fix handling of optional parameters in JS runtime token generate function. - Ensure group count does not update when failing to add a member. ## [3.14.0] - 2022-10-14 ### Added Loading server/core_group.go +10 −1 Original line number Diff line number Diff line Loading @@ -428,11 +428,20 @@ WHERE (id = $1) AND (disable_time = '1970-01-01 00:00:00 UTC')` } query = "UPDATE groups SET edge_count = edge_count + 1, update_time = now() WHERE id = $1::UUID AND edge_count+1 <= max_count" if _, err = tx.ExecContext(ctx, query, groupID); err != nil { res, err := tx.ExecContext(ctx, query, groupID) if err != nil { logger.Debug("Could not update group edge_count.", zap.String("group_id", groupID.String()), zap.String("user_id", userID.String())) return err } if rowsAffected, err := res.RowsAffected(); err != nil { logger.Debug("Could not update group edge_count.", zap.Error(err), zap.String("group_id", groupID.String()), zap.String("user_id", userID.String())) return err } else if rowsAffected == 0 { logger.Info("Could not add users as group maximum count was reached.", zap.String("group_id", groupID.String()), zap.String("user_id", userID.String())) return runtime.ErrGroupFull } query = `INSERT INTO message (id, code, sender_id, username, stream_mode, stream_subject, stream_descriptor, stream_label, content, create_time, update_time) VALUES ($1, $2, $3, $4, $5, $6::UUID, $7::UUID, $8, $9, $10, $10)` if _, err = tx.ExecContext(ctx, query, message.MessageId, message.Code.Value, message.SenderId, message.Username, stream.Mode, stream.Subject, stream.Subcontext, stream.Label, message.Content, time.Unix(message.CreateTime.Seconds, 0).UTC()); err != nil { Loading Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr - Correct handling of `httpRequest` calls in the Lua runtime Nakama module. - Fix handling of users attempting to leave groups they're banned from. - Fix handling of optional parameters in JS runtime token generate function. - Ensure group count does not update when failing to add a member. ## [3.14.0] - 2022-10-14 ### Added Loading
server/core_group.go +10 −1 Original line number Diff line number Diff line Loading @@ -428,11 +428,20 @@ WHERE (id = $1) AND (disable_time = '1970-01-01 00:00:00 UTC')` } query = "UPDATE groups SET edge_count = edge_count + 1, update_time = now() WHERE id = $1::UUID AND edge_count+1 <= max_count" if _, err = tx.ExecContext(ctx, query, groupID); err != nil { res, err := tx.ExecContext(ctx, query, groupID) if err != nil { logger.Debug("Could not update group edge_count.", zap.String("group_id", groupID.String()), zap.String("user_id", userID.String())) return err } if rowsAffected, err := res.RowsAffected(); err != nil { logger.Debug("Could not update group edge_count.", zap.Error(err), zap.String("group_id", groupID.String()), zap.String("user_id", userID.String())) return err } else if rowsAffected == 0 { logger.Info("Could not add users as group maximum count was reached.", zap.String("group_id", groupID.String()), zap.String("user_id", userID.String())) return runtime.ErrGroupFull } query = `INSERT INTO message (id, code, sender_id, username, stream_mode, stream_subject, stream_descriptor, stream_label, content, create_time, update_time) VALUES ($1, $2, $3, $4, $5, $6::UUID, $7::UUID, $8, $9, $10, $10)` if _, err = tx.ExecContext(ctx, query, message.MessageId, message.Code.Value, message.SenderId, message.Username, stream.Mode, stream.Subject, stream.Subcontext, stream.Label, message.Content, time.Unix(message.CreateTime.Seconds, 0).UTC()); err != nil { Loading