summaryrefslogtreecommitdiff
path: root/src/BeerDukeTap.js
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2015-09-08 17:59:56 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2015-09-08 17:59:56 +0200
commit694cc18a40ae5c71ec280b3aea2e1fa4d51ab640 (patch)
treeb052776e72bab7d9fed89975a5b2dd44049eb418 /src/BeerDukeTap.js
parenta767c17582caf9df45df587451773ee6f7bc2e49 (diff)
downloadbeer-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.js38
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');