def get_permission_screen_url(user_state):
    return (
        'https://fitbit.com/oauth2/authorize'
        '?response_type=code&client_id={client_id}&scope={scope}&prompt=login&state={state}'
    ).format(client_id=get_current_config().FITBIT_CLIENT_ID,
             scope='%20'.join(SCOPES),
             state=user_state)
Esempio n. 2
0
def get(service, controller, action, params):
    current_configs = config.get_current_config()

    base_url = current_configs.REMOTE_SERVICES[service]
    base_url += controller
    base_url += '/' + action
    header = {'Authorization': 'Bearer ' + get_access_token()}

    response = requests.get(base_url, params=params, headers=header)
    return json.loads(response.text)
Esempio n. 3
0
def fitbit_client(fitbit_credentials):
    config = get_current_config()
    client = fitbit.Fitbit(config.FITBIT_CLIENT_ID,
                           config.FITBIT_CLIENT_SECRET,
                           access_token=fitbit_credentials.access_token,
                           refresh_token=fitbit_credentials.refresh_token)
    yield client
    # Save in case we did some refreshes
    save_fitbit_token(fitbit_credentials.user_id,
                      client.client.token['access_token'],
                      client.client.token['refresh_token'])
Esempio n. 4
0
def create_app():
    app = Flask(__name__)
    app.config.from_object(get_current_config())
    app.register_blueprint(router)

    @app.teardown_appcontext
    def close_connection(*_):
        db = getattr(g, '_database', None)
        if db:
            db.close()

    return app
def fitbit_client(fitbit_credentials):
    config = get_current_config()
    client = fitbit.Fitbit(
        config.FITBIT_CLIENT_ID,
        config.FITBIT_CLIENT_SECRET,
        access_token=fitbit_credentials.access_token,
        refresh_token=fitbit_credentials.refresh_token,
        expires_at=fitbit_credentials.expires_at,
        refresh_cb=lambda tokendict: save_fitbit_token(
            fitbit_credentials.user_id,  #
            tokendict['access_token'
                      ],  # refresh_cb takes only a tokendict as a parameter
            tokendict['refresh_token'
                      ],  # so save_fitbit_token is rewritten as a lambda
            tokendict['expires_at'])  #
    )
    yield client
Esempio n. 6
0
    for i in range(1, len(res_df.columns) - 1):
        res_df['diff_FlowValve008_1492 - ' +
               str(res_df.columns[i + 1])] = res_df[
                   res_df.columns[1]] - res_df[res_df.columns[i + 1]]

    analysis_to_file(res_df, mp_ids, iter_num)

    threshold_diff(res_df, mp_ids, iter_num)


def execute_data_analysis(mpid_var, start_period, end_period,
                          granularity_level, iter_num):
    get_mp_data_data_analysis(start_period, end_period, mpid_var,
                              granularity_level, iter_num)


instance = data_analysis.instance.value
config_oauth(config.get_current_config())

try:
    execute_data_analysis(data_analysis.measuringpoint_var.value,
                          data_analysis.start_period.value,
                          data_analysis.end_period.value,
                          data_analysis.granularity.value,
                          data_analysis.iteration_num.value)
    print(
        "end of program successful with file saved to DataAnalysis folder, inside project folder."
    )
except Exception as e:
    print(e)
Esempio n. 7
0
def get_auth_url(code):
    return 'https://api.fitbit.com/oauth2/token?code={code}&client_id={client_id}&grant_type=authorization_code&expires_in=31536000'.format(
        code=code, client_id=get_current_config().FITBIT_CLIENT_ID)
Esempio n. 8
0
def get_token():
    config = get_current_config()
    return base64.b64encode("{}:{}".format(
        config.FITBIT_CLIENT_ID,
        config.FITBIT_CLIENT_SECRET).encode('utf-8')).decode('utf-8')
Esempio n. 9
0
import sqlite3

from flask import g

from config import get_current_config

DATABASE = get_current_config().DATABASE_URI


def init_db(app):
    # TODO: Implement migrations and possibly build db in Dockerfile
    with app.app_context():
        db = get_db()
        with app.open_resource('schema.sql', mode='r') as f:
            db.cursor().executescript(f.read())
        db.commit()


def get_db():
    db = getattr(g, '_database', None)
    if not db:
        db = g._database = sqlite3.connect(DATABASE, uri=True)
        # NOTE: By default, sqlite does not enforce foreign keys on
        #       new connections
        #       (http://www.sqlite.org/foreignkeys.html#fk_enable)
        #       This is much easier than compiling a custom sqlite3 library
        db.execute('PRAGMA foreign_keys = ON')
        db.row_factory = sqlite3.Row
    return db
Esempio n. 10
0
def _get_solr_url():
    current_config = config.get_current_config()
    return urlparse.urlunparse(['http', '%s:%s' % (current_config['host'], current_config['port']),
        os.path.join('solr', current_config['core'], ''), '', '', ''])
Esempio n. 11
0
import sys

from app import create_app, db
from config import get_current_config

app = create_app(get_current_config())


def create_db():
    db.init_app(app)
    db.create_all()


if __name__ == '__main__':
    if len(sys.argv) > 1 and sys.argv[1] == 'createdb':
        create_db()
    else:
        app.run(host='0.0.0.0', port=8000)