You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.2 KiB
50 lines
1.2 KiB
import baseService from "./baseService"
|
|
import { USER_RELATION_TYPE_FRIEND, USER_RELATION_TYPE_FRIEND_REQUEST } from "../constants/entity/userreluser"
|
|
|
|
/**
|
|
* @param {Object} searchParams
|
|
* @returns {Promise<{totalItems, items}>}
|
|
*/
|
|
async function findAll(searchParams = {}) {
|
|
return await baseService.getCollection("/api/user_rel_users", searchParams)
|
|
}
|
|
|
|
/**
|
|
* @param {string} userIri
|
|
* @returns {Promise<Array<Object>>}
|
|
*/
|
|
async function getFriendList(userIri) {
|
|
const { items } = await findAll({
|
|
user: userIri,
|
|
relationType: [USER_RELATION_TYPE_FRIEND, USER_RELATION_TYPE_FRIEND_REQUEST],
|
|
})
|
|
|
|
return items
|
|
}
|
|
|
|
async function sendFriendRequest(userIri, friendIri) {
|
|
return await baseService.post("/api/user_rel_users", {
|
|
user: userIri,
|
|
friend: friendIri,
|
|
relationType: USER_RELATION_TYPE_FRIEND_REQUEST,
|
|
})
|
|
}
|
|
|
|
/**
|
|
* @param {string} userIri
|
|
* @param {string} searchTerm
|
|
* @returns {Promise<{totalItems, items}>}
|
|
*/
|
|
async function searchRelationshipByUsername(userIri, searchTerm) {
|
|
return await findAll({
|
|
user: userIri,
|
|
"friend.username": searchTerm,
|
|
})
|
|
}
|
|
|
|
export default {
|
|
findAll,
|
|
getFriendList,
|
|
sendFriendRequest,
|
|
searchRelationshipByUsername,
|
|
}
|
|
|