diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2015-09-08 17:59:56 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2015-09-08 17:59:56 +0200 |
commit | 694cc18a40ae5c71ec280b3aea2e1fa4d51ab640 (patch) | |
tree | b052776e72bab7d9fed89975a5b2dd44049eb418 /src/BeerDukeTap.js | |
parent | a767c17582caf9df45df587451773ee6f7bc2e49 (diff) | |
download | beer-duke-694cc18a40ae5c71ec280b3aea2e1fa4d51ab640.tar.gz beer-duke-694cc18a40ae5c71ec280b3aea2e1fa4d51ab640.tar.bz2 beer-duke-694cc18a40ae5c71ec280b3aea2e1fa4d51ab640.tar.xz beer-duke-694cc18a40ae5c71ec280b3aea2e1fa4d51ab640.zip |
wip
Diffstat (limited to 'src/BeerDukeTap.js')
-rw-r--r-- | src/BeerDukeTap.js | 38 |
1 files changed, 26 insertions, 12 deletions
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'); |