def post(self, *args, **kwargs):
        # Служебное создание таблиц для тестового задания
        db.create_all()

        # Получаем входные входные данные из запроса и проводим валидацию
        try:
            data = request.get_json(force=True)
            dataSchema = LongToShortSchema()
            dataSchema.load(data)
        except ValidationError as err:
            return err.messages, 422

        # Проверяем наличие объекта по длинной ссылке
        # В случае отсутствия - создаем новый объект
        linkStorageObj = LinkStorage.query.filter_by(longLink=data['long_url']).first()
        if not linkStorageObj:
            linkStorageObj = LinkStorage(
                longLink=data['long_url']
            )
            db.session.add(linkStorageObj)
            db.session.commit()

        response = {
            'short_link': f'{BASE_URL}{linkStorageObj.postfix}'
        }

        return response
Beispiel #2
0
def dbsetup(seed):
    click.echo('[*] Creating database and tables')
    db.drop_all()
    db.create_all()

    if seed:
        click.echo('[*] Seeding default database records')
        StocksSeeder.run()

    click.echo('[*] Database setup complete')
    def get(self, *args, **kwargs):
        # Служебное создание таблиц для тестового задания
        db.create_all()

        # Проверяем корректность урла
        dataSchema = ActionByShortPostfixSchema()
        try:
            dataSchema.load(kwargs)
        except ValidationError as err:
            return err.messages, 422

        # Проверяем наличие объекта по короткой сслыке
        try:
            linkStorageObj = LinkStorage.query.filter_by(postfix=kwargs['short_postfix']).first()
            getattr(linkStorageObj, 'count')
        except AttributeError:
            return 'Invalid short_postfix', 422

        response = {
            'count': linkStorageObj.count
        }

        return response
    def get(self, *args, **kwargs):
        # Служебное создание таблиц для тестового задания
        db.create_all()

        # Проверяем корректность урла
        dataSchema = ActionByShortPostfixSchema()
        try:
            dataSchema.load(kwargs)
        except ValidationError as err:
            return err.messages, 422

        # Проверяем наличие объекта по короткой сслыке
        try:
            linkStorageObj = LinkStorage.query.filter_by(postfix=kwargs['short_postfix']).first()
            getattr(linkStorageObj, 'longLink')
        except AttributeError:
            return 'Invalid short_postfix', 422

        # Учитываем новое количество переходов по сслыке
        linkStorageObj.count += 1
        db.session.add(linkStorageObj)
        db.session.commit()

        return redirect(linkStorageObj.longLink, code=302)
Beispiel #5
0
        return {
            'id': self.id,
            'name': self.name,
            'email': self.email,
            'username': self.username,
            'password': self.password,
            'register_date': str_register_date
        }

    def save_to_db(self):
        """This methods saves the changes made to a user object and commits those changes to the database"""

        db.session.add(self)
        db.session.commit()

    def delete_from_db(self):
        """This methods deletes a user object and commits those changes to the database"""

        db.session.delete(self)
        db.session.commit()

    @classmethod
    def find_by_username(cls, username):
        """This method is used to find a user by the given id"""
        return cls.query.filter_by(username=username).first()


db.create_all()
db.session.commit()
Beispiel #6
0
 def setUp(self):
     with app.app_context():
         db.create_all()
Beispiel #7
0
def createtable():
    db.create_all()
Beispiel #8
0
def create_tables():
    db.create_all()
Beispiel #9
0
 def dbsetup(self):
     with self.app.app_context():
         db.drop_all()
         db.create_all()