def beacon_attachment_status(): """ Returns the status of adding attachment to beacon """ if 'credentials' not in flask.session: return flask.redirect(flask.url_for('portal.oauth2callback')) credentials = client.OAuth2Credentials.from_json( flask.session['credentials'] ) if credentials.access_token_expired: return flask.redirect(flask.url_for('portal.oauth2callback')) else: beacon = BeaconHelper.create_beacon(request.form) status = controller.attach_data_to_beacon(beacon, credentials) user = controller.get_session_username(credentials) try: json.loads(request.form['msg']) beacons.app.logger.info( 'USER:'******'\nAdded attachement to' + ' beacon with ' + str(beacon) + ' successfully.') except ValueError: beacons.app.logger.error( 'USER:'******'\nAdded attachement' + ' to beacon with ' + str(beacon) + ' raised valued error.') flash('Invalid Input !!!!') return flask.redirect(flask.url_for('portal.attachment_beacons')) decoded_message = base64.b64decode((json.loads(status))['data']) attached_data = json.loads(decoded_message) return render_template('attachment_status.jinja', attachment=attached_data, status=json.loads(status))
def register_beacons_status(): """ Return status of beacon registration """ if 'credentials' not in flask.session: return flask.redirect(flask.url_for('portal.oauth2callback')) credentials = client.OAuth2Credentials.from_json( flask.session['credentials'] ) if credentials.access_token_expired: return flask.redirect(flask.url_for('portal.oauth2callback')) else: beacon = BeaconHelper.create_beacon(request.form) data = controller.register_beacon(beacon, credentials) name = controller.get_session_username(credentials) if data.get('error'): beacons.app.logger.warning( 'USER: '******'\nBeacon with ' + str(beacon) + ' failed to register.') else: beacons.app.logger.info( 'USER: '******'\nBeacon with ' + str(beacon) + ' registered successfully.') return render_template( 'registration_status.jinja', status=data)
def edit_beacon_status(): """ Returns the status of editing of beacon """ if 'credentials' not in flask.session: return flask.redirect(flask.url_for('portal.oauth2callback')) credentials = client.OAuth2Credentials.from_json( flask.session['credentials'] ) if credentials.access_token_expired: return flask.redirect(flask.url_for('portal.oauth2callback')) else: beacon = BeaconHelper.create_beacon(request.form) user = controller.get_session_username(credentials) status = controller.modify_beacon(beacon, credentials) status = SUCCESS if status.get('beaconName') else ERROR if status == SUCCESS: beacons.app.logger.info( 'USER:'******'\nModified beacon' + ' with ' + str(beacon) + 'successfully.') else: beacons.app.logger.warning( 'USER:'******'\nModified beacon' + ' with ' + str(beacon) + ' failed.') return render_template( 'edit_beacon_status.jinja', status=status )
def attachment_beacons(): if 'credentials' not in flask.session: return flask.redirect(flask.url_for('portal.oauth2callback')) credentials = client.OAuth2Credentials.from_json( flask.session['credentials'] ) if credentials.access_token_expired: return flask.redirect(flask.url_for('portal.oauth2callback')) else: beacon_name = request.args.get('name') decoded_message = '' beacon = BeaconHelper.create_beacon(request.args) status = controller.namespace_of_beacon(credentials) data = status['namespaces'][0]['namespaceName'] namespace = ((data.strip("namespaces")).replace('/', '')) + "/json" status = controller.list_beacons_attachment(beacon, credentials) if ("attachments") in (json.loads(status)): decoded_message = base64.b64decode( (json.loads(status))['attachments'][0]['data'] ) return render_template( 'attachment.jinja', beacon=namespace, name=beacon_name, attachment=decoded_message)
def beacon_attachment_status(): """ Returns the status of adding attachment to beacon """ if "credentials" not in flask.session: return flask.redirect(flask.url_for("portal.oauth2callback")) credentials = client.OAuth2Credentials.from_json(flask.session["credentials"]) if credentials.access_token_expired: return flask.redirect(flask.url_for("portal.oauth2callback")) else: beacon = BeaconHelper.create_beacon(request.form) status = controller.attach_data_to_beacon(beacon, credentials) user = controller.get_session_username(credentials) try: json.loads(request.form["msg"]) beacons.app.logger.warning( "USER:"******"\nAdded attachement to" + " beacon with " + str(beacon) + " successfully." ) except ValueError: beacons.app.logger.error( "USER:"******"\nAdded attachement" + " to beacon with " + str(beacon) + " raised valued error." ) flash("Invalid Input !!!!") return flask.redirect(flask.url_for("portal.attachment_beacons")) decoded_message = base64.b64decode((json.loads(status))["data"]) attached_data = json.loads(decoded_message) # return flask.redirect(flask.url_for('portal.list_beacons')) return render_template("attachment_status.jinja", attachment=attached_data, status=json.loads(status))
def edit_beacon(): """ Render template for edit beacon details """ if "credentials" not in flask.session: return flask.redirect(flask.url_for("portal.oauth2callback")) credentials = client.OAuth2Credentials.from_json(flask.session["credentials"]) if credentials.access_token_expired: return flask.redirect(flask.url_for("portal.oauth2callback")) else: beacon = BeaconHelper.create_beacon(request.args) beacon = controller.get_beacon_details(credentials, beacon) name = beacon.get("description") name = name.replace(" ", "%20") return render_template("edit_beacon.jinja", beacon=beacon, name=name)
def deactivate_beacons_status(): """ Returns status of deactivation of beacon """ if "credentials" not in flask.session: return flask.redirect(flask.url_for("portal.oauth2callback")) credentials = client.OAuth2Credentials.from_json(flask.session["credentials"]) if credentials.access_token_expired: return flask.redirect(flask.url_for("portal.oauth2callback")) else: beacon = BeaconHelper.create_beacon(request.form) controller.deactivate_beacon(beacon, credentials) user = controller.get_session_username(credentials) beacons.app.logger.warning("USER: "******"\nBeacon with " + str(beacon) + " unregistration successful.") return flask.redirect(flask.url_for("portal.list_beacons"))
def register_beacons_status(): """ Return status of beacon registration """ if "credentials" not in flask.session: return flask.redirect(flask.url_for("portal.oauth2callback")) credentials = client.OAuth2Credentials.from_json(flask.session["credentials"]) if credentials.access_token_expired: return flask.redirect(flask.url_for("portal.oauth2callback")) else: beacon = BeaconHelper.create_beacon(request.form) data = controller.register_beacon(beacon, credentials) name = controller.get_session_username(credentials) if data.get("error"): beacons.app.logger.warning("USER: "******"\nBeacon with " + str(beacon) + " failed to register.") else: beacons.app.logger.warning("USER: "******"\nBeacon with " + str(beacon) + " registered successfully.") return render_template("registration_status.jinja", status=data)
def list_beacons_attachment(): """ Returns status of deactivation of beacon """ if "credentials" not in flask.session: return flask.redirect(flask.url_for("portal.oauth2callback")) credentials = client.OAuth2Credentials.from_json(flask.session["credentials"]) if credentials.access_token_expired: return flask.redirect(flask.url_for("portal.oauth2callback")) else: beacon = BeaconHelper.create_beacon(request.args) status = controller.list_beacons_attachment(beacon, credentials) if ("attachments") in (json.loads(status)): decoded_message = base64.b64decode((json.loads(status))["attachments"][0]["data"]) return render_template("view_attachment.jinja", attachment=decoded_message, status=json.loads(status)) else: return render_template("view_attachment.jinja", msg="Sorry No Attachments Found")
def activate_beacons_status(): """ Activates the Inactive beacon """ if 'credentials' not in flask.session: return flask.redirect(flask.url_for('portal.oauth2callback')) credentials = client.OAuth2Credentials.from_json( flask.session['credentials'] ) if credentials.access_token_expired: return flask.redirect(flask.url_for('portal.oauth2callback')) else: beacon = BeaconHelper.create_beacon(request.form) controller.activate_beacon(beacon, credentials) user = controller.get_session_username(credentials) beacons.app.logger.info( 'USER: '******'\nBeacon with ' + str(beacon) + ' unregistration successful.') return flask.redirect(flask.url_for('portal.list_beacons'))
def attachment_beacons(): if "credentials" not in flask.session: return flask.redirect(flask.url_for("portal.oauth2callback")) credentials = client.OAuth2Credentials.from_json(flask.session["credentials"]) if credentials.access_token_expired: return flask.redirect(flask.url_for("portal.oauth2callback")) else: beacon_name = request.args.get("name") decoded_message = "" beacon = BeaconHelper.create_beacon(request.args) status = controller.namespace_of_beacon(credentials) data = status["namespaces"][0]["namespaceName"] namespace = ((data.strip("namespaces")).replace("/", "")) + "/json" status = controller.list_beacons_attachment(beacon, credentials) if ("attachments") in (json.loads(status)): decoded_message = base64.b64decode((json.loads(status))["attachments"][0]["data"]) return render_template("attachment.jinja", beacon=namespace, name=beacon_name, attachment=decoded_message)
def edit_beacon_status(): """ Returns the status of editing of beacon """ if "credentials" not in flask.session: return flask.redirect(flask.url_for("portal.oauth2callback")) credentials = client.OAuth2Credentials.from_json(flask.session["credentials"]) if credentials.access_token_expired: return flask.redirect(flask.url_for("portal.oauth2callback")) else: beacon = BeaconHelper.create_beacon(request.form) user = controller.get_session_username(credentials) status = controller.modify_beacon(beacon, credentials) status = SUCCESS if status.get("beaconName") else ERROR if status == SUCCESS: beacons.app.logger.warning("USER:"******"\nModified beacon" + " with " + str(beacon) + "successfully.") else: beacons.app.logger.warning("USER:"******"\nModified beacon" + " with " + str(beacon) + " failed.") # return render_template( # 'edit_beacon_status.jinja', status=status # ) return flask.redirect(flask.url_for("portal.list_beacons"))
#!/usr/bin/env python import os import json import requests from beacons.portal.models import Header, IBeacon from beacons.portal.helper import BeaconHelper, URLBuilder from config import REGISTER_BEACONS, ERROR, SUCCESS, LIST_BEACONS, \ USER_INFO, ESTIMOTE_CMD, NAMESPACE beacon_helper = BeaconHelper() url_builder = URLBuilder() def list_beacons(credentials): """ Returns list of the registered beacons """ header = Header(credentials.access_token) response = requests.get(LIST_BEACONS, headers=header.get_header_body()) return json.loads(response.content) def list_beacons_attachment(beacon, credentials): """ Returns list of all the attachments to the beacon """ header = Header(credentials.access_token) url = url_builder.beacon_view_attachment_url(beacon) response = requests.get(url, headers=header.get_header_body()) return response.content