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})
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()
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
def load_ads(ads): db.session.add_all([ Advertisement(**ad) for ad in ads ])
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
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
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
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
def delete(self, id): ad = Advertisement.by_id(id) ad.delete() response = jsonify({'status': 'NO CONTENT'}) response.status_code = 204 return response
def post(self): ad = Advertisement(**request.json) ad.add() response = jsonify(ad.to_dict()) response.status_code = 201 return response
def get(self, id): ad = Advertisement.by_id(id) return jsonify(ad.to_dict())
def post(self): adv = Advertisement(**request.json) adv.add() return jsonify(adv.to_dict())
def get(self, adv_id): adv = Advertisement.by_id(adv_id) return jsonify(adv.to_dict())
def post(self): advertisement = Advertisement(**request.json) db.session.add(advertisement) db.session.commit() return jsonify(advertisement.to_dict())