mirror of
https://github.com/balkian/eestec.codeit.git
synced 2024-09-27 22:11:42 +00:00
Added API endpoints
This commit is contained in:
parent
d02904bcf5
commit
a7cc48ec51
46
app.py
46
app.py
@ -1,11 +1,12 @@
|
|||||||
import os
|
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
|
from flask import Response
|
||||||
import os
|
import os
|
||||||
from urlparse import urlsplit
|
from urlparse import urlsplit
|
||||||
from pymongo import Connection
|
from pymongo import Connection
|
||||||
import library
|
import library
|
||||||
import json
|
import json
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
import ast
|
||||||
|
|
||||||
url = os.getenv('MONGOLAB_URI', 'mongodb://heroku_app12633543:e4kprjp4r1kj0bbv9f4gih4km@dbh44.mongolab.com:27447/heroku_app12633543')
|
url = os.getenv('MONGOLAB_URI', 'mongodb://heroku_app12633543:e4kprjp4r1kj0bbv9f4gih4km@dbh44.mongolab.com:27447/heroku_app12633543')
|
||||||
parsed = urlsplit(url)
|
parsed = urlsplit(url)
|
||||||
@ -23,6 +24,7 @@ if '@' in url:
|
|||||||
db.authenticate(user_pass[0], user_pass[1])
|
db.authenticate(user_pass[0], user_pass[1])
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
app.debug = True
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def hello():
|
def hello():
|
||||||
@ -30,33 +32,58 @@ def hello():
|
|||||||
|
|
||||||
@app.route('/stats')
|
@app.route('/stats')
|
||||||
def stats():
|
def stats():
|
||||||
stats = db.stats.findOne()
|
stats = dict(db.stats.find_one(fields={'_id':False}))
|
||||||
return stats
|
return Response(json.dumps(stats,skipkeys=True),mimetype='application/json')
|
||||||
|
|
||||||
|
@app.route('/orgs')
|
||||||
|
def orgs():
|
||||||
|
orglist = db.orgs.find(fields={'_id':False})
|
||||||
|
orgs={}
|
||||||
|
for org in orglist:
|
||||||
|
orgs[org[u'login']]=org
|
||||||
|
print orgs
|
||||||
|
return Response(json.dumps(orgs,skipkeys=True),mimetype='application/json')
|
||||||
|
|
||||||
|
@app.route('/users')
|
||||||
|
def users():
|
||||||
|
userlist = db.users.find(fields={'_id':False})
|
||||||
|
users={}
|
||||||
|
for user in userlist:
|
||||||
|
users[user[u'login']]=user
|
||||||
|
return Response(json.dumps(users,skipkeys=True),mimetype='application/json')
|
||||||
|
|
||||||
|
@app.route('/repos')
|
||||||
|
def repos():
|
||||||
|
repolist = db.repos.find(fields={'_id':False})
|
||||||
|
repos={}
|
||||||
|
for repo in repolist:
|
||||||
|
repos[repo[u'url']]=repo
|
||||||
|
return Response(json.dumps(repos,skipkeys=True),mimetype='application/json')
|
||||||
|
|
||||||
def update_db():
|
def update_db():
|
||||||
store.load_all('lcs.json')
|
store.load_all(file='lcs.json')
|
||||||
stats=store.get_stats()
|
stats=store.get_stats()
|
||||||
db.logs.insert({'time':str(datetime.now())})
|
db.logs.insert({'time':str(datetime.now())})
|
||||||
db.stats.insert(stats)
|
db.stats.insert(stats)
|
||||||
orgs = db.orgs
|
orgs = db.orgs
|
||||||
db.orgs.ensure_index('name',30)
|
db.orgs.ensure_index('name',30)
|
||||||
for org in store.orgs:
|
for org in store.orgs:
|
||||||
orgdb=orgs.update({'name':org},
|
orgdb=orgs.update({'login':org},
|
||||||
{'name': org, 'data':store.orgs[org]},
|
store.orgs[org],
|
||||||
upsert=True,
|
upsert=True,
|
||||||
w=0)
|
w=0)
|
||||||
users = db.users
|
users = db.users
|
||||||
for user in store.users:
|
for user in store.users:
|
||||||
print "User:%s"%user
|
print "User:%s"%user
|
||||||
print ">%s"%store.users[user]
|
print ">%s"%store.users[user]
|
||||||
userdb=users.update({'name':user},
|
userdb=users.update({'login':user},
|
||||||
{'name': user, 'data':store.users[user]},
|
store.users[user],
|
||||||
upsert=True,
|
upsert=True,
|
||||||
w=0)
|
w=0)
|
||||||
repos = db.repos
|
repos = db.repos
|
||||||
for repo in store.repos:
|
for repo in store.repos:
|
||||||
reposdb=repos.update({'url':repo},
|
reposdb=repos.update({'url':repo},
|
||||||
{'url': repo, 'data': store.repos[repo]},
|
store.repos[repo],
|
||||||
upsert=True,
|
upsert=True,
|
||||||
w=0)
|
w=0)
|
||||||
|
|
||||||
@ -65,5 +92,4 @@ if __name__ == '__main__':
|
|||||||
# Bind to PORT if defined, otherwise default to 5000.
|
# Bind to PORT if defined, otherwise default to 5000.
|
||||||
port = int(os.environ.get('PORT', 5000))
|
port = int(os.environ.get('PORT', 5000))
|
||||||
app.run(host='0.0.0.0', port=port)
|
app.run(host='0.0.0.0', port=port)
|
||||||
update_db()
|
|
||||||
# Connect to memcache with config from environment variables.
|
# Connect to memcache with config from environment variables.
|
||||||
|
Loading…
Reference in New Issue
Block a user