function testFillDelta()
 {
     $fixture = array('delta_id' => 'add new object to collection', 'changes' => array(array('change_type' => 'insert', 'collection_id' => 'my_schedule', 'record_id' => 'monday', 'changes' => array(array('change_type' => 'set', 'field_id' => 'work', 'value' => array('string' => 'from 11am to 7pm', 'type' => 'string'))))));
     $recordFieldValue = new RecordFieldValue();
     $recordFieldValue->setValue($fixture['changes'][0]['changes'][0]['value']['string']);
     //Field changes
     $recordField = new RecordField();
     $recordField->setValue($recordFieldValue)->setFieldId($fixture['changes'][0]['changes'][0]['field_id'])->setChangeType(RecordField::CHANGE_TYPE_SET);
     //Record changes
     $record = new Record();
     $record->setChangeType(Record::CHANGE_TYPE_INSERT)->setCollectionId($fixture['changes'][0]['collection_id'])->setRecordId($fixture['changes'][0]['record_id'])->setChanges(array($recordField))->setFields(array($recordField))->setRevision(0);
     $delta = new Database\Delta();
     $delta->setDeltaId($fixture['delta_id'])->setChanges(array($record));
     $delta2 = new Database\Delta();
     $delta2->setDeltaId($fixture['delta_id'])->setChanges(new Database\Delta\Records(array($record)));
     $array1 = $delta->toArray();
     $array2 = $delta2->toArray();
     $this->assertEquals($fixture['delta_id'], $delta->getDeltaId());
     $this->assertEquals($delta2->getChanges(), $delta->getChanges());
     $this->assertTrue($array1 === $array2, 'Is Equals arrays');
 }
Exemplo n.º 2
0
                 if (isset($_REQUEST['value']) && $_REQUEST['value']) {
                     //Указание значение и его типа
                     //Если Тип значения не указан, то он определиться автоматически
                     //@see https://tech.yandex.ru/datasync/http/doc/tasks/create-changes-docpage/#data-types
                     $recordFieldValue = new RecordFieldValue();
                     $recordFieldValue->setValue($_REQUEST['value']);
                     //установка Значения
                     $field->setValue($recordFieldValue);
                 }
                 //Изменения отдельных полей записи.
                 $record->setChanges([$field]);
             }
             //Изменения отдельных записей базы данных.
             $delta->setChanges([$record]);
             //@see https://tech.yandex.ru/datasync/http/doc/tasks/create-changes-docpage/
             $dataSync->saveDelta($delta->toArray(), $database->getRevision());
             //Получение "свежей" информации о БД
             $database = $dataSync->getDatabase($databaseId);
         }
     }
 }
 //Получение снапшота базы данных
 //@see https://tech.yandex.ru/datasync/http/doc/tasks/get-snapshot-docpage/
 $snapshotResponse = $dataSync->getDatabaseSnapshot($database->getDatabaseId());
 $collections = [];
 /** @var Record $record */
 foreach ($snapshotResponse->getRecords()->getItems() as $record) {
     //$record - запись в Коллекции
     $collections[$record->getCollectionId()][$record->getRecordId()] = [];
     foreach ($record->getFields()->getAll() as $field) {
         //$field - поле в Записи