def api_create_resource(self): resultMessage = {} current_user = users.get_current_user() creds = build_creds.build_credentials( scope=[ "https://apps-apis.google.com/a/feeds/calendar/resource/" ], service_account_name=oauth_config['client_email'], private_key=oauth_config['private_key'], user=oauth_config['default_user'] ) auth2token = CreateToken(creds) client = CalendarResourceClient(domain=oauth_config['domain']) auth2token.authorize(client) resource = json.loads(self.request.body) logging.info('create_resource: %s' % resource) try: resource['resourceId'] = generate_random_numbers(12) resource_list = memcache.get('resource_list') if resource_list is None: resource_list = self.components.calendars.list_resource_memcache() logging.info('resource_list: %s' % resource_list) for apiResource in resource_list: if apiResource['resourceCommonName'] == resource['resourceCommonName']: return 402 if 'resourceDescription' in resource: resourceDescription = resource['resourceDescription'] else: resourceDescription = None calendar_resource = client.CreateResource( resource_id=resource['resourceId'], resource_common_name=resource['resourceCommonName'], resource_description=resourceDescription, resource_type=resource['resourceType']) res = self.components.calendars.find_resource(str(calendar_resource)) logging.info('create_resource_result: %s' % res) action = 'A new Calendar Resource has been created' insert_audit_log( """A new Calendar Resource has been created. Resource ID: %s Resource Name: %s Resource Type: %s Resource Description: %s """ % ( resource['resourceId'], resource['resourceCommonName'], resource['resourceType'], resourceDescription), 'add new resource', current_user.email(), resource['resourceCommonName'], None, '') # AuditLogModel.new_resource_notification(config['email'], current_user.nickname(), resource) resultMessage['message'] = action resultMessage['items'] = res self.context['data'] = resultMessage except Exception as e: logging.info('create resource failed: %s' % e) return 406
class CalendarResourceSample(object): def __init__(self, domain, email, password): """Constructor for the CalendarResourceSample object. Construct a CalendarResourceSample with the given args. Args: domain: The domain name ("domain.com") email: The email account of the user or the admin ("*****@*****.**") password: The domain admin's password """ self.client = CalendarResourceClient(domain=domain) self.client.ClientLogin(email=email, password=password, source='googlecode-calendarresourcesample-v1') def create(self, resource_properties): """Creates a calendar resource with the given resource_properties Args: resource_properties: A dictionary of calendar resource properties """ print 'Creating a new calendar resource with id %s...' % ( resource_properties['resource_id']) print self.client.CreateResource( resource_id=resource_properties['resource_id'], resource_common_name=resource_properties['resource_name'], resource_description=resource_properties['resource_description'], resource_type=resource_properties['resource_type']) def get(self, resource_id=None): """Retrieves the calendar resource with the given resource_id Args: resource_id: The optional calendar resource identifier """ if resource_id: print 'Retrieving the calendar resource with id %s...' % ( resource_id) print self.client.GetResource(resource_id=resource_id) else: print 'Retrieving all calendar resources...' print self.client.GetResourceFeed() def update(self, resource_properties): """Updates the calendar resource with the given resource_properties Args: resource_properties: A dictionary of calendar resource properties """ print 'Updating the calendar resource with id %s...' % ( resource_properties['resource_id']) print self.client.UpdateResource( resource_id=resource_properties['resource_id'], resource_common_name=resource_properties['resource_name'], resource_description=resource_properties['resource_description'], resource_type=resource_properties['resource_type']) def delete(self, resource_id): """Deletes the calendar resource with the given resource_id Args: resource_id: The unique calendar resource identifier """ print 'Deleting the calendar resource with id %s...' % (resource_id) self.client.DeleteResource(resource_id) print 'Calendar resource successfully deleted.'