def change_user_email(self, user_token, new_email):
        old_user = self.get_user_for_token(user_token)
        password = old_user.password

        users_interface = AccessToDjangoUsersDB()

        with transaction.atomic():
            new_user = users_interface.create_and_get_usersdb_instance(
                new_email, password)
            old_user.linksdb_set.all().update(user=new_user)
            users_interface.delete_user_by_usersdb_instance(old_user)
    def modify_link_password(self, user_token, shortlink, new_password):
        user = AccessToDjangoUsersDB().get_usersdb_instance_for_token(
            user_token)
        link = self.get_shortlink_from_usersdb_instance(user, shortlink)

        link.password = new_password
        link.save()
    def modify_longlink(self, user_token, shortlink, new_longlink):
        user = AccessToDjangoUsersDB().get_usersdb_instance_for_token(
            user_token)
        link = self.get_shortlink_from_usersdb_instance(user, shortlink)

        link.longlink = new_longlink
        link.save()
    def modify_shortlink(self, user_token, old_shortlink, new_shortlink):
        user = AccessToDjangoUsersDB().get_usersdb_instance_for_token(
            user_token)
        link = self.get_shortlink_from_usersdb_instance(user, old_shortlink)

        with transaction.atomic():
            self.add_link_for_user(link.longlink, link.password, new_shortlink,
                                   user_token)
            self.delete_link(user_token, old_shortlink)
    def delete_link(self, user_token, shortlink):
        user = AccessToDjangoUsersDB().get_usersdb_instance_for_token(
            user_token)
        link = self.get_shortlink_from_usersdb_instance(user, shortlink)

        num_of_deleted_links = link.delete()[1]['shortener.LinksDB']

        if num_of_deleted_links != 1:
            raise OtherDBError("Link has not been deleted properly")
    def get_user_shortlinks_table(self, user_token):
        user = AccessToDjangoUsersDB().get_usersdb_instance_for_token(
            user_token)
        shortlinks_table = ShortlinksTable()

        for link in user.linksdb_set.all():
            shortlinks_table.add_shortlink(link.shortlink, link.longlink,
                                           link.password)

        return shortlinks_table
    def add_link_for_user(self, longlink, link_password, shortlink,
                          user_token):
        user = AccessToDjangoUsersDB().get_usersdb_instance_for_token(
            user_token)

        try:
            if shortlink is None:
                with transaction.atomic():
                    link = self.add_random_link_get_linksdb_instance(
                        longlink, link_password)
                    link.user = user
                    link.save()
            else:
                link = user.linksdb_set.create(shortlink=shortlink,
                                               longlink=longlink,
                                               password=link_password)
        except IntegrityError:
            raise ShortLinkAlreadyTaken('Shortlink(%s) is already taken' %
                                        shortlink)

        return link.shortlink
 def get_user_for_token(self, token):
     return AccessToDjangoUsersDB().get_user_for_token(token)
예제 #9
0
def get_users_interface():
    return UsersActions(AccessToDjangoUsersDB())
예제 #10
0
def get_links_interface():
    return LinksActions(AccessToDjangoLinksDB(), AccessToDjangoUsersDB())