API: Added Campus Model - And A new API Call
This commit is contained in:
parent
9b887c0599
commit
a37ef482ca
3 changed files with 81 additions and 5 deletions
|
@ -14,6 +14,10 @@ from flask.ext.autodoc import Autodoc
|
||||||
|
|
||||||
# DB Models
|
# DB Models
|
||||||
from models.User import User
|
from models.User import User
|
||||||
|
from models.Campus import Campus
|
||||||
|
|
||||||
|
#Validation Utils Libs
|
||||||
|
from SE_API.Validation_Utils import *
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -98,10 +102,7 @@ def oauth(oauth_token):
|
||||||
u.put()
|
u.put()
|
||||||
return cookieMonster(u.seToken)
|
return cookieMonster(u.seToken)
|
||||||
|
|
||||||
if user_data["name"] == "":
|
|
||||||
tempName = ";"
|
tempName = ";"
|
||||||
else:
|
|
||||||
tempName = user_data["name"]
|
|
||||||
|
|
||||||
if user_data["email"] == "":
|
if user_data["email"] == "":
|
||||||
for email in userEmails:
|
for email in userEmails:
|
||||||
|
@ -110,13 +111,52 @@ def oauth(oauth_token):
|
||||||
else:
|
else:
|
||||||
tempEmail = user_data["email"]
|
tempEmail = user_data["email"]
|
||||||
|
|
||||||
|
|
||||||
user = User(username=user_data["login"], name=tempName, avatar_url=user_data["avatar_url"], email=tempEmail, isLecturer=False, accsessToken=oauth_token, seToken=str(uuid.uuid4()))
|
user = User(username=user_data["login"], name=tempName, avatar_url=user_data["avatar_url"], email=tempEmail, isLecturer=False, accsessToken=oauth_token, seToken=str(uuid.uuid4()))
|
||||||
db.put(user)
|
db.put(user)
|
||||||
db.save
|
db.save
|
||||||
return cookieMonster(user.seToken)
|
return cookieMonster(user.seToken)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/Campuses/<string:token>', methods=['GET'])
|
||||||
|
@auto.doc()
|
||||||
|
def get_campuses(token):
|
||||||
|
"""
|
||||||
|
This Call will return an array of all Campuses available
|
||||||
|
:param token: user seToken
|
||||||
|
:return:
|
||||||
|
code 200:
|
||||||
|
[{'title': 'JCE',
|
||||||
|
'email_ending': '@post.jce.ac.il',
|
||||||
|
'master_user_id': 123453433341, (User that created the campus)
|
||||||
|
'avatar_url': 'http://some.domain.com/imagefile.jpg'
|
||||||
|
},
|
||||||
|
....
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
code 403: Forbidden - Invalid Token
|
||||||
|
code 500: internal server error
|
||||||
|
"""
|
||||||
|
if is_user_token_valid(token):
|
||||||
|
arr = []
|
||||||
|
query = User.all()
|
||||||
|
for c in query.run():
|
||||||
|
arr.append(c.to_JSON)
|
||||||
|
if len(arr) != 0:
|
||||||
|
return Response(response=json.dumps([]),
|
||||||
|
status=200,
|
||||||
|
mimetype="application/json")
|
||||||
|
else:
|
||||||
|
return Response(response=[],
|
||||||
|
status=200,
|
||||||
|
mimetype="application/json")
|
||||||
|
else:
|
||||||
|
return Response(response=json.dumps({'message': 'Invalid Token'}),
|
||||||
|
status=403,
|
||||||
|
mimetype="application/json")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.route('/login')
|
@app.route('/login')
|
||||||
|
|
11
SE_API/Validation_Utils.py
Normal file
11
SE_API/Validation_Utils.py
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
__author__ = 'sagi'
|
||||||
|
from google.appengine.ext import db
|
||||||
|
from models.User import User
|
||||||
|
|
||||||
|
def is_user_token_valid(token):
|
||||||
|
query = User.all()
|
||||||
|
query.filter("seToken = ", token)
|
||||||
|
|
||||||
|
for u in query.run():
|
||||||
|
return True
|
||||||
|
return False
|
25
models/Campus.py
Normal file
25
models/Campus.py
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
__author__ = 'sagi'
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
from google.appengine.ext import db
|
||||||
|
|
||||||
|
class Campus(db.Model):
|
||||||
|
title = db.StringProperty(required=True)
|
||||||
|
avatar_url = db.StringProperty(required=True)
|
||||||
|
email_ending = db.StringProperty(required=True)
|
||||||
|
master_user_id = db.IntegerProperty(required=True)
|
||||||
|
|
||||||
|
def to_JSON(self):
|
||||||
|
dick = {'title': self.username,
|
||||||
|
'email_ending': self.email_ending,
|
||||||
|
'master_user_id': self.master_user_id,
|
||||||
|
'avatar_url': self.avatar_url
|
||||||
|
}
|
||||||
|
return json.dumps(dick)
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
DEBUG Script - To create a campus:
|
||||||
|
|
||||||
|
"""
|
Loading…
Reference in a new issue