%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/bitnami/apps/moodle/htdocs.backup/message/amd/build/
Upload File :
Create Path :
Current File : /opt/bitnami/apps/moodle/htdocs.backup/message/amd/build/message_repository.min.js.map

{"version":3,"sources":["../src/message_repository.js"],"names":["define","$","Ajax","Notification","Constants","CONVERSATION_TYPES","sendMessagesToUser","toUserId","messages","formattedMessages","map","message","touserid","text","call","methodname","args","then","results","errors","reduce","carry","result","errormessage","push","length","Error","join","id","msgid","timecreated","useridfrom","conversationid","candeletemessagesforallusers","sendMessagesToConversation","conversationId","query","limit","offset","type","favouritesonly","limitfrom","limitnum","promise","fail","exception","countUnreadConversations","markAllAsRead","getContacts","userId","userid","getProfile","profileUserId","currentuserid","otheruserid","blockUser","blockedUserId","when","apply","blockeduserid","referenceuserid","userids","includecontactrequests","includeprivacyinfo","reponse1","profiles","unblockUser","unblockedUserId","unblockeduserid","createContactRequest","requestUserIds","requesteduserid","deleteContacts","contactUserIds","response1","getMessages","currentUserId","newestFirst","timeFrom","convid","newest","timefrom","searchUsers","searchString","search","searchMessages","sendMessageToUser","sendMessageToConversation","savePreferences","preferences","getPreferences","deleteMessages","messageIds","messageId","messageid","deleteMessagesForAllUsers","deleteConversation","conversationids","getContactRequests","acceptContactRequest","sendingUserId","recipientUserId","declineContactRequest","getConversation","loggedInUserId","includeContactRequests","includePrivacyInfo","memberLimit","memberOffset","messageLimit","messageOffset","newestMessagesFirst","memberlimit","memberoffset","messagelimit","messageoffset","newestmessagesfirst","getConversationBetweenUsers","otherUserId","getSelfConversation","getConversations","favourites","mergeself","conversations","conversation","PRIVATE","SELF","otherUser","members","name","fullname","imageurl","profileimageurl","getConversationMembers","setFavouriteConversations","conversationIds","setMutedConversations","unsetFavouriteConversations","unsetMutedConversations","getMemberInfo","referenceUserId","userIds","markAllConversationMessagesAsRead","getUserMessagePreferences","getTotalConversationCounts","getUnreadConversationCounts","getAllConversationCounts","total","unread"],"mappings":"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","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Retrieves messages from the server.\n *\n * @module     core_message/message_repository\n * @class      message_repository\n * @package    message\n * @copyright  2016 Ryan Wyllie <ryan@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(\n[\n    'jquery',\n    'core/ajax',\n    'core/notification',\n    'core_message/message_drawer_view_conversation_constants'\n], function(\n    $,\n    Ajax,\n    Notification,\n    Constants) {\n\n    var CONVERSATION_TYPES = Constants.CONVERSATION_TYPES;\n\n    /**\n     * Retrieve a list of messages from the server.\n     *\n     * @param {object} args The request arguments:\n     * @return {object} jQuery promise\n     */\n    var query = function(args) {\n        // Normalise the arguments to use limit/offset rather than limitnum/limitfrom.\n        if (typeof args.limit === 'undefined') {\n            args.limit = 0;\n        }\n\n        if (typeof args.offset === 'undefined') {\n            args.offset = 0;\n        }\n\n        if (typeof args.type === 'undefined') {\n            args.type = null;\n        }\n\n        if (typeof args.favouritesonly === 'undefined') {\n            args.favouritesonly = false;\n        }\n\n        args.limitfrom = args.offset;\n        args.limitnum = args.limit;\n\n        delete args.limit;\n        delete args.offset;\n\n        var request = {\n            methodname: 'core_message_data_for_messagearea_conversations',\n            args: args\n        };\n\n        var promise = Ajax.call([request])[0];\n\n        promise.fail(Notification.exception);\n\n        return promise;\n    };\n\n    /**\n     * Count the number of unread conversations (one or more messages from a user)\n     * for a given user.\n     *\n     * @param {object} args The request arguments:\n     * @return {object} jQuery promise\n     */\n    var countUnreadConversations = function(args) {\n        var request = {\n            methodname: 'core_message_get_unread_conversations_count',\n            args: args\n        };\n\n        var promise = Ajax.call([request])[0];\n\n        promise.fail(Notification.exception);\n\n        return promise;\n    };\n\n    /**\n     * Mark all of unread messages for a user as read.\n     *\n     * @param {object} args The request arguments:\n     * @return {object} jQuery promise\n     */\n    var markAllAsRead = function(args) {\n        var request = {\n            methodname: 'core_message_mark_all_messages_as_read',\n            args: args\n        };\n\n        var promise = Ajax.call([request])[0];\n\n        promise.fail(Notification.exception);\n\n        return promise;\n    };\n\n    /**\n     * Get contacts for given user.\n     *\n     * @param {int} userId The user id\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @return {object} jQuery promise\n     */\n    var getContacts = function(userId, limit, offset) {\n        var args = {\n            userid: userId\n        };\n\n        if (typeof limit !== 'undefined') {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.limitfrom = offset;\n        }\n\n        var request = {\n            methodname: 'core_message_get_user_contacts',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Request profile information as a user for a given user.\n     *\n     * @param {int} userId The requesting user\n     * @param {int} profileUserId The id of the user who's profile is being requested\n     * @return {object} jQuery promise\n     */\n    var getProfile = function(userId, profileUserId) {\n        var request = {\n            methodname: 'core_message_data_for_messagearea_get_profile',\n            args: {\n                currentuserid: userId,\n                otheruserid: profileUserId\n            }\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Block a user.\n     *\n     * @param {int} userId The requesting user\n     * @param {int} blockedUserId Id of user to block\n     * @return {object} jQuery promise\n     */\n    var blockUser = function(userId, blockedUserId) {\n        var requests = [\n            {\n                methodname: 'core_message_block_user',\n                args: {\n                    userid: userId,\n                    blockeduserid: blockedUserId\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: userId,\n                    userids: [blockedUserId],\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        // Wrap both requests in a single promise so that we can catch an error\n        // from either request.\n        return $.when.apply(null, Ajax.call(requests)).then(function(reponse1, profiles) {\n            // Only return the profile.\n            return profiles.length ? profiles[0] : {};\n        });\n    };\n\n    /**\n     * Unblock a user.\n     *\n     * @param {int} userId The requesting user\n     * @param {int} unblockedUserId Id of user to unblock\n     * @return {object} jQuery promise\n     */\n    var unblockUser = function(userId, unblockedUserId) {\n        var requests = [\n            {\n                methodname: 'core_message_unblock_user',\n                args: {\n                    userid: userId,\n                    unblockeduserid: unblockedUserId\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: userId,\n                    userids: [unblockedUserId],\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        // Wrap both requests in a single promise so that we can catch an error\n        // from either request.\n        return $.when.apply(null, Ajax.call(requests)).then(function(reponse1, profiles) {\n            // Only return the profile.\n            return profiles.length ? profiles[0] : {};\n        });\n    };\n\n    /**\n     * Create a request to add a user as a contact.\n     *\n     * @param {int} userId The requesting user\n     * @param {int[]} requestUserIds List of user ids to add\n     * @return {object} jQuery promise\n     */\n    var createContactRequest = function(userId, requestUserIds) {\n        var request = {\n            methodname: 'core_message_create_contact_request',\n            args: {\n                userid: userId,\n                requesteduserid: requestUserIds\n            }\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Remove a list of users as contacts.\n     *\n     * @param {int} userId The requesting user\n     * @param {int[]} contactUserIds List of user ids to add\n     * @return {object} jQuery promise\n     */\n    var deleteContacts = function(userId, contactUserIds) {\n        var requests = [\n            {\n                methodname: 'core_message_delete_contacts',\n                args: {\n                    userid: userId,\n                    userids: contactUserIds\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: userId,\n                    userids: contactUserIds,\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        return $.when.apply(null, Ajax.call(requests)).then(function(response1, profiles) {\n            // Return all of the profiles as an array.\n            return profiles;\n        });\n    };\n\n    /**\n     * Get messages between two users.\n     *\n     * @param {int} currentUserId The requesting user\n     * @param {int} conversationId Other user in the conversation\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @param {bool} newestFirst Order results by newest first\n     * @param {int} timeFrom Only return messages after this timestamp\n     * @return {object} jQuery promise\n     */\n    var getMessages = function(currentUserId, conversationId, limit, offset, newestFirst, timeFrom) {\n        var args = {\n            currentuserid: currentUserId,\n            convid: conversationId,\n            newest: newestFirst ? true : false\n        };\n\n        if (typeof limit !== 'undefined') {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.limitfrom = offset;\n        }\n\n        if (typeof timeFrom !== 'undefined') {\n            args.timefrom = timeFrom;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversation_messages',\n            args: args\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Search for users.\n     *\n     * @param {int} userId The requesting user\n     * @param {string} searchString Search string\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @return {object} jQuery promise\n     */\n    var searchUsers = function(userId, searchString, limit, offset) {\n        var args = {\n            userid: userId,\n            search: searchString\n        };\n\n        if (typeof limit !== 'undefined') {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.limitfrom = offset;\n        }\n\n        var request = {\n            methodname: 'core_message_message_search_users',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Search for messages.\n     *\n     * @param {int} userId The requesting user\n     * @param {string} searchString Search string\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @return {object} jQuery promise\n     */\n    var searchMessages = function(userId, searchString, limit, offset) {\n        var args = {\n            userid: userId,\n            search: searchString\n        };\n\n        if (typeof limit !== 'undefined') {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.limitfrom = offset;\n        }\n\n        var request = {\n            methodname: 'core_message_data_for_messagearea_search_messages',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Send a list of messages to a user.\n     *\n     * @param {int} toUserId The recipient user id\n     * @param {string[]} messages List of messages to send\n     * @return {object} jQuery promise\n     */\n    var sendMessagesToUser = function(toUserId, messages) {\n        var formattedMessages = messages.map(function(message) {\n            return {\n                touserid: toUserId,\n                text: message\n            };\n        });\n        var request = {\n            methodname: 'core_message_send_instant_messages',\n            args: {\n                messages: formattedMessages\n            }\n        };\n\n        return Ajax.call([request])[0]\n            .then(function(results) {\n                // Error handling for the weird way the old function works.\n                var errors = results.reduce(function(carry, result) {\n                    if (result.errormessage) {\n                        carry.push(result.errormessage);\n                    }\n\n                    return carry;\n                }, []);\n                if (errors.length) {\n                    throw new Error(errors.join(\"\\n\"));\n                }\n\n                return results;\n            })\n            .then(function(results) {\n                // Format the results to match the other send message function.\n                return results.map(function(result) {\n                    return {\n                        id: result.msgid,\n                        text: result.text,\n                        timecreated: result.timecreated,\n                        useridfrom: result.useridfrom,\n                        conversationid: result.conversationid,\n                        candeletemessagesforallusers: result.candeletemessagesforallusers\n                    };\n                });\n            });\n    };\n\n    /**\n     * Send a single message to a user.\n     *\n     * @param {int} toUserId The recipient user id\n     * @param {string} text The message text\n     * @return {object} jQuery promise\n     */\n    var sendMessageToUser = function(toUserId, text) {\n        return sendMessagesToUser(toUserId, [text])\n            .then(function(results) {\n                return results[0];\n            });\n    };\n\n    /**\n     * Send messages to a conversation.\n     *\n     * @param {int} conversationId The conversation id\n     * @param {string[]} messages List of messages to send\n     * @return {object} jQuery promise\n     */\n    var sendMessagesToConversation = function(conversationId, messages) {\n        var formattedMessages = messages.map(function(message) {\n            return {\n                text: message\n            };\n        });\n        var request = {\n            methodname: 'core_message_send_messages_to_conversation',\n            args: {\n                conversationid: conversationId,\n                messages: formattedMessages\n            }\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Send a message to a conversation.\n     *\n     * @param {int} conversationId The conversation id\n     * @param {string} text The message text\n     * @return {object} jQuery promise\n     */\n    var sendMessageToConversation = function(conversationId, text) {\n        return sendMessagesToConversation(conversationId, [text])\n            .then(function(result) {\n                return result[0];\n            });\n    };\n\n    /**\n     * Save message preferences.\n     *\n     * @param {int} userId The owner of the preferences\n     * @param {object[]} preferences New preferences values\n     * @return {object} jQuery promise\n     */\n    var savePreferences = function(userId, preferences) {\n        var request = {\n            methodname: 'core_user_update_user_preferences',\n            args: {\n                userid: userId,\n                preferences: preferences\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the user's preferences.\n     *\n     * @param {int} userId The target user\n     * @return {object} jQuery promise\n     */\n    var getPreferences = function(userId) {\n        var request = {\n            methodname: 'core_user_get_user_preferences',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Delete a list of messages.\n     *\n     * @param {int} userId The user to delete messages for\n     * @param {int[]} messageIds List of message ids to delete\n     * @return {object} jQuery promise\n     */\n    var deleteMessages = function(userId, messageIds) {\n        return $.when.apply(null, Ajax.call(messageIds.map(function(messageId) {\n            return {\n                methodname: 'core_message_delete_message',\n                args: {\n                    messageid: messageId,\n                    userid: userId\n                }\n            };\n        })));\n    };\n\n    /**\n     * Delete a list of messages for all users.\n     *\n     * @param {int} userId The user to delete messages for\n     * @param {int[]} messageIds List of message ids to delete\n     * @return {object} jQuery promise\n     */\n    var deleteMessagesForAllUsers = function(userId, messageIds) {\n        return $.when.apply(null, Ajax.call(messageIds.map(function(messageId) {\n            return {\n                methodname: 'core_message_delete_message_for_all_users',\n                args: {\n                    messageid: messageId,\n                    userid: userId\n                }\n            };\n        })));\n    };\n\n    /**\n     * Delete a conversation between two users.\n     *\n     * @param {int} userId The user to delete messages for\n     * @param {int} conversationId The id of the conversation\n     * @return {object} jQuery promise\n     */\n    var deleteConversation = function(userId, conversationId) {\n        var request = {\n            methodname: 'core_message_delete_conversations_by_id',\n            args: {\n                userid: userId,\n                conversationids: [conversationId]\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the list of contact requests for a user.\n     *\n     * @param {int} userId The user id\n     * @return {object} jQuery promise\n     */\n    var getContactRequests = function(userId) {\n        var request = {\n            methodname: 'core_message_get_contact_requests',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Accept a contact request.\n     *\n     * @param {int} sendingUserId The user that sent the request\n     * @param {int} recipientUserId The user that received the request\n     * @return {object} jQuery promise\n     */\n    var acceptContactRequest = function(sendingUserId, recipientUserId) {\n        var requests = [\n            {\n                methodname: 'core_message_confirm_contact_request',\n                args: {\n                    userid: sendingUserId,\n                    requesteduserid: recipientUserId\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: recipientUserId,\n                    userids: [sendingUserId],\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        // Wrap both requests in a single promise so that we can catch an error\n        // from either request.\n        return $.when.apply(null, Ajax.call(requests)).then(function(reponse1, profiles) {\n            // Only return the profile.\n            return profiles.length ? profiles[0] : {};\n        });\n    };\n\n    /**\n     * Decline a contact request.\n     *\n     * @param {int} sendingUserId The user that sent the request\n     * @param {int} recipientUserId The user that received the request\n     * @return {object} jQuery promise\n     */\n    var declineContactRequest = function(sendingUserId, recipientUserId) {\n        var requests = [\n            {\n                methodname: 'core_message_decline_contact_request',\n                args: {\n                    userid: sendingUserId,\n                    requesteduserid: recipientUserId\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: recipientUserId,\n                    userids: [sendingUserId],\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        // Wrap both requests in a single promise so that we can catch an error\n        // from either request.\n        return $.when.apply(null, Ajax.call(requests)).then(function(reponse1, profiles) {\n            // Only return the profile.\n            return profiles.length ? profiles[0] : {};\n        });\n    };\n\n    /**\n     * Get a conversation.\n     *\n     * @param {int} loggedInUserId The logged in user\n     * @param {int} conversationId The conversation id\n     * @param {bool} includeContactRequests Incldue contact requests between members\n     * @param {bool} includePrivacyInfo Include privacy info for members\n     * @param {int} memberLimit Limit for members\n     * @param {int} memberOffset Offset for members\n     * @param {int} messageLimit Limit for messages\n     * @param {int} messageOffset Offset for messages\n     * @param {bool} newestMessagesFirst Order the messages by newest first\n     * @return {object} jQuery promise\n     */\n    var getConversation = function(\n        loggedInUserId,\n        conversationId,\n        includeContactRequests,\n        includePrivacyInfo,\n        memberLimit,\n        memberOffset,\n        messageLimit,\n        messageOffset,\n        newestMessagesFirst\n    ) {\n        var args = {\n            userid: loggedInUserId,\n            conversationid: conversationId\n        };\n\n        if (typeof includeContactRequests != 'undefined' && includeContactRequests !== null) {\n            args.includecontactrequests = includeContactRequests;\n        }\n\n        if (typeof includePrivacyInfo != 'undefined' && includePrivacyInfo !== null) {\n            args.includeprivacyinfo = includePrivacyInfo;\n        }\n\n        if (typeof memberLimit != 'undefined' && memberLimit !== null) {\n            args.memberlimit = memberLimit;\n        }\n\n        if (typeof memberOffset != 'undefined' && memberOffset !== null) {\n            args.memberoffset = memberOffset;\n        }\n\n        if (typeof messageLimit != 'undefined' && messageLimit !== null) {\n            args.messagelimit = messageLimit;\n        }\n\n        if (typeof messageOffset != 'undefined' && messageOffset !== null) {\n            args.messageoffset = messageOffset;\n        }\n\n        if (typeof newestMessagesFirst != 'undefined' && newestMessagesFirst !== null) {\n            args.newestmessagesfirst = newestMessagesFirst;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversation',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get a conversation between users.\n     *\n     * @param {int} loggedInUserId The logged in user\n     * @param {int} otherUserId The other user id\n     * @param {bool} includeContactRequests Incldue contact requests between members\n     * @param {bool} includePrivacyInfo Include privacy info for members\n     * @param {int} memberLimit Limit for members\n     * @param {int} memberOffset Offset for members\n     * @param {int} messageLimit Limit for messages\n     * @param {int} messageOffset Offset for messages\n     * @param {bool} newestMessagesFirst Order the messages by newest first\n     * @return {object} jQuery promise\n     */\n    var getConversationBetweenUsers = function(\n        loggedInUserId,\n        otherUserId,\n        includeContactRequests,\n        includePrivacyInfo,\n        memberLimit,\n        memberOffset,\n        messageLimit,\n        messageOffset,\n        newestMessagesFirst\n    ) {\n        var args = {\n            userid: loggedInUserId,\n            otheruserid: otherUserId\n        };\n\n        if (typeof includeContactRequests != 'undefined' && includeContactRequests !== null) {\n            args.includecontactrequests = includeContactRequests;\n        }\n\n        if (typeof includePrivacyInfo != 'undefined' && includePrivacyInfo !== null) {\n            args.includeprivacyinfo = includePrivacyInfo;\n        }\n\n        if (typeof memberLimit != 'undefined' && memberLimit !== null) {\n            args.memberlimit = memberLimit;\n        }\n\n        if (typeof memberOffset != 'undefined' && memberOffset !== null) {\n            args.memberoffset = memberOffset;\n        }\n\n        if (typeof messageLimit != 'undefined' && messageLimit !== null) {\n            args.messagelimit = messageLimit;\n        }\n\n        if (typeof messageOffset != 'undefined' && messageOffset !== null) {\n            args.messageoffset = messageOffset;\n        }\n\n        if (typeof newestMessagesFirst != 'undefined' && newestMessagesFirst !== null) {\n            args.newestmessagesfirst = newestMessagesFirst;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversation_between_users',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get a self-conversation.\n     *\n     * @param {int} loggedInUserId The logged in user\n     * @param {int} messageLimit Limit for messages\n     * @param {int} messageOffset Offset for messages\n     * @param {bool} newestMessagesFirst Order the messages by newest first\n     * @return {object} jQuery promise\n     */\n    var getSelfConversation = function(\n        loggedInUserId,\n        messageLimit,\n        messageOffset,\n        newestMessagesFirst\n    ) {\n        var args = {\n            userid: loggedInUserId\n        };\n\n        if (typeof messageLimit != 'undefined' && messageLimit !== null) {\n            args.messagelimit = messageLimit;\n        }\n\n        if (typeof messageOffset != 'undefined' && messageOffset !== null) {\n            args.messageoffset = messageOffset;\n        }\n\n        if (typeof newestMessagesFirst != 'undefined' && newestMessagesFirst !== null) {\n            args.newestmessagesfirst = newestMessagesFirst;\n        }\n\n        var request = {\n            methodname: 'core_message_get_self_conversation',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the conversations for a user.\n     *\n     * @param {int} userId The logged in user\n     * @param {int|null} type The type of conversation to get\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @param {bool|null} favourites If favourites should be included or not\n     * @return {object} jQuery promise\n     */\n    var getConversations = function(\n        userId,\n        type,\n        limit,\n        offset,\n        favourites,\n        mergeself\n    ) {\n        var args = {\n            userid: userId,\n            type: type\n        };\n\n        if (typeof limit != 'undefined' && limit !== null) {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset != 'undefined' && offset !== null) {\n            args.limitfrom = offset;\n        }\n\n        if (typeof favourites != 'undefined' && favourites !== null) {\n            args.favourites = favourites;\n        }\n\n        if (typeof mergeself != 'undefined' && mergeself !== null) {\n            args.mergeself = mergeself;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversations',\n            args: args\n        };\n\n        return Ajax.call([request])[0]\n            .then(function(result) {\n                if (result.conversations.length) {\n                    result.conversations = result.conversations.map(function(conversation) {\n                        if (conversation.type == CONVERSATION_TYPES.PRIVATE || conversation.type == CONVERSATION_TYPES.SELF) {\n                            var otherUser = conversation.members.length ? conversation.members[0] : null;\n\n                            if (otherUser) {\n                                conversation.name = conversation.name ? conversation.name : otherUser.fullname;\n                                conversation.imageurl = conversation.imageurl ? conversation.imageurl : otherUser.profileimageurl;\n                            }\n                        }\n\n                        return conversation;\n                    });\n                }\n\n                return result;\n            });\n    };\n\n    /**\n     * Get the conversations for a user.\n     *\n     * @param {int} conversationId The conversation id\n     * @param {int} loggedInUserId The logged in user\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @param {bool} includeContactRequests If contact requests should be included in result\n     * @return {object} jQuery promise\n     */\n    var getConversationMembers = function(conversationId, loggedInUserId, limit, offset, includeContactRequests) {\n        var args = {\n            userid: loggedInUserId,\n            conversationid: conversationId\n        };\n\n        if (typeof limit != 'undefined' && limit !== null) {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset != 'undefined' && offset !== null) {\n            args.limitfrom = offset;\n        }\n\n        if (typeof includeContactRequests != 'undefined' && includeContactRequests !== null) {\n            args.includecontactrequests = includeContactRequests;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversation_members',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Set a list of conversations to set as favourites for the given user.\n     *\n     * @param {int} userId The user id\n     * @param {array} conversationIds List of conversation ids to set as favourite\n     * @return {object} jQuery promise\n     */\n    var setFavouriteConversations = function(userId, conversationIds) {\n\n        var request = {\n            methodname: 'core_message_set_favourite_conversations',\n            args: {\n                userid: userId,\n                conversations: conversationIds\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Set a list of conversations to unset as favourites for the given user.\n     *\n     * @param {int} userId The user id\n     * @param {array} conversationIds List of conversation ids to unset as favourite\n     * @return {object} jQuery promise\n     */\n    var unsetFavouriteConversations = function(userId, conversationIds) {\n\n        var request = {\n            methodname: 'core_message_unset_favourite_conversations',\n            args: {\n                userid: userId,\n                conversations: conversationIds\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Set a list of conversations to set as muted for the given user.\n     *\n     * @param {int} userId The user id\n     * @param {array} conversationIds List of conversation ids to set as favourite\n     * @return {object} jQuery promise\n     */\n    var setMutedConversations = function(userId, conversationIds) {\n        var request = {\n            methodname: 'core_message_mute_conversations',\n            args: {\n                userid: userId,\n                conversationids: conversationIds\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Set a list of conversations to unset as muted for the given user.\n     *\n     * @param {int} userId The user id\n     * @param {array} conversationIds List of conversation ids to unset as favourite\n     * @return {object} jQuery promise\n     */\n    var unsetMutedConversations = function(userId, conversationIds) {\n        var request = {\n            methodname: 'core_message_unmute_conversations',\n            args: {\n                userid: userId,\n                conversationids: conversationIds\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get a list of user's member info.\n     *\n     * @param {int} referenceUserId The user id\n     * @param {array} userIds List of user ids to get\n     * @param {bool} includeContactRequests Include contact requests between users in response\n     * @param {bool} includePrivacyInfo Include privacy info for reference user in response\n     * @return {object} jQuery promise\n     */\n    var getMemberInfo = function(referenceUserId, userIds, includeContactRequests, includePrivacyInfo) {\n        var args = {\n            referenceuserid: referenceUserId,\n            userids: userIds\n        };\n\n        if (typeof includeContactRequests != 'undefined') {\n            args.includecontactrequests = includeContactRequests;\n        }\n\n        if (typeof includePrivacyInfo != 'undefined') {\n            args.includeprivacyinfo = includePrivacyInfo;\n        }\n\n        var request = {\n            methodname: 'core_message_get_member_info',\n            args: args\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get a list of user's member info.\n     *\n     * @param {int} userId The user id to mark as read for\n     * @param {int} conversationId The conversation to mark as read\n     * @return {object} jQuery promise\n     */\n    var markAllConversationMessagesAsRead = function(userId, conversationId) {\n\n        var request = {\n            methodname: 'core_message_mark_all_conversation_messages_as_read',\n            args: {\n                userid: userId,\n                conversationid: conversationId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the user's message preferences.\n     *\n     * @param {int} userId The user id to load preferences for\n     * @return {object} jQuery promise\n     */\n    var getUserMessagePreferences = function(userId) {\n        var request = {\n            methodname: 'core_message_get_user_message_preferences',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * The the count of the user's conversations grouped by type.\n     *\n     * @param {Number} userId The user's id.\n     * @return {Object} jQuery promise.\n     */\n    var getTotalConversationCounts = function(userId) {\n        var request = {\n            methodname: 'core_message_get_conversation_counts',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * The the count of the user's unread conversations grouped by type.\n     *\n     * @param {Number} userId The user's id.\n     * @return {Object} jQuery promise.\n     */\n    var getUnreadConversationCounts = function(userId) {\n        var request = {\n            methodname: 'core_message_get_unread_conversation_counts',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get both the unread and total conversation counts in a single request.\n     *\n     * @param {Number} userId The user's id.\n     * @return {Object} jQuery promise.\n     */\n    var getAllConversationCounts = function(userId) {\n        var requests = [\n            {\n                methodname: 'core_message_get_conversation_counts',\n                args: {\n                    userid: userId\n                }\n            },\n            {\n                methodname: 'core_message_get_unread_conversation_counts',\n                args: {\n                    userid: userId\n                }\n            },\n        ];\n        return $.when.apply(null, Ajax.call(requests)).then(function(total, unread) {\n            return {\n                total: total,\n                unread: unread\n            };\n        });\n    };\n\n    return {\n        query: query,\n        countUnreadConversations: countUnreadConversations,\n        markAllAsRead: markAllAsRead,\n        getContacts: getContacts,\n        getProfile: getProfile,\n        blockUser: blockUser,\n        unblockUser: unblockUser,\n        createContactRequest: createContactRequest,\n        deleteContacts: deleteContacts,\n        getMessages: getMessages,\n        searchUsers: searchUsers,\n        searchMessages: searchMessages,\n        sendMessagesToUser: sendMessagesToUser,\n        sendMessageToUser: sendMessageToUser,\n        sendMessagesToConversation: sendMessagesToConversation,\n        sendMessageToConversation: sendMessageToConversation,\n        savePreferences: savePreferences,\n        getPreferences: getPreferences,\n        deleteMessages: deleteMessages,\n        deleteMessagesForAllUsers: deleteMessagesForAllUsers,\n        deleteConversation: deleteConversation,\n        getContactRequests: getContactRequests,\n        acceptContactRequest: acceptContactRequest,\n        declineContactRequest: declineContactRequest,\n        getConversation: getConversation,\n        getConversationBetweenUsers: getConversationBetweenUsers,\n        getSelfConversation: getSelfConversation,\n        getConversations: getConversations,\n        getConversationMembers: getConversationMembers,\n        setFavouriteConversations: setFavouriteConversations,\n        setMutedConversations: setMutedConversations,\n        unsetFavouriteConversations: unsetFavouriteConversations,\n        unsetMutedConversations: unsetMutedConversations,\n        getMemberInfo: getMemberInfo,\n        markAllConversationMessagesAsRead: markAllConversationMessagesAsRead,\n        getUserMessagePreferences: getUserMessagePreferences,\n        getTotalConversationCounts: getTotalConversationCounts,\n        getUnreadConversationCounts: getUnreadConversationCounts,\n        getAllConversationCounts: getAllConversationCounts\n    };\n});\n"],"file":"message_repository.min.js"}

Zerion Mini Shell 1.0