def get(self): """Handles REST GET verb and returns an object as JSON payload.""" key = self.request.get('key') try: entity = AnnouncementEntity.get(key) except db.BadKeyError: entity = None if not entity: transforms.send_json_response( self, 404, 'Object not found.', {'key': key}) return viewable = AnnouncementsRights.apply_rights(self, [entity]) if not viewable: transforms.send_json_response( self, 401, 'Access denied.', {'key': key}) return entity = viewable[0] schema = AnnouncementsItemRESTHandler.SCHEMA() entity_dict = transforms.entity_to_dict(entity) # Format the internal date object as ISO 8601 datetime, with time # defaulting to 00:00:00 date = entity_dict['date'] date = datetime.datetime(date.year, date.month, date.day) entity_dict['date'] = date.strftime(courses.ISO_8601_DATE_FORMAT) entity_dict['label_groups'] = ( LabelGroupsHelper.announcement_labels_to_dict(entity)) json_payload = transforms.dict_to_json(entity_dict) transforms.send_json_response( self, 200, 'Success.', payload_dict=json_payload, xsrf_token=XsrfTokenManager.create_xsrf_token( 'announcement-put'))
def get(self): """Handles REST GET verb and returns an object as JSON payload.""" key = self.request.get('key') try: entity = AnnouncementEntity.get(key) except db.BadKeyError: entity = None if not entity: transforms.send_json_response(self, 404, 'Object not found.', {'key': key}) return viewable = AnnouncementsRights.apply_rights(self, [entity]) if not viewable: transforms.send_json_response(self, 401, 'Access denied.', {'key': key}) return entity = viewable[0] schema = AnnouncementsItemRESTHandler.SCHEMA( 'Announcement', self.get_course().get_course_announcement_list_email()) entity_dict = transforms.entity_to_dict(entity) entity_dict['label_groups'] = ( LabelGroupsHelper.announcement_labels_to_dict(entity)) json_payload = transforms.dict_to_json(entity_dict, schema.get_json_schema_dict()) transforms.send_json_response( self, 200, 'Success.', payload_dict=json_payload, xsrf_token=XsrfTokenManager.create_xsrf_token('announcement-put'))
def get(self): """Handles REST GET verb and returns an object as JSON payload.""" key = self.request.get('key') try: entity = AnnouncementEntity.get(key) except db.BadKeyError: entity = None if not entity: transforms.send_json_response( self, 404, 'Object not found.', {'key': key}) return viewable = AnnouncementsRights.apply_rights(self, [entity]) if not viewable: transforms.send_json_response( self, 401, 'Access denied.', {'key': key}) return entity = viewable[0] schema = AnnouncementsItemRESTHandler.SCHEMA( 'Announcement', self.get_course().get_course_announcement_list_email()) entity_dict = transforms.entity_to_dict(entity) entity_dict['label_groups'] = ( LabelGroupsHelper.announcement_labels_to_dict(entity)) json_payload = transforms.dict_to_json( entity_dict, schema.get_json_schema_dict()) transforms.send_json_response( self, 200, 'Success.', payload_dict=json_payload, xsrf_token=XsrfTokenManager.create_xsrf_token( 'announcement-put'))