0.13.2 • Published 11 days ago

microgen-v3-sdk v0.13.2

Weekly downloads
-
License
MIT
Repository
github
Last release
11 days ago

Microgen SDK

This is the Official Node JS and Browser client/library for Microgen API. Visit https://microgen.id. More information about the product and see documentation at http://docs.microgen.id for more technical details.

API Documentation

Please check Microgen API Reference.

Installation

Node.js

To install microgen in a node project:

npm install --save microgen-v3-sdk

Usage

Configure package with your account's API key obtained from your Microgen Dashboard.

const { MicrogenClient } = require('microgen-v3-sdk');

const microgen = new MicrogenClient({
  apiKey: '*******************',
});

Authentication

Use microgen auth services for manage your user.

Register

const { user, token, error } = await microgen.auth.register({
  firstName: 'Ega',
  lastName: 'Radiegtya',
  email: 'user@gmail.com',
  password: 'password',
});

Login

const { user, token, error } = await microgen.auth.login({
  email: 'user@gmail.com',
  password: 'password',
});

User

const { user, error } = await microgen.auth.user();
// Get user with filter:
// lookup
const { user, error } = await microgen
  .auth
  .user({ filterKey: filterValue, ... });

Update

const { user, error } = await microgen.auth.update({ firstName: 'Ega' });

Logout

const { user, token, error } = await microgen.auth.logout();

Database

Create

const { data, error } = await microgen.service('posts').create({
  name: 'Post 1',
  notes: 'Hello microgen',
});

Create Many

const { data, error } = await microgen.service('posts').createMany([
  {
    name: 'Post 1',
    notes: 'Hello microgen',
  },
  {
    name: 'Post 2',
    notes: 'Hello world',
  },
]);

Get

const { data, error } = await microgen
  .service('posts')
  .getById('605a251d7b8678bf6811k3b1');
// Get record with filters:
// select
// lookup
const { data, error } = await microgen
  .service('posts')
  .getById('605a251d7b8678bf6811k3b1', { filterKey: filterValue, ... });

Update

const { data, error } = await microgen
  .service('posts')
  .updateById('605a251d7b8678bf6811k3b1', {
    notes: 'Hello world',
  });

Update Many

const { data, error } = await microgen.service('posts').updateMany([
  {
    _id: '605a251d7b8678bf6811k3b1',
    notes: 'Hello world',
  },
  {
    _id: '605a251d7b8678bf6811k3b2',
    notes: 'Hello microgen',
  },
]);

Delete

const { data, error } = await microgen
  .service('posts')
  .deleteById('605a251d7b8678bf6811k3b1');

Delete Many

const { data, error } = await microgen
  .service('posts')
  .deleteMany(['605a251d7b8678bf6811k3b1', '605a251d7b8678bf6811k3b2']);

Link

const { data, error } = await microgen
  .service('posts')
  .link('605a251d7b8678bf6811k3b1', {
    categories: '61d26e8e2adb12b85c33029c',
  });

Unlink

const { data, error } = await microgen
  .service('posts')
  .unlink('605a251d7b8678bf6811k3b1', {
    categories: '61d26e8e2adb12b85c33029c',
  });

Find

const { data, error } = await microgen.service('posts').find();
// sort
// 1 = ascending
// -1 = descending
const { data, error } = await microgen
  .service('posts')
  .find({ sort: [{ name: 1 }] });
// skip
const { data, error } = await microgen.service('posts').find({ skip: 10 });
// limit
const { data, error } = await microgen.service('posts').find({ limit: 10 });
// select
const { data, error } = await microgen
  .service('posts')
  .find({ select: ['name'] });
// lookup into multiple link to record fields
const { data, error } = await microgen
  .service('posts')
  .find({ lookup: ['categories'] });
// lookup into all link to record fields
const { data, error } = await microgen.service('posts').find({ lookup: '*' });
// lookup into all link to record fields but only show the ids
const { data, error } = await microgen
  .service('posts')
  .find({ lookup: { _id: '*' } });
// lookup into all link to record fields and show all data
const { data, error } = await microgen
  .service('posts')
  .find({ lookup: { '*': '*' } });
