angular-soap

An angular port of a Javascript SOAP Client into a factory that has a similar syntax to $http.

Module License: MIT

Added by: Sam Deering

GitHub

Repository

andrewmcgivery/angular-soap

Stats

Stars: 68

Watchers: 68

Forks: 62

Module Description

angular-soap

An Angular port of a JavaScript SOAP Client into a factory that has a similar syntax to $http.

Usage

Before using the factory, you must import the two scripts and its module:

<script src="soapclient.js"></script>
<script src="angular.soap.js"></script>
angular.module('myApp', ['angularSoap']);

Then, wherever you are going to consume it, make a reference to the $soap service for dependency injection:

.factory("testService", ['$soap',function($soap){
//use it here
}])

$soap has one method, post, which accepts the following paramaters:

| Parameter |Description | Example | | ------------ | ------------ | ------------ | | url | The base URL of the service | "http://www.cooldomain.com/SoapTest/webservicedemo.asmx" | | action | The action you want to call | "HelloWorld" | | params | An object of parameters to pass to the service | { name: "Andrew" } |

Syntax:

$soap.post(url,action,params);

Similar to $http methods, $soap.post returns a promise that you can act upon.

$soap.post(url,action,params).then(function(response){
    //Do Stuff
});

NOTE: Response will be a javascript object containing the response mapped to objects. Do a console.log of response so you can see what you are working with.

Example 1: Hello World

A basic "Hello World" with no parameters.

angular.module('myApp', ['angularSoap'])

.factory("testService", ['$soap',function($soap){
    var base_url = "http://www.cooldomain.com/SoapTest/webservicedemo.asmx";

    return {
        HelloWorld: function(){
            return $soap.post(base_url,"HelloWorld");
        }
    }
}])

.controller('MainCtrl', function($scope, testService) {

  testService.HelloWorld().then(function(response){
    $scope.response = response;
  });
  
})

Example 2: Invoke with Parameters

A basic method call with parameters.

angular.module('myApp', ['angularSoap'])

.factory("testService", ['$soap',function($soap){
    var base_url = "http://www.cooldomain.com/SoapTest/webservicedemo.asmx";

    return {
        CreateUser: function(firstName, lastName){
            return $soap.post(base_url,"CreateUser", {firstName: firstName, lastName: lastName});
        }
    }
}])

.controller('MainCtrl', function($scope, testService) {

  testService.CreateUser($scope.firstName, $scope.lastName).then(function(response){
    $scope.response = response;
  });
  
})

Example 3: Get Single Object

A basic method call to get a single object.

angular.module('myApp', ['angularSoap'])

.factory("testService", ['$soap',function($soap){
    var base_url = "http://www.cooldomain.com/SoapTest/webservicedemo.asmx";

    return {
        GetUser: function(id){
            return $soap.post(base_url,"GetUser", {id: id});
        }
    }
}])

.controller('MainCtrl', function($scope, testService) {

  testService.GetUser($scope.id).then(function(user){
    console.log(user.firstName);
    console.log(user.lastName);
  });
  
})

Example 4: Get Many Objects

A basic method call to get a collection of objects.

angular.module('myApp', ['angularSoap'])

.factory("testService", ['$soap',function($soap){
    var base_url = "http://www.cooldomain.com/SoapTest/webservicedemo.asmx";

    return {
        GetUsers: function(){
            return $soap.post(base_url,"GetUsers");
        }
    }
}])

.controller('MainCtrl', function($scope, testService) {

  testService.GetUsers().then(function(users){
    for(i=0;i<users.length;i++){
        console.log(users[i].firstName);
        console.log(users[i].lastName);
    }
  });
  
})

Example 5: Set Connection Credentials

Set the credentials for the connection before sending any requests.

angular.module('myApp', ['angularSoap'])

.factory("testService", ['$soap',function($soap){
    var base_url = "http://www.cooldomain.com/SoapTest/webservicedemo.asmx";
    
    $soap.setCredentials("username","password");

    return {
        GetUsers: function(){
            return $soap.post(base_url,"GetUsers");
        }
    }
}])

.controller('MainCtrl', function($scope, testService) {

  testService.GetUsers().then(function(users){
    for(i=0;i<users.length;i++){
        console.log(users[i].firstName);
        console.log(users[i].lastName);
    }
  });
  
})

Module stats last updated: 2017-06-17 16:00:02

Disclaimer: Some data on this page may have been gathered from the authors GitHub respository. If you see any mistakes or outdated information please let us know. Thanks!