001package edu.pdx.cs.joy.di; 002 003import com.google.common.collect.ImmutableMap; 004import com.google.inject.Inject; 005import jakarta.ws.rs.*; 006 007import java.util.Map; 008 009/** 010 * A Credit Card service that exposes its behavior via REST 011 */ 012@Path("/rest/creditCard") 013public class RestfulCreditCardService 014{ 015 private final CreditCardDatabase cards; 016 017 @Inject 018 public RestfulCreditCardService(CreditCardDatabase cards) { 019 this.cards = cards; 020 } 021 022 @GET 023 @Produces("text/plain") 024 public String allCardBalances() { 025 StringBuilder sb = new StringBuilder(); 026 027 ImmutableMap<CreditCard, Double> balances = cards.getBalances(); 028 for ( Map.Entry<CreditCard, Double> entry : balances.entrySet() ) { 029 sb.append(entry.getKey().getNumber()); 030 sb.append("\t"); 031 sb.append(entry.getValue()); 032 sb.append("\n"); 033 } 034 035 return sb.toString(); 036 } 037 038}