Skip to content

Commit

Permalink
Add writeLeaderboardRecord
Browse files Browse the repository at this point in the history
  • Loading branch information
aminalaee committed Jul 7, 2022
1 parent 6255b2f commit 0e04441
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 0 deletions.
21 changes: 21 additions & 0 deletions lib/src/nakama_client/nakama_api_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -459,4 +459,25 @@ class NakamaRestApiClient extends NakamaBaseClient {

return LeaderboardRecordList()..mergeFromProto3Json(res.body!.toJson());
}

@override
Future<LeaderboardRecord> writeLeaderboardRecord({
required model.Session session,
required String leaderboardId,
int? score,
int? subscore,
String? metadata,
}) async {
_session = session;

final res = await _api.nakamaWriteLeaderboardRecord(
leaderboardId: leaderboardId,
body: WriteLeaderboardRecordRequestLeaderboardRecordWrite(
score: score?.toString(),
subscore: subscore?.toString(),
metadata: metadata,
));

return LeaderboardRecord()..mergeFromProto3Json(res.body!.toJson());
}
}
8 changes: 8 additions & 0 deletions lib/src/nakama_client/nakama_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -128,4 +128,12 @@ abstract class NakamaBaseClient {
String? cursor,
DateTime? expiry,
});

Future<LeaderboardRecord> writeLeaderboardRecord({
required model.Session session,
required String leaderboardId,
int? score,
int? subscore,
String? metadata,
});
}
21 changes: 21 additions & 0 deletions lib/src/nakama_client/nakama_grpc_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -438,4 +438,25 @@ class NakamaGrpcClient extends NakamaBaseClient {
options: _getSessionCallOptions(session),
);
}

@override
Future<LeaderboardRecord> writeLeaderboardRecord({
required model.Session session,
required String leaderboardId,
int? score,
int? subscore,
String? metadata,
}) async {
return await _client.writeLeaderboardRecord(
WriteLeaderboardRecordRequest(
leaderboardId: leaderboardId,
record: WriteLeaderboardRecordRequest_LeaderboardRecordWrite(
score: score == null ? null : Int64(score),
subscore: subscore == null ? null : Int64(subscore),
metadata: metadata,
),
),
options: _getSessionCallOptions(session),
);
}
}
8 changes: 8 additions & 0 deletions test/grpc/leaderboard_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,13 @@ void main() {

expect(result, isA<api.LeaderboardRecordList>());
});

test('write leaderboard record', () async {
final result = await client.writeLeaderboardRecord(
session: session, leaderboardId: 'test', score: 10);

expect(result, isA<api.LeaderboardRecord>());
expect(result.score.toInt(), equals(10));
});
});
}
8 changes: 8 additions & 0 deletions test/rest/leaderboard_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,13 @@ void main() {

expect(result, isA<api.LeaderboardRecordList>());
});

test('write leaderboard record', () async {
final result = await client.writeLeaderboardRecord(
session: session, leaderboardId: 'test', score: 10);

expect(result, isA<api.LeaderboardRecord>());
expect(result.score.toInt(), equals(10));
});
});
}

0 comments on commit 0e04441

Please sign in to comment.