Source: nodeServer/api/dao/userDao.js

const Dao = require('./dao.js');

module.exports = class UserDao extends Dao {
  /**
   * Method to insert a user into the userTable.
   * @param {object} json JSON object containing userId, expoToken, orgType, orgId and orgName
   * @param {function} callback Function callback
   */
  insertUser(json, callback) {
    const val = [json.userId, json.expoToken, json.orgType, json.orgId, json.orgName];
    super.query(
      'INSERT IGNORE INTO userTable (userId, expoToken, orgType, orgId, orgName) VALUES (?,?,?,?,?)',
      val,
      callback
    );
  }

  /**
   * Method to get one user from the userTable.
   * @param {string} userId The users unique ID
   * @param {function} callback Function callback
   */
  getOne(userId, callback) {
    super.query('SELECT * from userTable WHERE userId=?', [userId], callback);
  }

  /**
   * Method to get all users for one organisation.
   * @param {string} orgId Organisation ID.
   * @param {function} callback Function callback
   */
  getAllOrg(orgId, callback) {
    super.query('SELECT * from userTable WHERE orgId=?', [orgId], callback);
  }

  /**
   * Method to remove user from the userTable.
   * @param {string} expoToken Unique deviceID
   * @param {function} callback Function callback
   */
  removeUser(expoToken, callback) {
    super.query('DELETE FROM userTable WHERE expoToken=?', [expoToken], callback);
  }
};