// where
const { data, error } = await microgen
  .service('posts')
  .find({ where: { name: 'Ega' } });
// not equal
const { data, error } = await microgen
  .service('posts')
  .find({ where: { name: { $ne: 'Ega' } } });
// contains
const { data, error } = await microgen
  .service('posts')
  .find({ where: { name: { $contains: 'Ega' } } });
// not contains
const { data, error } = await microgen
  .service('posts')
  .find({ where: { name: { $notContains: 'Ega' } } });
// include
const { data, error } = await microgen
  .service('posts')
  .find({ where: { name: { $in: ['Ega'] } } });
// not include
const { data, error } = await microgen
  .service('posts')
  .find({ where: { name: { $nin: ['Ega'] } } });
// less then
const { data, error } = await microgen
  .service('posts')
  .find({ where: { total: { $lt: 10 } } });
// less then equal
const { data, error } = await microgen
  .service('posts')
  .find({ where: { total: { $lte: 10 } } });
// greater then
const { data, error } = await microgen
  .service('posts')
  .find({ where: { total: { $gt: 10 } } });
// greater then equal
const { data, error } = await microgen
  .service('posts')
  .find({ where: { total: { $gte: 10 } } });

Count

// count all records
const { data, error } = await microgen.service('posts').count();
// count with filters
const { data, error } = await microgen
  .service('posts')
  .count({ filterKey: filterValue, ... });

Storage

Upload

// from client
const file = event.target.files[0];
const { data, error } = await microgen.storage.upload(file);
// from server
const file = req.files[0];
const { data, error } = await microgen.storage.upload(
  file.buffer,
  file.originalname,
);

Realtime

Event

  • *
  • CREATE_RECORD
  • UPDATE_RECORD
  • DELETE_RECORD
  • LINK_RECORD
  • UNLINK_RECORD

Get tableId by Table Name

const { tableId, error } = await microgen.realtime.getTableId('posts');

Subscribe

microgen.realtime.subscribe(tableId, { event: '*' }, (message) => {
  if (message.error) {
    console.log(message.error);
    return;
  }

  console.log(message.event, message.payload);
});

Unsubscribe

microgen.realtime.unsubscribe(tableId);

Field

Find

const { data, error } = await microgen.service('posts').field.find();

Get

const { data, error } = await microgen
  .service('posts')
  .field.getById('605a251d7b8678bf6811k3b1');

CDN

You can now use plain <script>s to import microgen from CDNs, like:

<script src="https://cdn.jsdelivr.net/npm/microgen-v3-sdk"></script>

Then you can use it from a global microgen variable:

<script>
  const { createClient } = microgenV3;
  const client = createClient({
    apiKey: '*******************',
  });

  client
    .service('posts')
    .find()
    .then((res) => {
      if (res.error) {
        console.log(res.error);
        return;
      }

      console.log(res);
    });
</script>
0.13.2

11 days ago

0.13.0

13 days ago

0.13.1

13 days ago

0.12.7

19 days ago

0.12.8

19 days ago

0.12.2

24 days ago

0.12.3

24 days ago

0.12.4

24 days ago

0.12.5

24 days ago

0.12.6

24 days ago

0.12.0

27 days ago

0.12.1

27 days ago

0.11.4

27 days ago

0.11.3

2 months ago

0.11.2

2 months ago

0.11.1

3 months ago

0.11.0

4 months ago

0.10.17

4 months ago

0.10.16

6 months ago

0.10.14

6 months ago

0.10.15

6 months ago

0.10.11

7 months ago

0.10.12

7 months ago

0.10.13

6 months ago

0.10.9

9 months ago

0.10.10

8 months ago

0.10.7

9 months ago

0.10.8

9 months ago

0.9.4

10 months ago

0.10.0

10 months ago

0.10.1

10 months ago

0.10.2

10 months ago

0.10.3

10 months ago

0.10.4

9 months ago

0.10.5

9 months ago

0.10.6

9 months ago

0.9.3

1 year ago

0.9.2

1 year ago

0.9.0

1 year ago

0.8.17

1 year ago

0.8.12

2 years ago