Exemple #1
0
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))
Exemple #2
0
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)
Exemple #3
0
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
        )
Exemple #4
0
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)
Exemple #5
0
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))
Exemple #6
0
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)
Exemple #7
0
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"))
Exemple #8
0
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)
Exemple #9
0
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")
Exemple #10
0
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'))
Exemple #11
0
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)
Exemple #12
0
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"))
Exemple #13
0
#!/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