Project

General

Profile

Download (1.5 KB) Statistics
| Branch: | Revision:
1
define([
2
"dojo/_base/Deferred",
3
"dojo/_base/xhr",
4
"dojo/store/util/SimpleQueryEngine",
5
"dojo/store/util/QueryResults",
6
"dojo/data/util/filter",
7
"dojox/json/query",
8
"dojox/data/util/JsonQuery"
9
], function(Deffered, xhr, QueryEngine, QueryResults, filterUtil, query, JsonQuery){
10

    
11
// Service to be used with the JsonRestStore.
12
// The service is to work around the backend format
13
 
14
return function(path, serviceImpl, schema){
15

    
16
    var queryEngine = QueryEngine;
17

    
18
    var service = function(id, args) {
19

    
20
        function processResults(results){
21
            var items = results.items;
22
	        var regexpList = {};
23
            var value,
24
	   	        ignoreCase = true;
25
            
26
            // convert regular queries to json query
27
            var queryOptions = args['queryOptions'];
28
            if(!queryOptions || !queryOptions['jsonQuery']){
29
                args.query = new JsonQuery()._toJsonQuery(args.query);
30
            }
31
            var result = query(args['query'] || '', items);
32
            return result;
33
        }
34

    
35
        var serviceArgs = {
36
            url : path, 
37
            handleAs : "json"
38
        };
39
        
40
        var deferred;
41
        deferred = xhr.get(serviceArgs);
42
        deferred.addCallback(processResults);
43
        return deferred;
44
    };
45

    
46
    service.put = function(id, value){
47
        
48
    };
49

    
50
    service.post = function(id, value){
51
        
52
    };
53

    
54
    service.delete = function(id){
55
        
56
    };
57
    
58
    service.servicePath = path;
59
    service._schema = schema;
60

    
61
    return service;
62
};     
63

    
64
});
(5-5/14)