From 788e028aa1bb347394fb2c2361bb795435af97c7 Mon Sep 17 00:00:00 2001 From: Spencer Alger Date: Tue, 28 Oct 2014 15:43:47 -0700 Subject: [PATCH] use angulars.toJson in the angular version of the client --- src/elasticsearch.angular.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/elasticsearch.angular.js b/src/elasticsearch.angular.js index 67b6fa1e8..976cbbb5c 100644 --- a/src/elasticsearch.angular.js +++ b/src/elasticsearch.angular.js @@ -6,6 +6,8 @@ */ var AngularConnector = require('./lib/connectors/angular'); var Client = require('./lib/client'); +var _ = require('./lib/utils'); +var JsonSerializer = require('./lib/serializers/json'); process.angular_build = true; @@ -20,9 +22,25 @@ angular.module('elasticsearch', []) config.defer = function () { return $q.defer(); }; + config.serializer = AngularSerializer; return new Client(config); }; + _.inherits(AngularSerializer, JsonSerializer); + function AngularSerializer() {} + // mimic the JsonSerializer's encode method, but use angular's toJson instead + AngularSerializer.prototype.encode = function (val) { + switch (typeof val) { + case 'string': + return val; + case 'object': + if (val) return angular.toJson(val); + /* falls through */ + default: + return; + } + }; + factory.errors = require('./lib/errors'); factory.ConnectionPool = require('./lib/connection_pool'); factory.Transport = require('./lib/transport');