Example #1
0
    def post(self, request, pk, subject, record, *args, **kwargs):
        '''Create a link between two subject records in the eHB
        '''
        try:
            pds = ProtocolDataSource.objects.get(pk=pk)
        except ObjectDoesNotExist:
            return Response(
                {'error': 'ProtocolDatasource requested not found'},
                status=404)

        if pds.protocol.isUserAuthorized(request.user):
            data = request.data
            primary_rec = data['primaryRecord']
            secondary_rec = data['secondaryRecord']
            link_type = data['linkType']
            # Serialize
            primary_rec = ExternalRecord.identity_from_json(
                json.dumps(primary_rec))
            secondary_rec = ExternalRecord.identity_from_json(
                json.dumps(secondary_rec))
            res = self.er_rh.link(primary_rec, secondary_rec, link_type)
            if res['success']:
                return Response(res)
            else:
                return Response({
                    'success': False,
                    'error': res['error']
                },
                                status=422)
            return Response({
                'success': False,
                'error': 'Unknown Error'
            },
                            status=422)
Example #2
0
    def post(self, request, pk, subject, record, *args, **kwargs):
        '''Create a link between two subject records in the eHB
        '''
        try:
            pds = ProtocolDataSource.objects.get(pk=pk)
        except ObjectDoesNotExist:
            return Response({'error': 'ProtocolDatasource requested not found'}, status=404)

        if pds.protocol.isUserAuthorized(request.user):
            data = json.loads(request.body.decode('utf-8'))
            primary_rec = data['primaryRecord']
            secondary_rec = data['secondaryRecord']
            link_type = data['linkType']
            # Serialize
            primary_rec = ExternalRecord.identity_from_json(json.dumps(primary_rec))
            secondary_rec = ExternalRecord.identity_from_json(json.dumps(secondary_rec))
            res = self.er_rh.link(primary_rec, secondary_rec, link_type)
            if res['success']:
                return Response(res)
            else:
                return Response({'success': False, 'error': res['error']}, status=422)
            return Response({'success': False, 'error': 'Unknown Error'}, status=422)
Example #3
0
    def delete(self, request, pk, subject, record, *args, **kwargs):
        '''Delete a link between two subject records in the eHB
        '''
        try:
            pds = ProtocolDataSource.objects.get(pk=pk)
        except ObjectDoesNotExist:
            return Response({'error': 'ProtocolDatasource requested not found'}, status=404)

        if pds.protocol.isUserAuthorized(request.user):
            data = json.loads(request.body.decode('utf-8'))
            primary_rec = data['primaryRecord']
            link_id = data['linkId']
            # Serialize
            primary_rec = ExternalRecord.identity_from_json(json.dumps(primary_rec))
            res = self.er_rh.unlink(primary_rec, link_id)
            if res['success']:
                return Response(res)
            return Response({'success': False}, status=422)