Call Odoo webservices from AngularJS
Odoo is not HTTP friendly : every request shoud be POST, session_id should be added in the body, there some other stuff which should be added in each request...
This module gives you an abstraction and friendly methods in order to communicate with Odoo.
- OpenERP 7 or Odoo 8
- Angular > 1.4
Prefered method:
bower install angular-odoo
Alternative :
Download dist/odoo.js or dist/odoo.min.js
Add the script to your page :
<script src="path/to/angular-odoo/dist/odoo.js"></script>
Add the module odoo to your applicaiton:
angular.module('yourApplication', ['odoo']);
Add jsonRpc as a dependency.
angular.module('loginCtrl', ['$scope', 'jsonRpc', function($scope, jsonRpc) {
jsonRpc.getDbList().then(function (result) {
//get databases list
$scope.dbs = result;
});
$scope.login = function(creds) {
jsonRpc.login(creds.db, creds.username, creds.password).then(function () {
//login successfull redirect here
}, function(reason) {
//display error
});
};
}]);
High level functions :
- login
- isLoggedIn
- logout
- searchRead
- getSessionInfo
- getServerInfo
- getDbList
- syncDataImport
- syncImportObject
- call
Please read src/components/odoo/jsonRPC-service.js for code and detailled documentation.
At Akretion, we write Angular / Ionic applications and use this lib in all our devs when Odoo is the backend.
There is some tests in jsonRpc.spec.js