mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
format & rewrite
This commit is contained in:
parent
525aa9c066
commit
ec8d0a068d
@ -1,6 +1,5 @@
|
||||
import { User, UserFollow } from "@db_models"
|
||||
|
||||
// REWRITE MEE!!!
|
||||
export default async (payload = {}) => {
|
||||
const { user_id, from_user_id, basic } = payload
|
||||
|
||||
@ -8,64 +7,45 @@ export default async (payload = {}) => {
|
||||
throw new OperationError(400, "Missing user_id")
|
||||
}
|
||||
|
||||
let data = null
|
||||
const isMultipleUsers = Array.isArray(user_id)
|
||||
|
||||
if (Array.isArray(user_id)) {
|
||||
data = await User.find({
|
||||
_id: {
|
||||
$in: user_id,
|
||||
},
|
||||
}).catch((err) => {
|
||||
return false
|
||||
})
|
||||
let usersData = null
|
||||
|
||||
data = data.map((user) => {
|
||||
user = user.toObject()
|
||||
return user
|
||||
})
|
||||
if (isMultipleUsers) {
|
||||
usersData = await User.find({ _id: { $in: user_id } })
|
||||
|
||||
if (from_user_id && !basic) {
|
||||
const following = await UserFollow.find({
|
||||
to: {
|
||||
$in: ids,
|
||||
},
|
||||
user_id: from_user_id,
|
||||
}).catch(() => false)
|
||||
|
||||
following.forEach((follow) => {
|
||||
const userIndex = data.findIndex((user) => {
|
||||
return user._id === follow.to
|
||||
})
|
||||
|
||||
if (userIndex > -1) {
|
||||
data[userIndex].following = true
|
||||
}
|
||||
})
|
||||
if (!usersData || !usersData.length) {
|
||||
return []
|
||||
}
|
||||
|
||||
return data
|
||||
usersData = usersData.map((user) => user.toObject())
|
||||
} else {
|
||||
data = await User.findOne({
|
||||
_id: user_id,
|
||||
}).catch((err) => {
|
||||
return false
|
||||
})
|
||||
const userData = await User.findOne({ _id: user_id })
|
||||
|
||||
if (!data) {
|
||||
if (!userData) {
|
||||
throw new OperationError(404, "User not found")
|
||||
}
|
||||
|
||||
data = data.toObject()
|
||||
usersData = [userData.toObject()]
|
||||
}
|
||||
|
||||
if (from_user_id && !basic) {
|
||||
const isFollowed = await UserFollow.findOne({
|
||||
const targetUserIds = usersData.map((user) => user._id)
|
||||
|
||||
const followingData = await UserFollow.find({
|
||||
user_id: from_user_id,
|
||||
to: user_id,
|
||||
}).catch(() => false)
|
||||
to: { $in: targetUserIds },
|
||||
})
|
||||
|
||||
data.following = !!isFollowed
|
||||
const followedUserIds = new Set(
|
||||
followingData.map((follow) => follow.to.toString()),
|
||||
)
|
||||
|
||||
usersData = usersData.map((user) => ({
|
||||
...user,
|
||||
following: followedUserIds.has(user._id.toString()),
|
||||
}))
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
return isMultipleUsers ? usersData : usersData[0]
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ export default async (payload = {}) => {
|
||||
|
||||
if (data) {
|
||||
let followers = await UserFollow.find({
|
||||
to: user_id
|
||||
to: user_id,
|
||||
})
|
||||
.limit(limit)
|
||||
.skip(offset)
|
||||
@ -18,18 +18,18 @@ export default async (payload = {}) => {
|
||||
_id: {
|
||||
$in: followers.map((follow) => {
|
||||
return follow.user_id
|
||||
})
|
||||
}
|
||||
}),
|
||||
},
|
||||
})
|
||||
|
||||
return followersData
|
||||
} else {
|
||||
const count = await UserFollow.countDocuments({
|
||||
to: user_id
|
||||
to: user_id,
|
||||
})
|
||||
|
||||
return {
|
||||
count
|
||||
count,
|
||||
}
|
||||
}
|
||||
}
|
@ -8,7 +8,7 @@ export default async (payload = {}) => {
|
||||
}
|
||||
|
||||
let user = await User.findOne({
|
||||
username
|
||||
username,
|
||||
}).catch((err) => {
|
||||
return false
|
||||
})
|
||||
@ -18,6 +18,6 @@ export default async (payload = {}) => {
|
||||
}
|
||||
|
||||
return {
|
||||
user_id: user._id.toString()
|
||||
user_id: user._id.toString(),
|
||||
}
|
||||
}
|
@ -25,7 +25,5 @@ export default async (user_id, update) => {
|
||||
|
||||
user = user.toObject()
|
||||
|
||||
//global.websocket.io.of("/").emit(`user.update.${update}`, user)
|
||||
|
||||
return user
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user