From 694cc18a40ae5c71ec280b3aea2e1fa4d51ab640 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Tue, 8 Sep 2015 17:59:56 +0200 Subject: wip --- src/BeerDukeTap.js | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) (limited to 'src/BeerDukeTap.js') diff --git a/src/BeerDukeTap.js b/src/BeerDukeTap.js index ed12a17..6370071 100644 --- a/src/BeerDukeTap.js +++ b/src/BeerDukeTap.js @@ -1,36 +1,50 @@ (function () { 'use strict'; - function BeerDukeTapController($log, $timeout, BeerDukeService) { + function BeerDukeTapController($log, $timeout, BeerDukeService, TsService) { var ctrl = this; + var messages = ctrl.messages = []; + ctrl.count = 0; + ctrl.code = ''; rotateCode(); - self.count = 0; - self.code = ''; function rotateCode() { - self.code = '' + self.count++; + ctrl.code = '' + ctrl.count++; $timeout(function () { rotateCode(); }, 1000); } BeerDukeService.callbacks.onConnect = function () { - BeerDukeService.subscribe('/beer-duke'); + BeerDukeService.subscribe('/beer-duke/give-beer'); }; BeerDukeService.callbacks.onMessageArrived = function (m) { $log.info('m.payloadString =', m.payloadString); - var payload = angular.fromJson(m.payloadString); - var code = payload.code; - var email = payload.email; - - if (typeof code !== 'string' && typeof email !== 'string') { - $log.warn('bad payload', payload.code); + var payload; + try { + payload = angular.fromJson(m.payloadString); + messages.unshift(payload); + } catch (e) { + $log.warn('could not parse json payload', e); + $log.warn('JSON:', payloadString); return; } - ctrl.message = payload; + if (m.destinationName == '/beer-duke/give-beer') { + var code = payload.code; + var email = payload.email; + + if (typeof code !== 'string' && typeof email !== 'string') { + $log.warn('bad payload', payload.code); + return; + } + + TsService.giveBeer(); + + ctrl.message = payload; + } }; BeerDukeService.connect('tap'); -- cgit v1.2.3