Skip to content

Instantly share code, notes, and snippets.

@jefferyshivers
Last active March 21, 2020 17:37
Show Gist options
  • Save jefferyshivers/e83db0b97688545232c6946798f6cd59 to your computer and use it in GitHub Desktop.
Save jefferyshivers/e83db0b97688545232c6946798f6cd59 to your computer and use it in GitHub Desktop.
MoneyService Java implementation
package awesomelabs.numbers;
import io.grpc.stub.StreamObserver;
public class MoneyService extends MoneyServiceGrpc.MoneyServiceImplBase {
@Override
public void convert(MoneyOuterClass.ConvertMoneyRequest request,
StreamObserver<MoneyOuterClass.Money> responseObserver) {
MoneyOuterClass.Money originalMoney = request.getOriginal();
MoneyOuterClass.Currency targetCurrency = request.getTargetCurrency();
MoneyOuterClass.Money converted = convert(originalMoney, targetCurrency);
responseObserver.onNext(converted);
responseObserver.onCompleted();
}
private MoneyOuterClass.Money convert(MoneyOuterClass.Money originalMoney,
MoneyOuterClass.Currency targetCurrency) {
return MoneyOuterClass.Money.newBuilder()
.setCurrency(targetCurrency)
.setUnits(originalMoney.getUnits()
* getExchangeRate(originalMoney.getCurrency(), targetCurrency))
.build();
}
private double getExchangeRate(MoneyOuterClass.Currency originalCurrency,
MoneyOuterClass.Currency targetCurrency) {
return Math.random();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment