'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, type) { connection.addHandler(function (stanza) { $rootScope.$apply(callback(stanza)); return true; }, null, name, type, null, null, null); }, send: function(stanza) { $rootScope.$apply(connection.send(stanza)); }, disconnect: function() { connection.disconnect("disconnect"); } }; }]); });