Skip to main content

Item Operations

An item represents the data corresponding to each row in the datastore. You can save data retrieved through the datastore or create new data with it.

Retrieve items

Retrieves all items in the datastore.

const items = await datastore.items();

Retrieve a specific item

To retrieve a specific item, specify the item ID.

const item = await datastore.item('ITEM_ID');

Create a new item

To create a new item, execute item without any arguments.

const newItem = await datastore.item();

Set values for fields

Next, set values for the fields in this newItem. The following code assumes that the message field has already been prepared.

newItem.set('message', 'Hello, Hexabase!');

Since the return value is itself, the set method can be chained.

newItem
.set('message', 'Hello, Hexabase!')
.set('name', 'Hexabase');

Associating with another item

To automatically link to another item, execute the link method.

newItem.link(anotherItem);

The link method also returns itself, so you can chain methods together.

newItem
.link(anotherItem)
.link(yetAnotherItem);

Remove item association

To remove the association of an item, execute the unlink method.

newItem.unlink(anotherItem);

The unlink method also returns itself, so you can chain methods together.

newItem
.unlink(anotherItem)
.unlink(yetAnotherItem);

Upload a file

To associate a file, first use the file method to retrieve a FileObject.

const file = item.file();

Then, set the Blob and filename to this file.

const blob = new Blob(['Hello world'], { type: 'text/plain' });
file
.set('name', 'test_file.txt')
.set('data', blob);

After that, set it to the field with the file type and save it.

await item
.set('test_file', [file])
.save();

Save an item

To save an item, use the save method.

await newItem.save();

Update items

Updating an item also executes the save method.

newItem.set('message', 'Hello, Hexabase again!');
await newItem.save();

Retrieve the current status

The current status can obtained with the status method.

const status = await newItem.status();

Update status

When updating the status, use the execute method. This operation only changes the status and does not update any data.

await newItem.execute('nextStatus');

You can retrieve the available status actions that the current item can execute using the statusActions method.

const statusActions = await newItem.statusActions();

Delete an item

To delete an item, execute the delete method.

await newItem.delete();

Recieve real-time notifications

To receive real-time notifications for item changes, execute the subscribe method. The first argument specifies the event, and currently, only update is supported.

item.subscribe('update', (item) => {
console.log(item);
});

Create and save comments

Real-time notifications can be received when creating comments. In the following code, the subscribe method of the item is called.

const comment = await item.comment();
commnet.set('comment', 'Hello, Hexabase!');
await comment.save();