def send_friend_request(cls, sender_id, friend_id): result = enki.libutil.ENKILIB_OK if friend_id != sender_id: # friend is not me if not cls.exist_by_user_ids( sender_id, friend_id): # we're not currently friends already_invited = EnkiModelMessage.get_key_by_sender_recipient( friend_id, sender_id) if already_invited: # if an invite from the potential friend already exists, add the pair of friends immediately and delete the invite(s) cls.add_friend(sender_id, friend_id) result = cls.INFO_FRIENDS # send an invitation to friend (unless it's a duplicate) elif not EnkiModelMessage.exist_by_sender_recipient( sender_id, friend_id): EnkiModelMessage.send_message(sender_id, friend_id, 'friend_request') else: result = EnkiModelDisplayName.ERROR_DISPLAY_NAME_INVALID return result