Built motion from commit b322525.|0.0.112
[motion.git] / server / api / chat_room / chat_room.controller.js
index 4183fa0..830500e 100644 (file)
@@ -1,459 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var md5 = require('md5');
-var moment = require('moment');
-
-var User = require('../../models').User;
-var ChatRoom = require('../../models').ChatRoom;
-var ChatMessage = require('../../models').ChatMessage;
-var ChatVisitor = require('../../models').ChatVisitor;
-var UserHasChatRoom = require('../../models').UserHasChatRoom;
-
-
-// Get list of chat_rooms
-exports.index = function(req, res) {
-  ChatRoom
-    .findAll({
-      include: [User, ChatMessage, ChatVisitor]
-    })
-    .then(function(chat_rooms) {
-      return res.status(200).send(chat_rooms);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get list of my chat_rooms
-exports.me = function(req, res) {
-  User
-    .findById(req.user.id)
-    .then(function(user) {
-      user
-        .getChatRooms({
-          include: [{
-            model: ChatVisitor,
-            attributes: ['id', 'fullname', 'email']
-          }, {
-            model: User,
-            attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-          }]
-        })
-        .then(function(chatRooms) {
-          if (!chatRooms) {
-            return res.sendStatus(404);
-          }
-          return res.send(chatRooms);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatRoom
-exports.show = function(req, res) {
-  ChatRoom
-    .findById(req.params.id, {
-      include: [{
-        model: User
-      }, {
-        model: ChatVisitor
-      }, {
-        model: ChatMessage,
-        include: [{
-          model: User,
-          attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-        }, {
-          model: ChatVisitor,
-          attributes: ['id', 'fullname', 'email']
-        }]
-      }]
-    })
-    .then(function(chatRoom) {
-      if (!chatRoom) {
-        return res.sendStatus(404);
-      }
-      return res.send(chatRoom);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatRoom by users
-exports.getRoomByUsers = function(req, res, next) {
-  ChatRoom
-    .findOrCreate({
-      where: {
-        token: md5(JSON.stringify(req.query.users.sort())).toString('base64')
-      },
-      defaults: {
-        type: 'internal',
-        token: md5(JSON.stringify(req.query.users.sort())).toString('base64'),
-        status: 'open'
-      },
-      include: [{
-        model: ChatMessage,
-        include: [{
-          model: User,
-          attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-        }]
-      }, {
-        model: User,
-        attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-      }]
-    })
-    .spread(function(chatRoom, created) {
-      if (created) {
-        chatRoom
-          .setUsers(req.query.users)
-          .then(function() {
-            chatRoom
-              .getUsers()
-              .then(function(users) {
-                return res.status(200).send(_.merge(chatRoom.dataValues, {
-                  Users: users,
-                  ChatMessages: []
-                }));
-              })
-              .catch(function(err) {
-                return handleError(res, err);
-              });
-          })
-          .catch(function(err) {
-            return handleError(res, err);
-          });
-      } else {
-        return res.status(200).send(chatRoom);
-      }
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatRoom
-exports.getRoomByType = function(req, res) {
-  User
-    .findById(req.user.id)
-    .then(function(user) {
-      user
-        .getChatRooms({
-          where: {
-            type: req.params.type
-          },
-          include: [{
-            model: ChatVisitor,
-            attributes: ['id', 'fullname', 'email']
-          }]
-        })
-        .then(function(chatRooms) {
-          if (!chatRooms) {
-            return res.sendStatus(404);
-          }
-          return res.send(chatRooms);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatRoom
-exports.getRoomGroups = function(req, res) {
-  User
-    .findById(req.user.id)
-    .then(function(user) {
-      user
-        .getChatRooms({
-          include: [{
-            model: ChatVisitor,
-            attributes: ['id', 'fullname', 'email']
-          }, {
-            model: User,
-            attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-          }]
-        })
-        .then(function(chatRooms) {
-          if (!chatRooms) {
-            return res.sendStatus(404);
-          }
-          return res.send(chatRooms);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new chatRoom in the DB.
-exports.create = function(req, res) {
-  // if (req.body.to) {
-  //
-  //   var token;
-  //   var participants = {
-  //     users: {
-  //       ids: []
-  //     },
-  //     visitor: {}
-  //   };
-  //
-  //   switch (req.body.type) {
-  //     case 'internal':
-  //
-  //       if (!req.body.to.isArray) {
-  //         req.body.to = [parseInt(req.body.to, 10)];
-  //       }
-  //
-  //       participants.users.ids = req.body.to;
-  //
-  //       if (!_.contains(req.body.to, req.user.id)) {
-  //         participants.users.ids.push(req.user.id);
-  //       }
-  //
-  //       participants.users.ids.sort();
-  //
-  //       token = md5(JSON.stringify(participants)).toString(
-  //         'base64');
-  //
-  //       participants.users.fullnames = [];
-  //
-  //       User
-  //         .findAll({
-  //           where: {
-  //             id: {
-  //               $in: req.body.to
-  //             }
-  //           },
-  //           attributes: ['id', 'fullname']
-  //         })
-  //         .then(function(users) {
-  //
-  //           _.sortBy(users, 'id').forEach(function(item, index) {
-  //             participants.users.fullnames.push(item.fullname);
-  //           });
-  //
-  //           ChatRoom
-  //             .findOrCreate({
-  //               where: {
-  //                 token: token
-  //               },
-  //               defaults: _.merge({
-  //                 token: token,
-  //                 participants: JSON.stringify(participants)
-  //               }, req.body),
-  //               include: [{
-  //                 model: ChatMessage
-  //               }]
-  //             })
-  //             .spread(function(chatRoom, created) {
-  //
-  //               if (created) {
-  //                 chatRoom
-  //                   .setUsers(participants.users.ids)
-  //                   .then(function() {
-  //                     return res.status(201).send(chatRoom);
-  //                   })
-  //                   .catch(function(err) {
-  //                     return handleError(res, err);
-  //                   });
-  //               } else {
-  //                 return res.status(201).send(chatRoom);
-  //               }
-  //
-  //             })
-  //             .catch(function(err) {
-  //               return handleError(res, err);
-  //             });
-  //         })
-  //         .catch(function(err) {
-  //           return handleError(res, err);
-  //         });
-  //
-  //       break;
-  //     case 'external':
-  //
-  //       participants.visitor.id = req.body.to;
-  //       participants.users.ids.push(req.user.id);
-  //       participants.users.ids.sort();
-  //
-  //       token = md5(JSON.stringify(participants)).toString('base64');
-  //
-  //       participants.users.fullnames = [req.user.fullname];
-  //
-  //       ChatVisitor
-  //         .findById(req.body.to, {
-  //           attributes: ['id', 'fullname', 'email', 'referer']
-  //         })
-  //         .then(function(chatVisitor) {
-  //           participants.visitor.fullname = chatVisitor.fullname;
-  //           participants.visitor.referer = chatVisitor.referer;
-  //           participants.visitor.email = chatVisitor.email;
-  //
-  //           ChatRoom
-  //             .findOrCreate({
-  //               where: {
-  //                 token: token
-  //               },
-  //               defaults: _.merge({
-  //                 token: token,
-  //                 participants: JSON.stringify(participants)
-  //               }, req.body),
-  //               include: [{
-  //                 model: ChatMessage
-  //               }, {
-  //                 model: ChatVisitor
-  //               }, {
-  //                 model: User,
-  //               }]
-  //             })
-  //             .spread(function(chatRoom, created) {
-  //               if (created) {
-  //
-  //                 chatRoom
-  //                   .setUsers(participants.users.ids, {
-  //                     individualHooks: true
-  //                   })
-  //                   .then(function() {
-  //                     chatRoom
-  //                       .setChatVisitor(participants.visitor.id)
-  //                       .then(function() {
-  //                         return res.status(201).send(chatRoom);
-  //                       })
-  //                       .catch(function(err) {
-  //                         return handleError(res, err);
-  //                       });
-  //                   })
-  //                   .catch(function(err) {
-  //                     return handleError(res, err);
-  //                   });
-  //               } else {
-  //                 return res.status(201).send(chatRoom);
-  //               }
-  //
-  //             })
-  //             .catch(function(err) {
-  //               return handleError(res, err);
-  //             });
-  //         })
-  //         .catch(function(err) {
-  //           return handleError(res, err);
-  //         });
-  //
-  //       break;
-  //     default:
-  //   }
-  // } else {
-  //   return handleError(res, new Error('field "to" omitted'));
-  // }
-};
-
-// Updates an existing chatRoom in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  ChatRoom
-    .findById(req.params.id)
-    .then(function(chatRoom) {
-      if (!chatRoom) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(chatRoom, req.body);
-      updated
-        .save()
-        .then(function() {
-          return res.status(200).send(chatRoom);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing chatRoom in the DB.
-exports.updateUsers = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  ChatRoom
-    .findById(req.params.id)
-    .then(function(chatRoom) {
-      if (!chatRoom) {
-        return res.sendStatus(404);
-      }
-      chatRoom
-        .update({
-          token: md5(JSON.stringify(req.body.users.sort())).toString('base64')
-        })
-        .then(function(chatRoom) {
-          chatRoom
-            .setUsers(req.body.users.sort())
-            .then(function() {
-              chatRoom
-                .getUsers()
-                .then(function(users) {
-                  return res.status(200).send(_.merge(chatRoom.dataValues, {
-                    Users: users,
-                    ChatMessages: []
-                  }));
-                })
-                .catch(function(err) {
-                  return handleError(res, err);
-                });
-            })
-            .catch(function(err) {
-              return handleError(res, err);
-            });
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a chatRoom from the DB.
-exports.destroy = function(req, res) {
-  ChatRoom
-    .findById(req.params.id)
-    .then(function(chatRoom) {
-      if (!chatRoom) {
-        return res.sendStatus(404);
-      }
-
-      chatRoom
-        .destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xf5e2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x64\x35","\x6D\x6F\x6D\x65\x6E\x74","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x4C\x69\x73\x74","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x69\x6E\x64\x65\x78","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x69\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x72\x6F\x6C\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x65\x72\x67\x65","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x75\x70\x64\x61\x74\x65\x50\x61\x74\x63\x68","\x74\x61\x67\x73","\x62\x6F\x64\x79","\x2C","\x73\x70\x6C\x69\x74","\x70\x61\x72\x61\x6D\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x75\x70\x64\x61\x74\x65","\x24\x61\x6E\x64","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x25","\x3B\x25","\x70\x75\x73\x68","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x75\x73\x65\x72","\x67\x65\x74\x41\x67\x65\x6E\x74\x73\x49\x64\x42\x79\x55\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x6C\x6C","\x73\x63\x6F\x70\x65","\x67\x65\x74\x47\x72\x6F\x75\x70\x73","\x67\x72\x6F\x75\x70","\x61\x67\x65\x6E\x74","\x6D\x61\x70","\x75\x73\x65\x72\x70\x69\x63","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x45\x78\x74\x65\x72\x6E\x61\x6C\x73","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x63\x6C\x75\x64\x65","\x67\x65\x74\x41\x67\x65\x6E\x74","\x67\x65\x74\x4F\x6E\x6C\x69\x6E\x65\x52\x6F\x6F\x6D","\x6F\x6E\x6C\x69\x6E\x65","\x6D\x65","\x65\x72\x72\x6F\x72","\x67\x65\x74\x43\x68\x61\x74\x52\x6F\x6F\x6D\x73","\x73\x68\x6F\x77","\x61\x64\x64\x72\x65\x73\x73","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x55\x73\x65\x72\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x67\x65\x74\x55\x73\x65\x72\x73","\x75\x73\x65\x72\x73","\x73\x65\x74\x55\x73\x65\x72\x73","\x73\x70\x72\x65\x61\x64","\x62\x61\x73\x65\x36\x34","\x73\x6F\x72\x74","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x4F\x50\x45\x4E","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x4D\x65\x73\x73\x61\x67\x65","\x74\x79\x70\x65","\x63\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74","\x20","\x72\x65\x70\x6C\x61\x63\x65","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x66\x6F\x72\x45\x61\x63\x68","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x74\x65\x78\x74\x2F\x63\x73\x76","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x54\x79\x70\x65","\x67\x65\x74\x52\x6F\x6F\x6D\x47\x72\x6F\x75\x70\x73","\x75\x70\x64\x61\x74\x65\x55\x73\x65\x72\x73","\x64\x65\x73\x74\x72\x6F\x79"];_0xf5e2[0];var _=require(_0xf5e2[1]);var md5=require(_0xf5e2[2]);var moment=require(_0xf5e2[3]);var csv=require(_0xf5e2[4]);var Util=require(_0xf5e2[5]);var User=require(_0xf5e2[7])[_0xf5e2[6]];var Agent=require(_0xf5e2[7])[_0xf5e2[6]];var ChatRoom=require(_0xf5e2[7])[_0xf5e2[8]];var ChatMessage=require(_0xf5e2[7])[_0xf5e2[9]];var ChatWebsite=require(_0xf5e2[7])[_0xf5e2[10]];var ChatVisitor=require(_0xf5e2[7])[_0xf5e2[11]];var List=require(_0xf5e2[7])[_0xf5e2[12]];var UserHasChatRoom=require(_0xf5e2[7])[_0xf5e2[13]];exports[_0xf5e2[14]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){return ChatRoom[_0xf5e2[29]](_[_0xf5e2[28]](Util[_0xf5e2[21]](_0xcd4dxe[_0xf5e2[20]]),{include:[{model:User,attributes:[_0xf5e2[22],_0xf5e2[23],_0xf5e2[24],_0xf5e2[25],_0xf5e2[26],_0xf5e2[27]]},{model:ChatMessage},{model:ChatVisitor}]}))[_0xf5e2[19]](function(_0xcd4dx12){_0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]](_0xcd4dx12)})[_0xf5e2[16]](function(_0xcd4dx11){console[_0xf5e2[15]](_0xcd4dx11);return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[30]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){var _0xcd4dx13={tags:_0xcd4dxe[_0xf5e2[32]][_0xf5e2[31]]};var _0xcd4dx14={where:{id:_0xcd4dxe[_0xf5e2[35]][_0xf5e2[22]][_0xf5e2[34]](_0xf5e2[33])}};return ChatRoom[_0xf5e2[37]](_0xcd4dx13,_0xcd4dx14)[_0xf5e2[19]](function(_0xcd4dx15){if(!_0xcd4dx15){return _0xcd4dxf[_0xf5e2[36]](404)};return _0xcd4dx15})[_0xf5e2[19]](function(_0xcd4dx15){return _0xcd4dxf[_0xf5e2[36]](200)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};function checkTags(_0xcd4dx17){if(_0xcd4dx17){if(_0xcd4dx17[_0xf5e2[31]]){_0xcd4dx17[_0xf5e2[38]]=[];if(_[_0xf5e2[39]](_0xcd4dx17[_0xf5e2[31]])){for(var _0xcd4dx18=0;_0xcd4dx18<_0xcd4dx17[_0xf5e2[31]][_0xf5e2[40]];_0xcd4dx18++){_0xcd4dx17[_0xf5e2[38]][_0xf5e2[43]]({tags:{$like:_0xf5e2[41]+_0xcd4dx17[_0xf5e2[31]][_0xcd4dx18]+_0xf5e2[42]}})}}else {_0xcd4dx17[_0xf5e2[38]][_0xf5e2[43]]({tags:{$like:_0xf5e2[41]+_0xcd4dx17[_0xf5e2[31]]+_0xf5e2[42]}})};delete _0xcd4dx17[_0xf5e2[31]]}}}exports[_0xf5e2[44]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){switch(_0xcd4dxe[_0xf5e2[45]][_0xf5e2[26]]){case _0xf5e2[45]:return User[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]],{attributes:[_0xf5e2[22]],where:{id:{$ne:_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]]},online:true}})[_0xf5e2[19]](Util[_0xf5e2[46]](_[_0xf5e2[28]](_0xcd4dxe[_0xf5e2[20]],{id:{$ne:_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]]}})))[_0xf5e2[19]](function(_0xcd4dx12){return _0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]](_0xcd4dx12)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)});default:return User[_0xf5e2[49]](_0xf5e2[48])[_0xf5e2[29]](_[_0xf5e2[28]](Util[_0xf5e2[21]](_0xcd4dxe[_0xf5e2[20]]),{where:{id:{$ne:_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]]},online:true}}))[_0xf5e2[19]](function(_0xcd4dx12){return _0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]](_0xcd4dx12)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})}};exports[_0xf5e2[50]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){checkTags(_0xcd4dxe[_0xf5e2[20]]);var _0xcd4dx19={where:_[_0xf5e2[28]]({type:_0xf5e2[51]},_0xcd4dxe[_0xf5e2[20]])};switch(_0xcd4dxe[_0xf5e2[45]][_0xf5e2[26]]){case _0xf5e2[52]:_[_0xf5e2[28]](_0xcd4dx19,{include:[{model:User,attributes:[_0xf5e2[22]],where:{id:_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]]}}]});break;default:};return ChatRoom[_0xf5e2[55]](_0xcd4dx19)[_0xf5e2[19]](function(_0xcd4dx15){return ChatRoom[_0xf5e2[55]]({where:{id:{$in:_[_0xf5e2[53]](_0xcd4dx15,_0xf5e2[22])}},include:[{model:User,attributes:[_0xf5e2[22],_0xf5e2[23],_0xf5e2[24],_0xf5e2[26],_0xf5e2[54]]},{model:ChatVisitor}]})})[_0xf5e2[19]](function(_0xcd4dx15){return _0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]]({rows:_0xcd4dx15,count:_0xcd4dx15[_0xf5e2[40]]})})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[56]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){checkTags(_0xcd4dxe[_0xf5e2[20]]);var _0xcd4dx19={where:_[_0xf5e2[28]]({type:_0xf5e2[57]},_0xcd4dxe[_0xf5e2[20]]),include:[{model:ChatVisitor,attributes:[_0xf5e2[22],_0xf5e2[24]]}]};switch(_0xcd4dxe[_0xf5e2[45]][_0xf5e2[26]]){case _0xf5e2[52]:_0xcd4dx19[_0xf5e2[58]][_0xf5e2[43]]({model:User,attributes:[_0xf5e2[22]],where:{id:_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]]}});break;default:};return ChatRoom[_0xf5e2[55]](_0xcd4dx19)[_0xf5e2[19]](function(_0xcd4dx15){return _0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]]({rows:_0xcd4dx15,count:_0xcd4dx15[_0xf5e2[40]]})})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[59]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){return User[_0xf5e2[49]](_0xf5e2[48])[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[35]][_0xf5e2[22]])[_0xf5e2[19]](function(_0xcd4dx12){return _0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]](_0xcd4dx12)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[60]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){return ChatRoom[_0xf5e2[49]](_0xf5e2[61])[_0xf5e2[29]](_[_0xf5e2[28]](Util[_0xf5e2[21]](_0xcd4dxe[_0xf5e2[20]]),{include:[{model:User,attributes:[_0xf5e2[22],_0xf5e2[23],_0xf5e2[24],_0xf5e2[25],_0xf5e2[26],_0xf5e2[27]]},{model:ChatMessage},{model:ChatVisitor}]}))[_0xf5e2[19]](function(_0xcd4dx12){_0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]](_0xcd4dx12)})[_0xf5e2[16]](function(_0xcd4dx11){console[_0xf5e2[15]](_0xcd4dx11);return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[62]]=function(_0xcd4dxe,_0xcd4dxf){return User[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]])[_0xf5e2[19]](function(_0xcd4dx1a){return _0xcd4dx1a[_0xf5e2[64]]({include:[{model:ChatVisitor,attributes:[_0xf5e2[22],_0xf5e2[24],_0xf5e2[25]]},{model:User,attributes:[_0xf5e2[22],_0xf5e2[23],_0xf5e2[24],_0xf5e2[25],_0xf5e2[26],_0xf5e2[27]]}]})})[_0xf5e2[19]](function(_0xcd4dx15){if(!_0xcd4dx15){return _0xcd4dxf[_0xf5e2[36]](404)};return _0xcd4dxf[_0xf5e2[17]](_0xcd4dx15)})[_0xf5e2[16]](function(_0xcd4dx11){console[_0xf5e2[63]](_0xcd4dx11);return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[65]]=function(_0xcd4dxe,_0xcd4dxf){return ChatRoom[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[35]][_0xf5e2[22]],{include:[{model:ChatMessage,include:[{model:ChatVisitor,attributes:[_0xf5e2[22],_0xf5e2[25],_0xf5e2[24]]},{model:User,attributes:[_0xf5e2[22],_0xf5e2[25],_0xf5e2[23],_0xf5e2[24],_0xf5e2[54],_0xf5e2[26],_0xf5e2[27]]}]},{model:User,attributes:[_0xf5e2[22],_0xf5e2[25],_0xf5e2[23],_0xf5e2[24],_0xf5e2[54],_0xf5e2[26],_0xf5e2[27]]},{model:ChatVisitor},{model:ChatWebsite,attributes:[_0xf5e2[22],_0xf5e2[23],_0xf5e2[66]],include:[List]}]})[_0xf5e2[19]](function(_0xcd4dx1b){if(!_0xcd4dx1b){return _0xcd4dxf[_0xf5e2[36]](404)};return _0xcd4dxf[_0xf5e2[17]](_0xcd4dx1b)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[67]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){var _0xcd4dx1c;return ChatRoom[_0xf5e2[77]]({where:{token:md5(JSON[_0xf5e2[75]](_0xcd4dxe[_0xf5e2[20]][_0xf5e2[70]][_0xf5e2[74]]())).toString(_0xf5e2[73])},defaults:{type:_0xf5e2[27],token:md5(JSON[_0xf5e2[75]](_0xcd4dxe[_0xf5e2[20]][_0xf5e2[70]][_0xf5e2[74]]())).toString(_0xf5e2[73]),status:_0xf5e2[76]},include:[{model:ChatMessage,include:[{model:ChatVisitor,attributes:[_0xf5e2[22],_0xf5e2[25],_0xf5e2[24]]},{model:User,attributes:[_0xf5e2[22],_0xf5e2[23],_0xf5e2[24],_0xf5e2[25],_0xf5e2[26],_0xf5e2[27]]}]},{model:User,attributes:[_0xf5e2[22],_0xf5e2[23],_0xf5e2[24],_0xf5e2[25],_0xf5e2[26],_0xf5e2[27]]}]})[_0xf5e2[72]](function(_0xcd4dx1b,_0xcd4dx1e){_0xcd4dx1c=_0xcd4dx1b;if(_0xcd4dx1e){return _0xcd4dx1c[_0xf5e2[71]](_0xcd4dxe[_0xf5e2[20]][_0xf5e2[70]])}})[_0xf5e2[19]](function(){return _0xcd4dx1c[_0xf5e2[69]]()})[_0xf5e2[19]](function(_0xcd4dx1d){return _0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]](_[_0xf5e2[28]](_0xcd4dx1c[_0xf5e2[68]],{Users:_0xcd4dx1d}))})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[78]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){var _0xcd4dx1c;return ChatRoom[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[35]][_0xf5e2[22]])[_0xf5e2[19]](function(_0xcd4dx1b){_0xcd4dx1c=_0xcd4dx1b;if(!_0xcd4dx1c){return _0xcd4dxf[_0xf5e2[36]](404)}})[_0xf5e2[19]](function(){return ChatMessage[_0xf5e2[80]](_[_0xf5e2[28]](_0xcd4dxe[_0xf5e2[32]],{type:_0xcd4dx1c[_0xf5e2[79]],ChatRoomId:_0xcd4dxe[_0xf5e2[35]][_0xf5e2[22]],UserId:_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]]}))})[_0xf5e2[19]](function(_0xcd4dx1f){return _0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]](_0xcd4dx1f)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[81]]=function(_0xcd4dxe,_0xcd4dxf,_0xcd4dx10){return ChatRoom[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[35]][_0xf5e2[22]],{include:[{model:ChatMessage,include:[{model:ChatVisitor,attributes:[_0xf5e2[22],_0xf5e2[24]]},{model:User,attributes:[_0xf5e2[22],_0xf5e2[24]]}]}]})[_0xf5e2[19]](function(_0xcd4dx1b){var _0xcd4dx20=[];_0xcd4dx1b[_0xf5e2[86]][_0xf5e2[85]](function(_0xcd4dx1f){_0xcd4dx20[_0xf5e2[43]]({name:_0xcd4dx1f[_0xf5e2[6]]?_0xcd4dx1f[_0xf5e2[6]][_0xf5e2[24]]:_0xcd4dx1f[_0xf5e2[11]][_0xf5e2[24]],text:_0xcd4dx1f[_0xf5e2[32]][_0xf5e2[83]](/(\r\n|\n|\r)/gm,_0xf5e2[82]),date:_0xcd4dx1f[_0xf5e2[84]]})});return _0xcd4dxf[_0xf5e2[79]](_0xf5e2[87])[_0xf5e2[18]](200)[_0xf5e2[17]](csv(_0xcd4dx20))})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[88]]=function(_0xcd4dxe,_0xcd4dxf){return User[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]])[_0xf5e2[19]](function(_0xcd4dx1a){return _0xcd4dx1a[_0xf5e2[64]]({where:{type:_0xcd4dxe[_0xf5e2[35]][_0xf5e2[79]]},include:[{model:ChatVisitor,attributes:[_0xf5e2[22],_0xf5e2[24],_0xf5e2[25]]}]})})[_0xf5e2[19]](function(_0xcd4dx15){if(!_0xcd4dx15){return _0xcd4dxf[_0xf5e2[36]](404)};return _0xcd4dxf[_0xf5e2[17]](_0xcd4dx15)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[89]]=function(_0xcd4dxe,_0xcd4dxf){return User[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[45]][_0xf5e2[22]])[_0xf5e2[19]](function(_0xcd4dx1a){return _0xcd4dx1a[_0xf5e2[64]]({include:[{model:ChatVisitor,attributes:[_0xf5e2[22],_0xf5e2[24],_0xf5e2[25]]},{model:User,attributes:[_0xf5e2[22],_0xf5e2[23],_0xf5e2[24],_0xf5e2[25],_0xf5e2[26],_0xf5e2[27]]}]})})[_0xf5e2[19]](function(_0xcd4dx15){if(!_0xcd4dx15){return _0xcd4dxf[_0xf5e2[36]](404)};return _0xcd4dxf[_0xf5e2[17]](_0xcd4dx15)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[80]]=function(_0xcd4dxe,_0xcd4dxf){};exports[_0xf5e2[37]]=function(_0xcd4dxe,_0xcd4dxf){if(_0xcd4dxe[_0xf5e2[32]][_0xf5e2[22]]){delete _0xcd4dxe[_0xf5e2[32]][_0xf5e2[22]]};return ChatRoom[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[35]][_0xf5e2[22]])[_0xf5e2[19]](function(_0xcd4dx1b){if(!_0xcd4dx1b){return _0xcd4dxf[_0xf5e2[36]](404)};return _0xcd4dx1b[_0xf5e2[37]](_0xcd4dxe[_0xf5e2[32]])})[_0xf5e2[19]](function(_0xcd4dx1b){return _0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]](_0xcd4dx1b)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[90]]=function(_0xcd4dxe,_0xcd4dxf){var _0xcd4dx1c;if(_0xcd4dxe[_0xf5e2[32]][_0xf5e2[22]]){delete _0xcd4dxe[_0xf5e2[32]][_0xf5e2[22]]};return ChatRoom[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[35]][_0xf5e2[22]])[_0xf5e2[19]](function(_0xcd4dx1b){if(!_0xcd4dx1b||!_0xcd4dxe[_0xf5e2[32]][_0xf5e2[70]]){return _0xcd4dxf[_0xf5e2[36]](404)};return _0xcd4dx1b})[_0xf5e2[19]](function(_0xcd4dx1b){return _0xcd4dx1b[_0xf5e2[37]]({type:_0xf5e2[51],token:md5(JSON[_0xf5e2[75]](_0xcd4dxe[_0xf5e2[32]][_0xf5e2[70]][_0xf5e2[74]]())).toString(_0xf5e2[73])})})[_0xf5e2[19]](function(_0xcd4dx1b){_0xcd4dx1c=_0xcd4dx1b;return _0xcd4dx1b[_0xf5e2[71]](_0xcd4dxe[_0xf5e2[32]][_0xf5e2[70]][_0xf5e2[74]](),{individualHooks:true})})[_0xf5e2[19]](function(){return _0xcd4dx1c[_0xf5e2[69]]()})[_0xf5e2[19]](function(_0xcd4dx1d){_[_0xf5e2[28]](_0xcd4dx1c[_0xf5e2[68]],{Users:_0xcd4dx1d});return _0xcd4dxf[_0xf5e2[18]](200)[_0xf5e2[17]](_0xcd4dx1c)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};exports[_0xf5e2[91]]=function(_0xcd4dxe,_0xcd4dxf){return ChatRoom[_0xf5e2[47]](_0xcd4dxe[_0xf5e2[35]][_0xf5e2[22]])[_0xf5e2[19]](function(_0xcd4dx1b){if(!_0xcd4dx1b){return _0xcd4dxf[_0xf5e2[36]](404)};return _0xcd4dx1b[_0xf5e2[91]]()})[_0xf5e2[19]](function(){return _0xcd4dxf[_0xf5e2[36]](204)})[_0xf5e2[16]](function(_0xcd4dx11){return handleError(_0xcd4dxf,_0xcd4dx11)})};function handleError(_0xcd4dxf,_0xcd4dx11){return _0xcd4dxf[_0xf5e2[18]](500)[_0xf5e2[17]](_0xcd4dx11)}
\ No newline at end of file