public static function set_favourite_conversation(int $conversationid, int $userid) : favourite {
        global $DB;

        if (!self::is_user_in_conversation($userid, $conversationid)) {
            throw new \moodle_exception("Conversation doesn't exist or user is not a member");
        }
        // Get the context for this conversation.
        $conversation = $DB->get_record('message_conversations', ['id' => $conversationid]);
        $userctx = \context_user::instance($userid);
        if (empty($conversation->contextid)) {
            // When the conversation hasn't any contextid value defined, the favourite will be added to the user context.
            $conversationctx = $userctx;
        } else {
            // If the contextid is defined, the favourite will be added there.
            $conversationctx = \context::instance_by_id($conversation->contextid);
        }

        $ufservice = \core_favourites\service_factory::get_service_for_user_context($userctx);

        if ($favourite = $ufservice->get_favourite('core_message', 'message_conversations', $conversationid, $conversationctx)) {
            return $favourite;
        } else {
            return $ufservice->create_favourite('core_message', 'message_conversations', $conversationid, $conversationctx);
        }
    }
public static function set_favourite_conversation(int $conversationid, int $userid) : favourite {
        global $DB;

        if (!self::is_user_in_conversation($userid, $conversationid)) {
            throw new \moodle_exception("Conversation doesn't exist or user is not a member");
        }
        // Get the context for this conversation.
        $conversation = $DB->get_record('message_conversations', ['id' => $conversationid]);
        $userctx = \context_user::instance($userid);
        if (empty($conversation->contextid)) {
            // When the conversation hasn't any contextid value defined, the favourite will be added to the user context.
            $conversationctx = $userctx;
        } else {
            // If the contextid is defined, the favourite will be added there.
            $conversationctx = \context::instance_by_id($conversation->contextid);
        }

        $ufservice = \core_favourites\service_factory::get_service_for_user_context($userctx);

        if ($favourite = $ufservice->get_favourite('core_message', 'message_conversations', $conversationid, $conversationctx)) {
            return $favourite;
        } else {
            return $ufservice->create_favourite('core_message', 'message_conversations', $conversationid, $conversationctx);
        }
    }
public static function set_favourite_conversation ( int $ conversationid , int $ userid ) : favourite { global $ DB ; if ( ! self :: is_user_in_conversation ( $ userid , $ conversationid ) ) { throw new \ moodle_exception ( "Conversation doesn't exist or user is not a member" ) ; } // Get the context for this conversation. $ conversation = $ DB -> get_record ( 'message_conversations' , [ 'id' => $ conversationid ] ) ; $ userctx = \ context_user :: instance ( $ userid ) ; if ( empty ( $ conversation -> contextid ) ) { // When the conversation hasn't any contextid value defined, the favourite will be added to the user context. $ conversationctx = $ userctx ; } else { // If the contextid is defined, the favourite will be added there. $ conversationctx = \ context :: instance_by_id ( $ conversation -> contextid ) ; } $ ufservice = \ core_favourites \ service_factory :: get_service_for_user_context ( $ userctx ) ; if ( $ favourite = $ ufservice -> get_favourite ( 'core_message' , 'message_conversations' , $ conversationid , $ conversationctx ) ) { return $ favourite ; } else { return $ ufservice -> create_favourite ( 'core_message' , 'message_conversations' , $ conversationid , $ conversationctx ) ; } }
Mark a conversation as a favourite for the given user.

@param int $conversationid the id of the conversation to mark as a favourite.
@param int $userid the id of the user to whom the favourite belongs.
@return favourite the favourite object.
@throws \moodle_exception if the user or conversation don't exist.
Mark a conversation as a favourite for the given user .