001    package com.khubla.goxmon;
002    
003    import com.khubla.pragmatach.framework.annotation.Controller;
004    import com.khubla.pragmatach.framework.annotation.Route;
005    import com.khubla.pragmatach.framework.annotation.View;
006    import com.khubla.pragmatach.framework.api.PragmatachException;
007    import com.khubla.pragmatach.framework.api.Response;
008    import com.khubla.pragmatach.plugin.freemarker.FreemarkerController;
009    import com.xeiam.xchange.Exchange;
010    import com.xeiam.xchange.ExchangeFactory;
011    import com.xeiam.xchange.currency.Currencies;
012    import com.xeiam.xchange.service.marketdata.polling.PollingMarketDataService;
013    
014    /**
015     * @author tome
016     */
017    @Controller(name = "IndexController")
018    @View(view = "index.ftl")
019    public class IndexController extends FreemarkerController {
020       /**
021        * the ticket
022        */
023       private String ticker;
024    
025       public String getTicker() {
026          return ticker;
027       }
028    
029       @Route(uri = "/")
030       public Response render() throws PragmatachException {
031          try {
032             final Exchange mtGox = ExchangeFactory.INSTANCE.createExchange("com.xeiam.xchange.mtgox.v1.MtGoxExchange");
033             final PollingMarketDataService marketDataService = mtGox.getPollingMarketDataService();
034             ticker = marketDataService.getTicker(Currencies.BTC, Currencies.USD).toString();
035             return super.render();
036          } catch (final Exception e) {
037             throw new PragmatachException("Exception in render", e);
038          }
039       }
040    
041       public void setTicker(String ticker) {
042          this.ticker = ticker;
043       }
044    }