def send_friend_request(sender_id, friend_id): result = enki.libutil.ENKILIB_OK if friend_id != sender_id: # friend is not me if not exist_EnkiFriends_by_friends( sender_id, friend_id): # we're not currently friends already_invited = enki.libmessage.get_key_EnkiMessage_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) add_friend(sender_id, friend_id) result = INFO_FRIENDS # send an invitation to friend (unless it's a duplicate) elif not enki.libmessage.exist_EnkiMessage_by_sender_recipient( sender_id, friend_id): message = EnkiModelMessage(sender=sender_id, recipient=friend_id, type='friend_request') message.put() else: result = enki.libdisplayname.ERROR_DISPLAY_NAME_INVALID return result