Skip to content

Instantly share code, notes, and snippets.

@alaquitara
Created June 14, 2017 22:22
Show Gist options
  • Select an option

  • Save alaquitara/777dc0b616926c003a8890c2e6437922 to your computer and use it in GitHub Desktop.

Select an option

Save alaquitara/777dc0b616926c003a8890c2e6437922 to your computer and use it in GitHub Desktop.
class Bike(ndb.Model):
id = ndb.StringProperty()
make = ndb.StringProperty()
model = ndb.StringProperty()
year = ndb.StringProperty()
vin = ndb.StringProperty()
token_id = ndb.StringProperty(required=True)
class Rider(ndb.Model):
id = ndb.StringProperty()
name = ndb.StringProperty()
gender = ndb.StringProperty()
age = ndb.IntegerProperty()
bike_vin = ndb.StringProperty()
token_id = ndb.StringProperty(required=True)
# ---------------- Route Handlers -------------------
class BikeHandler(webapp2.RequestHandler):
def get(self, id=None):
all_bikes = Bike.query().fetch()
all_bikes_list = []
if 'token_id' in self.request.headers:
header_data= parseToken(self.request.headers['token_id'])
else:
self.response.set_status(400)
return
if header_data:
if id:
bike = ndb.Key(urlsafe=id).get()
if bike:
if bike.token_id == header_data:
bike_dict = bike.to_dict()
bike_dict['self'] = "/bikes/" + id
self.response.write(json.dumps(bike_dict))
else:
self.response.set_status(404)
return
else:
self.response.set_status(403)
return
else:
parent_key = getParentKey(header_data)
bikes = Bike.query(ancestor = parent_key).fetch()
if bikes:
for bike in bikes:
cur = {}
cur['id'] = bike.id
cur['make'] = bike.make
cur['model'] = bike.model
cur['year'] = bike.year
cur['vin'] = bike.vin
cur['self'] = "/bikes/" + bike.id
all_bikes_list.append(cur)
self.response.write(json.dumps(all_bikes_list))
else:
self.response.set_status(404)
return
else:
self.response.set_status(404)
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment