UNPKG

tuain-ecosystem-lib

Version:

Servicio de gestión mensajería instantanea de la plataforma Tuain

111 lines (98 loc) 2.6 kB
const { ObjectId } = require('mongodb'); const { genericGroups: groupsColl, genericGroupMembers: groupMembersColl } = require('../collections'); const { findByName, findById, updateObj, findByAttributes } = require('./common'); function findGroup(groupId, ownerType, memberType, groupType, name, ownerId) { let query = {}; if (groupId) { query = findById(groupId); } else { query = { ownerType, memberType, groupType, name, ownerId: ObjectId(ownerId) }; } return query; } function findGroupsByIdsAndData(groupIds, memberType, ownerType, groupType) { const groupArray = groupIds.map((id) => ObjectId(id)); return { _id: { $in: groupArray }, memberType, ownerType, groupType, }; } function newGroup(ownerType, memberType, groupType, name, ownerId) { return { ownerType, memberType, groupType, name, ownerId: ObjectId(ownerId), creation: new Date(), }; } function findGroupByParams(ownerId, ownerType, memberType, groupType, name) { let query = {}; ownerId && (query.ownerId = ObjectId(ownerId)); ownerType && (query.ownerType = ownerType); memberType && (query.memberType = memberType); groupType && (query.groupType = groupType); name && (query.name = name); return query; } function findGroupByIds(groupIds) { const idArray = groupIds.map((id) => ObjectId(id)); return { _id: { $in: idArray } }; } function newMembership(groupId, memberId) { return { groupId: ObjectId(`${groupId}`), memberId: ObjectId(`${memberId}`), creation: new Date(), }; } function newMemberships(groupId, memberIds) { const objectGroupId = ObjectId(`${groupId}`); return memberIds.map((memberId) => ({ groupId: objectGroupId, memberId: ObjectId(`${memberId}`), creation: new Date(), })); } function findGroupMember(groupId, memberId) { return { groupId: ObjectId(`${groupId}`), memberId: ObjectId(`${memberId}`), }; } function findGroupMembers(groupId) { return { groupId: ObjectId(`${groupId}`), }; } function checkGroupMembers(groupId, memberIds) { const memberArray = memberIds.map((id) => ObjectId(`${id}`)); return { groupId: ObjectId(`${groupId}`), memberId: { $in: memberArray }, }; } function findMemberGroups(memberId) { const query = { memberId: ObjectId(`${memberId}`), }; return query; } module.exports = { ObjectId, findById, findGroup, findGroupsByIdsAndData, newGroup, findGroupByParams, findGroupByIds, newMembership, newMemberships, findGroupMember, findGroupMembers, checkGroupMembers, findMemberGroups, };