BigchainDB Javascript ORM - получение всего и добавление к существующему активу - PullRequest
0 голосов
/ 20 мая 2018

Я использую приложение API Node.js для обработки активов BigchainDB.

Проблема 1 : получение всех активов модели

Проблема 2: добавить («обновить») существующие ресурсы

Система: Node.js v8.11.2, npm v5.6.0, модуль узла «express» v4.16.3, модуль узла «babel-register» v6.26.0, модуль узла bigchaindb-orm v.2.0.0

Создание актива / получение одного актива

Я установил приложение в моей тестовой учетной записи BigchainDB (https://test.bigchaindb.com/). Создание актива с использованием драйвера BigchainDB ORM Javascript не является проблемой:

exports.create_an_entry = function(req, res) {
    bdbOrm.models.myModel
        .create({
            keypair: aliceKeypair,
            data: {
                city: req.body.city,
                Created_data: new Date().toString(),
            }
        })
        .then(asset => {
            res.json(asset)
        });
}

Также нет проблем с получением информации о конкретном активе:

exports.read_an_entry = function(req, res) {
  bdbOrm.models.myModel
    .retrieve(req.params.assetId)
    .then(assets => {
        res.json(assets)
    })
}

Проблема 1:

Использование имени модели "myModel" и получение всех ресурсов приводит к сообщению об ошибке

{message: 'Ошибка HTTP: запрашиваемая страницанедоступен ', статус:' 429 Too Many Requests ', requestURI:' https://test.bigchaindb.com/api/v1/transactions?asset_id='}

exports.list_all_data = function(req, res) {
    bdbOrm.models.myModel
        .retrieve()
        .then(assets => {
            res.json(assets)
        })
}

Во-первых, есть способ получить больше активовВед, чем я создал.Во-вторых, когда я просматриваю requestURI, есть активы с данными, которые я никогда не создавал (например, «name»: «Robin», «email»: «test@test.no») Когда я изменяю имя модели на «testung»Я получаю только активы, созданные мною под этим именем модели.

Должно ли название модели быть уникальным даже для разных приложений?

Проблема 2:

ВВ примерах «добавления» операции создается ресурс, а затем к нему добавляются новые данные на том же этапе.Следуя примеру, я получаю в качестве вывода один актив с уникальным идентификатором и двумя операциями в «actionHistory ».Одна операция CREATE с начальными данными и одна операция TRANSFER с новыми данными.

Но я хочу добавить измененные / новые данные в уже созданный ресурс.Например, создается актив, где автомобиль стоит 10 000 долларов.Через некоторое время владелец решает, что автомобиль должен стоить 9 000 долларов.Следующий код не будет работать:

exports.update_an_entry = function(req, res) {
    bdbOrm.models.myModel
       .retrieve(req.params.assetId)
       .then(asset => {
           return asset.append({
               toPublicKey: aliceKeypair.publicKey,
               keypair: aliceKeypair,
               data: {
                   price: req.params.price,
               }
           })
       })
       .then(updatedAsset => {
           res.json(updatedAsset)
       })
}

Что я делаю не так или я неправильно понимаю концепцию BigchainDB?

Кстати.учебник CRAB не работает, он отвечает со статусом "400 BAD REQUEST": https://tutorials.bigchaindb.com/crab/

...