Chamilo is a learning management system focused on ease of use and accessibility
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.
 
 
 
 
 
 
chamilo-lms/assets/vue/services/userRelUserService.js

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,
}