2016-06-23 5 views
0

APIを生成するためにループバックのフレームワークを使用しています。今、私は、長い番号(1466598625506のようなUnix形式のタイムスタンプ)を必要とし、同期オブジェクトの配列を返すカスタムRemoteMethodを書き込もうとしています(エンドポイントとcomunicateするためにretrofitを使用しています)。私のアンドロイドアプリでは、エンドポイント「getRecodsAfterTimestamp」を呼び出すと、リクエスト内の指定されたものと等しいかより大きなtimeStamp値を持つレコードを返す必要があります。返されるものはすべてのレコード(現時点では3)です。ループバックリモートメソッドが正しい値を返さない

これは私のモデル(sync.json)は同期のように見えると呼ばれる方法です:

{ 
"name": "Sync", 
"base": "PersistedModel", 
"idInjection": true, 
"options": { 
"validateUpsert": true 
}, 
"properties": { 
"uuid": { 
    "type": "string" 
}, 
"table": { 
    "type": "string" 
}, 
"action": { 
    "type": "string" 
}, 
"timeChanged": { 
    "type": "number" 
} 
}, 
"validations": [], 
"relations": {}, 
"acls": [], 
"methods": {} 
} 

そして、これは、リモートメソッドと私のsync.jsで次のようになります。私は知らない

module.exports = function(Sync) { 

Sync.getRecodsAfterTimestamp = function(timestamp, cb){ 
// var response; 

Sync.find({where:{ or: [ 
    {timeChanged:timestamp}, 
    {timeChanged: {gt:timestamp } } 
] }}, function(err, sync) { 
    cb(null,sync); 
    // response.push(sync); 
}); 

// cb(null, response); 
} 

Sync.remoteMethod (
'getRecodsAfterTimestamp', 
{ 
    http: {path: '/getRecodsAfterTimestamp', verb: 'get'}, 
    accepts: {arg: 'timeChanged', type: 'number', http: { source: 'query' } }, 
    returns: { 
    arg: 'data', 
    type: 'array', 
    root: true 
    } 
} 
); 


}; 

それが重要しかし、これは私の改造メソッドの宣言の場合:

@GET("Syncs") 
Call<List<Sync>> getAllSyncsAfterThisTimeStamp(@Query(("getRecodsAfterTimestamp?timeChanged=")) long timeChanged); 

そして、ここで私はそのようにそれを呼び出しています:

Long timeStamp = 1466598625506L; 
Log.e(TAG, "Job Service task is running..."); 
getAllSyncsCall = espcService.getAllSyncsAfterThisTimeStamp(timeStamp); 
getAllSyncsCall.enqueue(EspcJobSheculerService.this); 

このコードは、これは私が望む結果ではない enter image description here

返します。それは2レコードだけである1466598625506の後のすべてのレコードを返すはずです。

答えて

1

あなたの質問は正しいです。

チェックインfindコールバックの出力が正しいかどうか

関連する問題