Exemplo n.º 1
0
def githubCallback():
    if 'code' not in request.args:
        return '', 500

    # Fetch user from GitHub OAuth and store in session
    github = GitHub(GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET)
    access_token = github.get_token(request.args['code'])

    if access_token is None:
        flash('Could not authorize your request. Please try again.', 'danger')
        return '', 404

    user = User.find_or_create_from_token(access_token)

    session['access_token'] = access_token
    session['user_id'] = user.id

    # Transfer tasks in session to user database
    if 'tasks' in session:
        for task in session['tasks']:
            user_id = session['user_id']
            task_desc = task['description']
            Task.add_task(task_desc, user_id)

        session.pop('tasks', None)

    return redirect(url_for('home.index'))
Exemplo n.º 2
0
def star():
    repo = request.form['full_name']

    if not 'access_token' in session:
        flash('Please sign in with your GitHub account.', 'danger')
        return redirect(url_for('github.fetching'))

    github = GitHub(access_token=session['access_token'])
    github.delete('/user/starred/' + repo)

    return redirect(url_for('tutorial.fetching'))
Exemplo n.º 3
0
def requesting():
    search = request.args.get('query', '')
    if not 'access_token' in session:
        flash('You cannot post without an account.', 'danger')
        return render_template('index.html')

    github = GitHub(access_token=session['access_token'])
    results1 = github.get('/user/starred')
    results2 = github.get('/search/repositories', {'q': search})
    results2 = results2.get('items', [])

    return render_template('tutorial/requesting.html',
                           tutorial1=results1[:5],
                           tutorial2=results2[:5],
                           query=search)
Exemplo n.º 4
0
def requesting():
    search = request.args.get('query', '')
    if not 'access_token' in session:
        flash('This tutorial needs an authenticated user to make the request. Please sign in with your GitHub account.', 'danger')
        return render_template('tutorial/requesting.html')

    github = GitHub(access_token=session['access_token'])
    results1 = github.get('/user/starred')
    results2 = github.get('/search/repositories', { 'q': search } )
    results2 = results2.get('items', [])

    return render_template('tutorial/requesting.html',
        tutorial1 = results1[:5],
        tutorial2 = results2[:5],
        query = search
    )
Exemplo n.º 5
0
def githubCallback():
    if 'code' not in request.args:
        return '', 500

    # Fetch user from GitHub OAuth and store in session
    github = GitHub(GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET)
    access_token = github.get_token(request.args['code'])
    if access_token is None:
        flash('Could not authorize your request. Please try again.', 'danger')
        return '', 404

    user = User.find_or_create_from_token(access_token)

    session['access_token'] = access_token
    session['user_id'] = user.id

    return redirect(url_for('home.index'))
Exemplo n.º 6
0
    def find_or_create_from_token(access_token):
        data = GitHub.get_user_from_token(access_token)
        """Find existing user or create new User instance"""
        instance = User.query.filter_by(username=data['login']).first()

        if not instance:
            instance = User(data['login'], data['avatar_url'], data['id'])
            db.session.add(instance)
            db.session.commit()

        return instance
Exemplo n.º 7
0
def makePost():
    form = PostForm()
    if form.validate_on_submit():
        data = GitHub.get_user_from_token(session['access_token'])
        post = Post(Event=form.Event.data,
                    Location=form.Location.data,
                    Date=form.Date.data,
                    Cap=form.Cap.data,
                    Description=form.Description.data,
                    author=db.session.query(User).get(data['id']))
        db.session.add(post)
        db.session.commit()
        return redirect(url_for('.makePost'))
        # return render_template('tutorial/showPosts.html', post=post)
    posts = Post.query.order_by(Post.timestamp.desc()).all()
    return render_template('tutorial/postForm.html', form=form, posts=posts)
Exemplo n.º 8
0
def githubLogin():
    github = GitHub(GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET)
    return redirect(github.authorization_url(scope='public_repo'))