def get(self, parcel_id, parcel_event_id): response_dict = None if parcel_id is None: # show all parcels, sans events pq = Parcel.all() parcels = pq.fetch(100) response_dict = [p.to_dict() for p in parcels] else: # show single parcel, with events # unless event id set, # in that case, just return the event parcel = Parcel.get_by_id(int(parcel_id)) if parcel is None: return self.not_found() response_dict = parcel.to_dict() if parcel_event_id is None: eq = ParcelEvent.all() eq.ancestor(parcel) eq.order("date") events = eq.fetch(100) event_dicts = [e.to_dict() for e in events] response_dict["events"] = event_dicts else: event = ParcelEvent.get_by_id(int(parcel_event_id), parent=parcel) if event is None: return self.not_found() response_dict = event.to_dict() self.response.headers["Content-Type"] = "application/json; charset=UTF-8" self.response.out.write(json.dumps(response_dict))
def delete(self, parcel_id, parcel_event_id): if parcel_id is None: return self.not_found() parcel = Parcel.get_by_id(int(parcel_id)) if parcel is None: return self.not_found() if parcel_event_id is None: parcel.delete() else: parcelEvent = ParcelEvent.get_by_id(int(parcel_event_id), parent=parcel) if parcelEvent is None: return self.not_found() parcelEvent.delete() return self.no_content()
def get(self): tracking_number = self.request.get("kolliid") if len(tracking_number) < 9: xml = ParcelHelper().tracking_number_error_as_xml() else: parcel_query = Parcel.all() parcel_query.filter("tracking_number =", tracking_number) parcel = parcel_query.get() if parcel is None: xml = ParcelHelper().no_parcel_as_xml(tracking_number) else: events_query = ParcelEvent.all() logging.info( parcel ) events_query.ancestor(parcel.key()) events = events_query.fetch(100) xml = ParcelHelper().parcel_as_xml(tracking_number, parcel, events) self.response.headers["Content-Type"] = "text/xml; charset=ISO-8859-1" self.response.out.write(xml)
"date": datetime(2010, 04, 25, 11, 52), "location": "System Ange", "code" : 30, "description": "Kvittensreg. vid scannerstat." }, { "error": True, "date": datetime(2010, 04, 06, 11, 52), "location": "Sunsdsvall lokal", "code" : 802, "description": "Stangt hos mottagare" }, ] for event in p1_events: e = ParcelEvent(parent=p1) e.date = event["date"] e.location = event["location"] e.code = event["code"] e.description = event["description"] if event.has_key("error"): e.error = event["error"] e.put() """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <errorevent> <date>20000406</date> <time>1423</time> <location>Sunsdsvall lokal</location> <code>802</code> <description>Stängt hos mottagare</description>