Exemplo n.º 1
0
    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}
Exemplo n.º 2
0
 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")}
Exemplo n.º 3
0
 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")}
Exemplo n.º 4
0
    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')}
Exemplo n.º 5
0
 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")}
Exemplo n.º 6
0
 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")}
Exemplo n.º 7
0
 def delete(self, request):
     self.context.relatedProcesses.remove(request.validated['relatedProcess'])
     self.context.modified = False
     return save_asset(request)
Exemplo n.º 8
0
 def create(self, request):
     self.context.relatedProcesses.append(request.validated['relatedProcess'])
     return save_asset(request)