Пример #1
0
def my_advertisement(request, slug=None):
    product = get_object_or_404(Product, slug=slug)
    advertisement = get_object_or_none(Advertisement, product=product)
    if advertisement is None:
        advertisement = Advertisement()
        advertisement.product = product
        advertisement.save()
    return render(request, 'my_advertisement.html', {'advertisement': advertisement, 'product': product})
Пример #2
0
def initialize_database(app, db):
    """Drop and restore database in a consistent state"""
    with app.app_context():
        db.drop_all()
        db.create_all()
        first_ad = Advertisement('Discount Clothing', '/t/clothing', 15.1,
                                 '1.jpg')
        second_ad = Advertisement('Cool Hats',
                                  '/products/datadog-ringer-t-shirt', 300.1,
                                  '2.jpg')
        third_ad = Advertisement('Nice Bags', '/t/bags', 5242.1, '3.jpg')
        db.session.add(first_ad)
        db.session.add(second_ad)
        db.session.add(third_ad)
        db.session.commit()
Пример #3
0
def status():
    if flask_request.method == 'GET':
        advertisements = Advertisement.query.all()
        app.logger.info(f"Total advertisements available: {len(advertisements)}")
        # adding a half sleep to test something
        time.sleep(2.5)
        return jsonify([b.serialize() for b in advertisements])
    elif flask_request.method == 'POST':
        # create a new advertisement with random name and value
        advertisements_count = len(Advertisement.query.all())
        new_advertisement = Advertisement('Advertisement ' + str(discounts_count + 1), 
                                '/',
                                random.randint(10,500))
        app.logger.info(f"Adding advertisement {new_advertisement}")
        db.session.add(new_advertisement)
        db.session.commit()
        advertisements = Advertisement.query.all()

        # adding a half sleep to test something
        time.sleep(2.5)
        return jsonify([b.serialize() for b in advertisements])
    else:
        err = jsonify({'error': 'Invalid request method'})
        err.status_code = 405
        return err
Пример #4
0
def load_ads(ads):

    db.session.add_all([

        Advertisement(**ad)
        for ad in ads

    ])
Пример #5
0
    def post(self):
        new_advertisement = Advertisement.fromJson(request.get_json())
        if new_advertisement is None:
            return jsonify({'message' : 'Advertisement data missing or incomplete'}), 400

        db.session.add(new_advertisement)
        db.session.commit()

        return jsonify({'message' : 'New advertisement created!'}), 201
Пример #6
0
    def process_item(self, item, spider):
        """after item is processed
        """
        self.session = self.Session()
        ad = Advertisement(item)

        # Store the add in the database
        try:
            self.session.add(ad)
            self.session.commit()
        except Exception as exception:
            logger.error("Could not save advertisement %s cause %s", ad.object_id, exception)
            self.session.rollback()
        self.session.close()
        return item
Пример #7
0
def status():
    if flask_request.method == 'GET':

        try:
            advertisements = Advertisement.query.all()
            app.logger.info(
                f"Total advertisements available: {len(advertisements)}")
            return jsonify([b.serialize() for b in advertisements])

        except:
            app.logger.error("An error occured while getting ad.")
            err = jsonify({'error': 'Internal Server Error'})
            err.status_code = 500
            return err

    elif flask_request.method == 'POST':

        try:
            # create a new advertisement with random name and value
            advertisements_count = len(Advertisement.query.all())
            new_advertisement = Advertisement(
                'Advertisement ' + str(discounts_count + 1), '/',
                random.randint(10, 500))
            app.logger.info(f"Adding advertisement {new_advertisement}")
            db.session.add(new_advertisement)
            db.session.commit()
            advertisements = Advertisement.query.all()

            return jsonify([b.serialize() for b in advertisements])

        except:

            app.logger.error("An error occured while creating a new ad.")
            err = jsonify({'error': 'Internal Server Error'})
            err.status_code = 500
            return err

    else:
        err = jsonify({'error': 'Invalid request method'})
        err.status_code = 405
        return err
Пример #8
0
    def put(self, id):
        if id is None:
            return jsonify({'message' : 'Invalid request'}), 400
        
        new_advertisement = Advertisement.fromJson(request.get_json())
        if new_advertisement is None:
            return jsonify({'message' : 'Advertisement data missing or incomplete'}), 400

        advertisement = Advertisement.query.filter_by(id=id).one_or_none()
        if not advertisement:
            return jsonify({'message' : 'Advertisement not found'}), 404

        advertisement.topic = new_advertisement.topic
        advertisement.content = new_advertisement.content
        advertisement.quantity = new_advertisement.quantity
        advertisement.desiredAt = new_advertisement.desiredAt
        advertisement.category_id = new_advertisement.category_id
        advertisement.status_id = new_advertisement.status_id 
        db.session.commit()

        return jsonify({'message' : 'Advertisement updated'}), 202
Пример #9
0
 def delete(self, id):
     ad = Advertisement.by_id(id)
     ad.delete()
     response = jsonify({'status': 'NO CONTENT'})
     response.status_code = 204
     return response
Пример #10
0
 def post(self):
     ad = Advertisement(**request.json)
     ad.add()
     response = jsonify(ad.to_dict())
     response.status_code = 201
     return response
Пример #11
0
 def get(self, id):
     ad = Advertisement.by_id(id)
     return jsonify(ad.to_dict())
Пример #12
0
 def post(self):
     adv = Advertisement(**request.json)
     adv.add()
     return jsonify(adv.to_dict())
Пример #13
0
 def get(self, adv_id):
     adv = Advertisement.by_id(adv_id)
     return jsonify(adv.to_dict())
Пример #14
0
 def post(self):
     advertisement = Advertisement(**request.json)
     db.session.add(advertisement)
     db.session.commit()
     return jsonify(advertisement.to_dict())