Skip to content

Commit

Permalink
fix: Update to Matt's changes
Browse files Browse the repository at this point in the history
  • Loading branch information
spydon committed Nov 28, 2023
1 parent 3a31dc7 commit 4dd2c79
Show file tree
Hide file tree
Showing 27 changed files with 770 additions and 587 deletions.
1 change: 0 additions & 1 deletion packages/app_center/lib/src/ratings/exports.dart
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
export 'package:app_center_ratings_client/src/app.dart';
export 'package:app_center_ratings_client/src/user.dart';
1 change: 1 addition & 0 deletions packages/app_center/lib/src/ratings/ratings_l10n.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'package:app_center_ratings_client/ratings_client.dart';
import 'package:flutter/material.dart';

import '/l10n.dart';
Expand Down
1 change: 1 addition & 0 deletions packages/app_center/lib/src/ratings/ratings_model.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'package:app_center_ratings_client/ratings_client.dart';
import 'package:clock/clock.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
Expand Down
1 change: 1 addition & 0 deletions packages/app_center/test/app_card_test.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:app_center/ratings.dart';
import 'package:app_center/widgets.dart';
import 'package:app_center_ratings_client/ratings_client.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:snapd/snapd.dart';
Expand Down
1 change: 1 addition & 0 deletions packages/app_center/test/ratings_model_test.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:app_center/ratings.dart';
import 'package:app_center_ratings_client/ratings_client.dart';
import 'package:clock/clock.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
Expand Down
1 change: 1 addition & 0 deletions packages/app_center/test/ratings_service_test.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:app_center/src/ratings/exports.dart';
import 'package:app_center/src/ratings/ratings_service.dart';
import 'package:app_center_ratings_client/ratings_client.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';

Expand Down
1 change: 1 addition & 0 deletions packages/app_center/test/search_page_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'package:app_center/ratings.dart';
import 'package:app_center/search.dart';
import 'package:app_center/snapd.dart';
import 'package:app_center/widgets.dart';
import 'package:app_center_ratings_client/ratings_client.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:snapd/snapd.dart';
Expand Down
1 change: 1 addition & 0 deletions packages/app_center/test/snap_page_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'package:app_center/l10n.dart';
import 'package:app_center/ratings.dart';
import 'package:app_center/snapd.dart';
import 'package:app_center/widgets.dart';
import 'package:app_center_ratings_client/ratings_client.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
Expand Down
86 changes: 51 additions & 35 deletions packages/app_center_ratings_client/lib/ratings_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,20 @@ import 'dart:async';
import 'package:grpc/grpc.dart';
import 'package:meta/meta.dart';

import 'src/app.dart' as app;
import 'src/chart.dart';
import 'src/generated/google/protobuf/empty.pb.dart';
import 'src/generated/ratings_features_app.pbgrpc.dart';
import 'src/generated/ratings_features_user.pbgrpc.dart';
import 'src/user.dart' as user;
import 'src/generated/ratings_features_app.pbgrpc.dart' as appPb;
import 'src/generated/ratings_features_chart.pbgrpc.dart' as chartPb;
import 'src/generated/ratings_features_user.pbgrpc.dart' as userPb;
import 'src/ratings.dart';
import 'src/user.dart';

export 'src/ratings.dart' hide RatingsBandL10n;

class RatingsClient {
late AppClient _appClient;
late UserClient _userClient;
late appPb.AppClient _appClient;
late userPb.UserClient _userClient;
late chartPb.ChartClient _chartClient;

RatingsClient(String serverUrl, int port) {
final channel = ClientChannel(
Expand All @@ -21,22 +26,46 @@ class RatingsClient {
credentials: ChannelCredentials.insecure(),
),
);
_appClient = AppClient(channel);
_userClient = UserClient(channel);
_appClient = appPb.AppClient(channel);
_userClient = userPb.UserClient(channel);
_chartClient = chartPb.ChartClient(channel);
}

// Additional constructor for testing
@visibleForTesting
RatingsClient.withClients(
this._appClient,
this._userClient,
this._chartClient,
);

Future<app.Rating> getRating(
Future<String> authenticate(String id) async {
final request = userPb.AuthenticateRequest(id: id);
final grpcResponse = await _userClient.authenticate(request);
return grpcResponse.token;
}

Future<void> delete(String token) async {
final request = Empty();
final callOptions =
CallOptions(metadata: {'authorization': 'Bearer $token'});
await _userClient.delete(request, options: callOptions);
}

Future<List<ChartData>> getChart(Timeframe timeframe, String token) async {
final request = chartPb.GetChartRequest(timeframe: timeframe.toDTO());
final callOptions =
CallOptions(metadata: {'authorization': 'Bearer $token'});
final grpcResponse =
await _chartClient.getChart(request, options: callOptions);
return grpcResponse.orderedChartData.map((data) => data.fromDTO()).toList();
}

Future<Rating> getRating(
String snapId,
String token,
) async {
final request = GetRatingRequest(snapId: snapId);
final request = appPb.GetRatingRequest(snapId: snapId);
final callOptions =
CallOptions(metadata: {'authorization': 'Bearer $token'});
final grpcResponse = await _appClient.getRating(
Expand All @@ -46,14 +75,19 @@ class RatingsClient {
return grpcResponse.rating.fromDTO();
}

Future<String> authenticate(String id) async {
final request = AuthenticateRequest(id: id);
final grpcResponse = await _userClient.authenticate(request);
return grpcResponse.token;
Future<List<Vote>> getSnapVotes(String snap_id, String token) async {
final request = userPb.GetSnapVotesRequest(snapId: snap_id);
final callOptions =
CallOptions(metadata: {'authorization': 'Bearer $token'});
final grpcResponse = await _userClient.getSnapVotes(
request,
options: callOptions,
);
return grpcResponse.votes.map((vote) => vote.fromDTO()).toList();
}

Future<List<user.Vote>> listMyVotes(String snapIdFilter, String token) async {
final request = ListMyVotesRequest(snapIdFilter: snapIdFilter);
Future<List<Vote>> listMyVotes(String snapIdFilter, String token) async {
final request = userPb.ListMyVotesRequest(snapIdFilter: snapIdFilter);
final callOptions =
CallOptions(metadata: {'authorization': 'Bearer $token'});
final grpcResponse = await _userClient.listMyVotes(
Expand All @@ -65,7 +99,7 @@ class RatingsClient {

Future<void> vote(
String snapId, int snapRevision, bool voteUp, String token) async {
final request = VoteRequest(
final request = userPb.VoteRequest(
snapId: snapId,
snapRevision: snapRevision,
voteUp: voteUp,
Expand All @@ -74,22 +108,4 @@ class RatingsClient {
CallOptions(metadata: {'authorization': 'Bearer $token'});
await _userClient.vote(request, options: callOptions);
}

Future<void> delete(String token) async {
final request = Empty();
final callOptions =
CallOptions(metadata: {'authorization': 'Bearer $token'});
await _userClient.delete(request, options: callOptions);
}

Future<List<user.Vote>> getSnapVotes(String snap_id, String token) async {
final request = GetSnapVotesRequest(snapId: snap_id);
final callOptions =
CallOptions(metadata: {'authorization': 'Bearer $token'});
final grpcResponse = await _userClient.getSnapVotes(
request,
options: callOptions,
);
return grpcResponse.votes.map((vote) => vote.fromDTO()).toList();
}
}
169 changes: 0 additions & 169 deletions packages/app_center_ratings_client/lib/src/app.freezed.dart

This file was deleted.

Loading

0 comments on commit 4dd2c79

Please sign in to comment.