aboutsummaryrefslogtreecommitdiffstats
path: root/alias-angular/app/js/services.js
blob: 9cfeb813ac0caaae197a50051c98d4aafe6ed20e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
'use strict';

angular.module('Alias.services', [], function($provide) {
    $provide.factory('StropheSrv', ['$log', '$rootScope',
        function($log, $rootScope) {
            var connection = new Strophe.Connection(BOSH_SERVICE);
            return {
                login: function(name, password, connect_callback) {
                    connection.connect(name, password, connect_callback);
                },
                sendIQ: function(query, callback) {
                    connection.sendIQ(query, function (data) {
                        $rootScope.$apply(callback(data));
                    });
                },
                addHandler: function(callback, name) {
                    connection.addHandler(function(stanza){
                        $rootScope.$apply(callback(stanza));
                        return true;
                    }, null, name, null, null, null, null);
                },
                send: function(stanza) {
                    $rootScope.$apply(connection.send(stanza));
                },
                disconnect: function() {
                    connection.disconnect("disconnect");
                }
            };
        }]);
});