Retrieve smart field info in a smart action

Please be sure of your agent type and version and pick the right documentation accordingly.

This is the documentation of the forest-express-sequelize and forest-express-mongoose Node.js agents that will soon reach end-of-support.

forest-express-sequelize v9 and forest-express-mongoose v9 are replaced by @forestadmin/agent v1.

Please check your agent type and version and read on or switch to the right documentation.

Retrieve smart field info in a smart action

Example of retrieving a Smart field into a Smart action

forest/users.js
const Liana = require('forest-express-sequelize');

Liana.collection('users', {
  fields: [
    {
      field: 'fullemail',
      type: 'String',
      get: (user) => {
        return user.email + ' + ' + 'hello';
      },
    },
  ],
  actions: [
    {
      name: 'test',
      type: 'single',
    },
  ],
});

// routes/users.js
const express = require('express');
const router = express.Router();
const Liana = require('forest-express-sequelize');
const models = require('../models');

router.post('/actions/test', Liana.ensureAuthenticated, (req, res, next) => {
  const userId = req.body.data.attributes.ids[0];
  return models.users
    .findByPk(userId)
    .then((user) =>
      new Liana.ResourceSerializer(
        Liana,
        models.users,
        user,
        null,
        {},
        {}
      ).perform()
    )
    .then((userSerialized) => {
      // NOTICE: Liana.ResourceSerializer will compute all Smart Field values of the record.
      return res.send({
        success: `Top Top ${userSerialized.data.attributes.fullemail}`,
      });
    })
    .catch(next);
});

module.exports = router;

Last updated