public ApiService(string serverAddr, FeedReaderClient client) { _serverAddr = serverAddr; var httpHandler = new HttpClientHandler(); var grpcHandler = new GrpcWebHandler(GrpcWebMode.GrpcWebText, httpHandler); _apiClient = new FeedReaderServerApiClient(GrpcChannel.ForAddress(_serverAddr, new GrpcChannelOptions { HttpHandler = grpcHandler })); _client = client; }
public async Task <User> LoginAsync(string token) { var httpHandler = new CustomizedHttpClientHandler(token); var grpcHandler = new GrpcWebHandler(GrpcWebMode.GrpcWebText, httpHandler); _apiClient = new FeedReaderServerApiClient(GrpcChannel.ForAddress(_serverAddr, new GrpcChannelOptions { HttpHandler = grpcHandler })); var user = await _apiClient.LoginAsync(new Protos.LoginRequest()); // Switch the token. httpHandler = new CustomizedHttpClientHandler(user.Token); grpcHandler = new GrpcWebHandler(GrpcWebMode.GrpcWebText, httpHandler); _apiClient = new FeedReaderServerApiClient(GrpcChannel.ForAddress(_serverAddr, new GrpcChannelOptions { HttpHandler = grpcHandler })); _client.SetApiClient(_apiClient); return(new User { Uuid = user.Uuid, Token = user.Token, Feeds = user.Feeds.Select(f => GetFeed(f)).ToList() }); }
public void SetApiClient(FeedReaderServerApiClient api) { _api = api; }