def before_all(context): app.config.from_object('config.TestingConfig') # context.client = app.test_client() context.server = main context.address = main.address context.thread = threading.Thread(target=context.server.serve_forever) context.thread.start() # start flask app server context.browser = webdriver.Firefox() db.init_app(app) with app.app_context(): # Extensions like Flask-SQLAlchemy now know what the "current" app # is while within this block. Therefore, you can now run........ db.create_all() user1 = User('Sathwik', 'Singari', '*****@*****.**', 'dm08b048') user1.set_user_farmer() db.session.add(user1) db.session.add(User('Bilbo', 'Baggins', '*****@*****.**', 'bilbobaggins')) db.session.add(Unit('Kg')) db.session.add(Unit('gm')) db.session.add(Unit('l')) db.session.add(Unit('ml')) db.session.flush() db.session.add(Address('123 Hill Rd', None, 'Sydney', 'NSW', 'Australia', 2010)) db.session.add(Address('126 Hill Rd', None, 'Sydney', 'NSW', 'Australia', 2010)) db.session.flush() db.session.add(Farm('Shire Farms', 1)) db.session.add(Farm('Mordor Farms', 2)) db.session.flush() db.session.add(Works(1, 1)) db.session.add(Works(1, 2)) db.session.flush() db.session.add(User('Joe', 'Farmer', '*****@*****.**', 'louise1993')) db.session.commit()
def setUp(self): self.postgres = Postgresql() self.app = create_app(db_url=self.postgres.url()) self.app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False db.init_app(self.app) self.ctx = self.app.app_context() self.ctx.push() self.token = f'Bearer {token}' self.accessToken = f'Bearer {accessToken}'
def before_all(context): app.config.from_object('config.TestingConfig') # context.client = app.test_client() context.server = main context.address = main.address context.thread = threading.Thread(target=context.server.serve_forever) context.thread.start() # start flask app server context.browser = webdriver.Firefox() db.init_app(app) with app.app_context(): # Extensions like Flask-SQLAlchemy now know what the "current" app # is while within this block. Therefore, you can now run........ db.create_all() db.session.add(User('Sathwik', 'Singari', '*****@*****.**', 'dm08b048')) db.session.add(User('Bilbo', 'Baggins', '*****@*****.**', 'bilbobaggins')) User.query.get(1).set_user_farmer() db.session.add(User('Billy', 'Bogan','*****@*****.**','password')) db.session.add(Unit('Kg')) db.session.add(Unit('gm')) db.session.add(Unit('l')) db.session.add(Unit('ml')) db.session.flush() db.session.add(Address('123 Hill Rd', None, 'Sydney', 'NSW', 'Australia', 2010)) db.session.add(Address('126 Hill Rd', None, 'Sydney', 'NSW', 'Australia', 2010)) db.session.add(Farm('Shire Farms', 1)) db.session.add(Farm('Mordor Farms', 2)) #db.session.add(Image('eggplant.jpg', 'produce/1/eggplant.jpeg')) #db.session.add(Produce('Eggplant', 'Sweet organic eggplants', 'Vegetable', 1, 1)) #db.session.add(Price(1, 1, 4.35)) #db.session.add(Price(1, 2, 2.8)) db.session.add(Produce('corn', 'vegetable', 'tasty', 1, 1)) db.session.add(Produce('milk', 'dairy', 'yum', 2, 2)) db.session.flush() db.session.add(Price(1, 1, 2.2)) db.session.add(Price(2, 1, 4.4)) db.session.add(RecentProduce(1, 1)) db.session.flush() db.session.add(Works(1, 1)) db.session.add(Works(1, 2)) db.session.add(Works(4,1)) db.session.flush() db.session.add(User('Joe', 'Farmer', '*****@*****.**', 'louise1993')) #db.session.add(Works(4, 1)) db.session.add(Field('west block', 'Shire Farms', 1)) db.session.add(Resource('fertiliser', 1)) db.session.commit()
def setup_flask(): app = Flask(__name__) app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 app.config['JWT_SECRET_KEY'] = "supersecretkeyhastochange" app.config['JWT_ACCESS_TOKEN_EXPIRES'] = False app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{DB_PATH}' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False CORS(app) Compress(app) jwt = JWTManager(app) # init DB with app.app_context(): db.init_app(app) if not os.path.exists(DB_PATH): db.create_all() admin = User(username="******", password="******") if db.session.query(User).filter_by(username='******').count() < 1: db.session.add(admin) db.session.commit() return app
_LOGGER.warning('WARNING: GCM disabled, invalid sender id found') gcm_enabled = False mqtt_enabled = True if cfg.mqtt_broker_address == '': _LOGGER.warning("WARNING: MQTT disabled, please enter the address for mqtt broker") mqtt_enabled = False if cfg.mqtt_broker_address == 0: _LOGGER.warning('WARNING: MQTT disabled, invalid address for mqtt broker') mqtt_enabled = False app = Flask(__name__) app.debug = cfg.debug app.config['SQLALCHEMY_DATABASE_URI'] = cfg.database_uri app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db.init_app(app) db.app = app try: database.init_db() except Exception as err: _LOGGER.error("couldn't initialize database with URI: %s", cfg.database_uri) if cfg.GLOBAL_BACKTRACE_ENABLE: raise err else: sys.exit(1) @app.route('/') def index(): return redirect('https://www.push.fish')
if config.google_api_key == '': stderr.write("WARNING: GCM disabled, please enter the google api key for gcm") gcm_enabled = False if not isinstance(config.google_gcm_sender_id, int): stderr.write("WARNING: GCM disabled, sender id is not an integer") gcm_enabled = False elif config.google_gcm_sender_id == 0: stderr.write('WARNING: GCM disabled, invalid sender id found') gcm_enabled = False app = Flask(__name__) app.debug = config.debug or int(getenv('FLASK_DEBUG', 0)) > 0 app.config['SQLALCHEMY_DATABASE_URI'] = config.database_uri app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db.init_app(app) with app.app_context(): db.engine.execute("SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'") @app.route('/') def index(): return redirect('http://docs.pushjet.io') @app.route('/robots.txt') @app.route('/favicon.ico') def robots_txt(): return send_from_directory(app.static_folder, request.path[1:])
def init_extensions(app, db_url): app.config["SQLALCHEMY_DATABASE_URI"] = db_url app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True db.init_app(app) migrate.init_app(app, db) CORS(app, resources={r"*": {"origins": "http://localhost:3000"}})
def create_app(config_name): app = FlaskAPI(__name__, instance_relative_config=True) app.config.from_object(app_config[config_name]) app.config.from_pyfile('config.py') app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config["SQLALCHEMY_DATABASE_URI"] = os.getenv( 'SQLALCHEMY_DATABASE_URI') db.init_app(app) ma = Marshmallow(app) CORS(app) @app.route('/', methods=['GET']) def welcome_to_api(): """Check if API is running""" response = { "status": 200, "message": "Welcome To Country Bite App Backend API" } return make_response(jsonify(response)), 200 ########################################################################################### Login & Register @app.route('/api/v1/user/register', methods=['POST']) def register_new_user(): name = request.get_json()['name'] country = request.get_json()['country'] phone = request.get_json()['phone'] password = request.get_json()['password'] email = request.get_json()['email'] role = request.get_json()['role'] thumbnail = request.get_json()['thumbnail'] if not thumbnail: thumbnail = 'https://img.favpng.com/20/11/12/computer-icons-user-profile-png-favpng-0UAKKCpRRsMj5NaiELzw1pV7L.jpg' verify_data = Register_Validation({ "name": name, "country": country, "password": password, "email": email, "thumbnail": thumbnail, "role": role }) is_verified = verify_data.check_input() if is_verified[0] == 200: if not User.query.filter_by(email=email).first(): new_user = User(name, country, password, phone, email, thumbnail, role) new_user.save() return make_response( jsonify({"message": "User successfully created!"})), 201 else: return make_response( jsonify({"message": "Email already being used here."})) else: return make_response(jsonify({"message": is_verified[1]})), is_verified[0] @app.route('/api/v1/user/login', methods=['POST']) def login_registered_user(): email = request.get_json()['email'] password = request.get_json()['password'] user = User.query.filter_by(email=email).first() if user: if user.user_email_verified(password): token = user.generate_token() return user.login_times + "" user.last_login = datetime.now() user.save() return make_response( jsonify({ "token": token, "message": "You have successfully LoggedIn" })), 200 else: return make_response( jsonify({"message": "You entered a wrong password"})), 200 else: return make_response( jsonify({"message": "Wrong credentials, try again"})), 200 ########################################################################################### Countries CRUD @app.route('/api/v1/countries', methods=['GET', 'POST']) @login_required def get_add_new_country(current_user, user_country): if request.method == 'GET': countries = Country.query.all() return make_response( jsonify({"countries": countries_schema.dump(countries)})), 200 if request.method == 'POST': name = request.data.get('name', '') code = request.data.get('code', '') if name and code: new_country = Country(name, code) new_country.save() return make_response( jsonify({ "message": "Country successfully saved!", "country": country_schema.dump(new_country) })), 201 else: return make_response( jsonify({"message": "Add a country name and code"})), 400 @app.route('/api/v1/countries/<country_id>', methods=['GET', 'PUT', 'DELETE']) @login_required def get_update_delete_country(current_user, user_country, id): country = Country.query.get(id) if country: if request.method == 'DELETE': country.delete() return make_response( jsonify( {"message": "You Successfully deleted Country " + id})), 202 elif request.method == 'GET': return make_response( jsonify({"country": country_schema.dump(country)})), 200 elif request.method == 'PUT': name = str(request.data.get('name', '')) code = int(request.data.get('code', 0)) if name and code: country.name = name country.code = code country.save() return make_response( jsonify({ "message": "You successfully updated country " + id, "country": country_schema.dump(country) })), 202 else: return make_response( jsonify({"message": "Include both Name & Code"})), 400 else: return make_response(jsonify({"message": "Country does not exist"})), 404 ########################################################################################### Posts CRUD @app.route('/api/v1/posts', methods=['GET', 'POST']) @login_required def get_add_new_post(current_user, user_country): if request.method == 'GET': posts = Post.query.all() return make_response(jsonify({"posts": posts_schema.dump(posts)})), 200 if request.method == 'POST': user = current_user country = Country.query.filter_by(name=user_country).first() message = request.data.get('message', '') image = request.data.get('image', '') if message or image == 200: new_post = Post(user, country.id, message, image) new_post.save() return make_response( jsonify({ "message": "Post successfully saved!", "Post": post_schema.dump(new_post) })), 201 else: return make_response( jsonify({"message": "Add some text or upload image"})), 400 @app.route('/api/v1/posts/<post_id>', methods=['GET', 'PUT', 'DELETE']) @login_required def get_update_delete_posts(current_user, user_country, post_id): post = Post.query.get(post_id) if post: if request.method == 'DELETE': post.delete() return make_response( jsonify({"message": "You Successfully deleted Post " + id})), 202 elif request.method == 'GET': return make_response(jsonify({"post": post_schema.dump(post)})), 200 elif request.method == 'PUT': message = str(request.data.get('message', '')) image = str(request.data.get('image', '')) if current_user == post.user and user_country == post.country: if message: post.message = message if image: post.image = image post.save() return make_response( jsonify({ "message": "You successfully updated post " + id, "review": post_schema.dump(post) })), 202 else: return make_response( jsonify({ "message": "This Post belongs to a different user" })), 400 else: return make_response(jsonify({"message": "Post does not exist"})), 404 return app