def post(self): """This API request is targeted to creating new Asset.""" self.request.registry.getAdapter(self.request.validated['asset'], IAssetManager).create_asset( self.request) asset_id = generate_id() asset = self.request.validated['asset'] asset.id = asset_id if not asset.get('assetID'): asset.assetID = generate_asset_id(get_now(), self.db, self.server_id) self.request.registry.notify(AssetInitializeEvent(asset)) if self.request.json_body['data'].get('status') == 'draft': asset.status = 'draft' acc = set_ownership(asset, self.request) self.request.validated['asset'] = asset self.request.validated['asset_src'] = {} if save_asset(self.request): self.LOGGER.info( 'Created asset {} ({})'.format(asset_id, asset.assetID), extra=context_unpack(self.request, {'MESSAGE_ID': 'asset_create'}, { 'asset_id': asset_id, 'assetID': asset.assetID })) self.request.response.status = 201 self.request.response.headers['Location'] = self.request.route_url( 'Asset', asset_id=asset_id) return {'data': asset.serialize(asset.status), 'access': acc}
def put(self): """Asset Document Update""" document = self.request.validated['document'] self.request.validated['asset'].documents.append(document) if save_asset(self.request): self.LOGGER.info( 'Updated asset document {}'.format(self.request.context.id), extra=context_unpack(self.request, {'MESSAGE_ID': 'asset_document_put'})) return {'data': document.serialize("view")}
def collection_post(self): """Asset Item Upload""" item = self.request.validated['item'] self.context.items.append(item) if save_asset(self.request): self.LOGGER.info('Created asset item {}'.format(item.id), extra=context_unpack(self.request, {'MESSAGE_ID': 'asset_item_create'}, {'item_id': item.id})) self.request.response.status = 201 item_route = self.request.matched_route.name.replace("collection_", "") self.request.response.headers['Location'] = self.request.current_route_url(_route_name=item_route, item_id=item.id, _query={}) return {'data': item.serialize("view")}
def post(self): asset = self.request.validated['asset'] asset_path = "Asset" location = self.request.route_path(asset_path, asset_id=asset.id) location = location[len(ROUTE_PREFIX):] # strips /api/<version> ownership_changed = self.request.change_ownership(location) if ownership_changed and save_asset(self.request): self.LOGGER.info( 'Updated ownership of asset {}'.format(asset.id), extra=context_unpack(self.request, {'MESSAGE_ID': 'asset_ownership_update'})) return {'data': self.request.context.serialize('view')}
def collection_post(self): """Asset Decision Upload""" decision = self.request.validated['decision'] self.context.decisions.append(decision) if save_asset(self.request): self.LOGGER.info( 'Created asset decision {}'.format(decision.id), extra=context_unpack(self.request, {'MESSAGE_ID': 'asset_decision_create'}, {'decision_id': decision.id})) self.request.response.status = 201 decision_route = self.request.matched_route.name.replace( "collection_", "") self.request.response.headers[ 'Location'] = self.request.current_route_url( _route_name=decision_route, decision_id=decision.id, _query={}) return {'data': decision.serialize("view")}
def collection_post(self): """Asset Document Upload""" document = self.request.validated['document'] document.author = self.request.authenticated_role self.context.documents.append(document) if save_asset(self.request): self.LOGGER.info( 'Created asset document {}'.format(document.id), extra=context_unpack(self.request, {'MESSAGE_ID': 'asset_document_create'}, {'document_id': document.id})) self.request.response.status = 201 document_route = self.request.matched_route.name.replace( "collection_", "") self.request.response.headers[ 'Location'] = self.request.current_route_url( _route_name=document_route, document_id=document.id, _query={}) return {'data': document.serialize("view")}
def delete(self, request): self.context.relatedProcesses.remove(request.validated['relatedProcess']) self.context.modified = False return save_asset(request)
def create(self, request): self.context.relatedProcesses.append(request.validated['relatedProcess']) return save_asset(request)