def put(self, request, **kwargs): """This method is intended for updating an existing Organization record""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for item in request.data: pkval = item.get('id') if not pkval: log.error('Unable to update Organization. No identifier provided') return Response(status=status.HTTP_422_UNPROCESSABLE_ENTITY) try: org = Organization.objects.get(pk=int(pkval)) n = item.get('name', org.name) label = item.get('subject_id_label', org.subject_id_label) js = {"name": n, "subject_id_label": label} form = OrganizationForm(js, instance=org) FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) except Organization.DoesNotExist: log.error("Organization[{0}] does not exist.".format(pkval)) response.append( { 'id': pkval, 'success': False, 'errors': [ { 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND } ] } ) return Response(response)
def put(self, request): """This method is intended for updating an existing ExternalSystem record""" response = [] for item in request.data: pkval = item.get('id') s = item.get('external_system') if not pkval or not s: log.error("Unable to update ExternalSystem. Identifier not provided") return Response(status=status.HTTP_400_BAD_REQUEST) try: es = ExternalSystem.objects.get(pk=pkval) name = s.get('name', es.name) desc = s.get('description', es.description) url = s.get('url', es.url) js = {"name": name, "description": desc, "url": url} form = ExternalSystemForm(js, instance=es) FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) except ExternalSystem.DoesNotExist: log.error("Unable to update ExternalSystem. ExternalSystem[{0}] not found".format(pkval)) response.append( { 'id': pkval, 'success': False, 'errors': [ { 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND } ] } ) return Response(response)
def post(self, request): response = [] for s in request.data: form = UserAuditForm(s) FormHelpers.processFormJsonResponse(form, response) return Response(response)
def post(self, request): """This method is intended for adding new ExternalRecord records""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for s in request.data: label = s.get('label_id') recordid = s.get('record_id') path = s.get('path') form = ExternalRecordForm(s) args = {'record_id': recordid} if path: args['path'] = path if label: args['label_id'] = int(label) else: args['label_id'] = 1 FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) return json.dumps(response)
def put(self, request): """This method is intended for updating an existing ExternalSystem record""" response = [] for item in request.data: pkval = item.get('id') s = item.get('external_system') if not pkval or not s: log.error("Unable to update ExternalSystem. Identifier not provided") return HttpResponse(status=codes.bad_request) try: es = ExternalSystem.objects.get(pk=pkval) name = s.get('name', es.name) desc = s.get('description', es.description) url = s.get('url', es.url) js = {"name": name, "description": desc, "url": url} form = ExternalSystemForm(js, instance=es) FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) except ExternalSystem.DoesNotExist: log.error("Unable to update ExternalSystem. ExternalSystem[{0}] not found".format(pkval)) response.append( { 'id': pkval, 'success': False, 'errors': [ { 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND } ] } ) return json.dumps(response)
def post(self, request): """This method is intended for adding new ExternalRecord records""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for s in request.data: label = s.get('label_id') recordid = s.get('record_id') path = s.get('path') form = ExternalRecordForm(s) args = {'record_id': recordid} if path: args['path'] = path if label: args['label_id'] = int(label) else: args['label_id'] = 1 FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) return Response(response)
def put(self, request, **kwargs): """This method is intended for updating an existing Organization record""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for item in request.data: pkval = item.get('id') if not pkval: log.error('Unable to update Organization. No identifier provided') return HttpResponse(status=codes.unprocessable_entity) try: org = Organization.objects.get(pk=int(pkval)) n = item.get('name', org.name) label = item.get('subject_id_label', org.subject_id_label) js = {"name": n, "subject_id_label": label} form = OrganizationForm(js, instance=org) FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) except Organization.DoesNotExist: log.error("Organization[{0}] does not exist.".format(pkval)) response.append( { 'id': pkval, 'success': False, 'errors': [ { 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND } ] } ) return json.dumps(response)
def put(self, request): """This method is intended for updating an existing ExternalRecord record""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for item in request.data: pkval = item.get('id') s = item.get('external_record') if not pkval or not s: log.error("Unable to update existing ExternalRecord no identifier provided") return HttpResponse(status=codes.unprocessable_entity) try: er = ExternalRecord.objects.get(pk=pkval) subjid = s.get('subject', str(er.subject.pk)) esid = s.get('external_system', str(er.external_system.pk)) erri = s.get('record_id', er.record_id) erpath = s.get('path', er.path) if er.label: label = s.get('label', er.label.id) else: label = s.get('label') js = { "subject": subjid, "external_system": esid, "record_id": erri, "path": erpath, "label": label } form = ExternalRecordForm(js, instance=er) FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) except ExternalRecord.DoesNotExist: log.error("Unable to update ExternalRecord. ExternalRecord not found") response.append( { 'id': pkval, 'success': False, 'errors': [ { 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND } ] } ) return json.dumps(response)
def put(self, request): """This method is intended for updating an existing ExternalRecord record""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for item in request.data: pkval = item.get('id') s = item.get('external_record') if not pkval or not s: log.error("Unable to update existing ExternalRecord no identifier provided") return Response(status=status.HTTP_422_UNPROCESSABLE_ENTITY) try: er = ExternalRecord.objects.get(pk=pkval) subjid = s.get('subject', str(er.subject.pk)) esid = s.get('external_system', str(er.external_system.pk)) erri = s.get('record_id', er.record_id) erpath = s.get('path', er.path) if er.label: label = s.get('label', er.label.id) else: label = s.get('label') js = { "subject": subjid, "external_system": esid, "record_id": erri, "path": erpath, "label": label } form = ExternalRecordForm(js, instance=er) FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) except ExternalRecord.DoesNotExist: log.error("Unable to update ExternalRecord. ExternalRecord not found") response.append( { 'id': pkval, 'success': False, 'errors': [ { 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND } ] } ) return Response(response)
def post(self, request): """This method is intended for adding new Organization records""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for org in request.data: name = org.get('name') form = OrganizationForm(org) args = {'name': name} FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) return Response(response)
def post(self, request): """This method is intended for adding new Organization records""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for org in request.data: name = org.get('name') form = OrganizationForm(org) args = {'name': name} FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) return json.dumps(response)
def put(self, request): """This method is intended for updating an existing protocol relationship""" # This API request will take in ID and subject relationship attributes # { # "id": "x", PK of subject relationship # "subject_1": 6738, PK of subject # "subject_2": 6739, PK of subject # "subject_1_role": 14, PK of subject role # "subject_2_role": 15, PK of subject role # "protocol_id": 1 PK of protocol in the BRP # } response = [] for item in request.data: pkval = item.get('id') subj_relation = SubjectFamRelation.objects.get(pk=pkval) if not pkval: log.error( "Unable to update Subject relationship. No identifier provided" ) return Response(status=status.HTTP_400_BAD_REQUEST) try: args = { "subject_1": item.get('subject_1'), "subject_2": item.get('subject_2'), "subject_1_role": item.get('subject_1_role'), "subject_2_role": item.get('subject_2_role'), "protocol_id": item.get('protocol_id', subj_relation.protocol_id) } form = SubjectFamRelationForm(args, instance=subj_relation) FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) except SubjectFamRelation.DoesNotExist: log.error( "Unable to update Subject relationship. Subject relationship[{0}] does not exist" .format(pkval)) response.append({ 'id': pkval, 'success': False, 'errors': [{ 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND }] }) return Response(response)
def post(self, request): """This method is intended for adding new ExternalSystem records""" response = [] for s in request.data: name = s.get('name') form = ExternalSystemForm(s) args = {'name': name} FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) return Response(response)
def post(self, request): """This method is intended for adding new ExternalSystem records""" response = [] for s in request.data: name = s.get('name') form = ExternalSystemForm(s) args = {'name': name} FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) return json.dumps(response)
def post(self, request, pk): ''' This method is intended for adding new ExternalRecordRelation records { "related_record": 2, "relation_type": 1 } ''' content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": s = request.data s['external_record'] = pk # Check if this already exists args = {} args['external_record'] = request.data.get('external_record') args['related_record'] = request.data.get('related_record') args['relation_type'] = request.data.get('relation_type') if len(ExternalRecordRelation.objects.filter(external_record=args['external_record'], related_record=args['related_record'], relation_type=args['relation_type'])) > 0: return Response(json.dumps({'success': False, 'error': 'Record relation already exists'})) form = ExternalRecordRelationForm(s) r = FormHelpers.processFormJsonResponse(form, response, invalid_dict=args, valid_dict=args) return Response(r)
def post(self, request, pk): ''' This method is intended for adding new ExternalRecordRelation records { "related_record": 2, "relation_type": 1 } ''' content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": s = request.data s['external_record'] = pk # Check if this already exists args = {} args['external_record'] = request.data.get('external_record') args['related_record'] = request.data.get('related_record') args['relation_type'] = request.data.get('relation_type') if len(ExternalRecordRelation.objects.filter(external_record=args['external_record'], related_record=args['related_record'], relation_type=args['relation_type'])) > 0: return json.dumps({'success': False, 'error': 'Record relation already exists'}) form = ExternalRecordRelationForm(s) r = FormHelpers.processFormJsonResponse(form, response, invalid_dict=args, valid_dict=args) return json.dumps(r)
def post(self, request): """This method is intended for adding new Subject records""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for s in request.data: form = SubjectForm(s) args = { 'organization_subject_id': s.get('organization_subject_id'), 'organization_id': s.get('organization') } FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) return json.dumps(response)
def put(self, request): '''This method is intended for updating Groups.''' response = [] for item in request.data: pkval = item.get('id') g = item.get('group') if not (pkval and g): log.error("Unable to update group. No group or ID provided") return Response(status=status.HTTP_400_BAD_REQUEST) current_client_key = g.get('current_client_key', None) if not current_client_key: log.error("Unable to update group. No client key provided") return Response(status=status.HTTP_400_BAD_REQUEST) try: grp = Group.objects.get(pk=pkval) if not grp.verify_client_key(current_client_key): log.error("Unable to update group. Bad client key") return Response(status=status.HTTP_401_UNAUTHORIZED) name = g.get('name', grp.name) lock = g.get('is_locking', grp.is_locking) des = g.get('description', grp.description) client_key = g.get('client_key', current_client_key) js = { "name": name, "client_key": client_key, "is_locking": lock, "description": des } form = GroupForm(js, instance=grp) rd = FormHelpers.processFormJsonResponse( form, response, invalid_dict={'id': pkval}) if rd.get('success', False): grp = Group.objects.get(pk=rd.get('id')) rd['ehb_key'] = grp.ehb_key.key else: return Response except Group.DoesNotExist: log.error("Unable to update group. Group does not exist.") response.append({ 'id': pkval, 'success': False, 'errors': [{ 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND }] }) return Response(response)
def put(self, request): """This method is intended for updating an existing Subject record""" response = [] for item in request.data: pkval = item.get('id') s = item.get('new_subject') if not pkval or not s: log.error("Unable to update Subject. No identifier provided") return Response(status=status.HTTP_400_BAD_REQUEST) try: subj = Subject.objects.get(pk=pkval) fn = s.get('first_name', subj.first_name) ln = s.get('last_name', subj.last_name) orgid = s.get('organization', subj.organization) org_sub_id = s.get('organization_subject_id', subj.organization_subject_id) dob = s.get('dob', subj.dob) js = { "first_name": fn, "last_name": ln, "organization": orgid, "organization_subject_id": org_sub_id, "dob": dob } form = SubjectForm(js, instance=subj) FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) except Subject.DoesNotExist: log.error( "Unable to update Subject. Subject[{0}] does not exist". format(pkval)) response.append({ 'id': pkval, 'success': False, 'errors': [{ 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND }] }) return Response(response)
def post(self, request): """This method is intended for adding new Subject records""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for s in request.data: form = SubjectForm(s) args = { 'organization_subject_id': s.get('organization_subject_id'), 'organization_id': s.get('organization') } FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) return Response(response)
def put(self, request): """This method is intended for updating an existing Subject record""" response = [] for item in request.data: pkval = item.get('id') s = item.get('new_subject') if not pkval or not s: log.error("Unable to update Subject. No identifier provided") return HttpResponse(status=codes.bad_request) try: subj = Subject.objects.get(pk=pkval) fn = s.get('first_name', subj.first_name) ln = s.get('last_name', subj.last_name) orgid = s.get('organization', subj.organization) org_sub_id = s.get('organization_subject_id', subj.organization_subject_id) dob = s.get('dob', subj.dob) js = { "first_name": fn, "last_name": ln, "organization": orgid, "organization_subject_id": org_sub_id, "dob": dob } form = SubjectForm(js, instance=subj) FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) except Subject.DoesNotExist: log.error("Unable to update Subject. Subject[{0}] does not exist".format(pkval)) response.append( { 'id': pkval, 'success': False, 'errors': [ { 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND } ] } ) return json.dumps(response)
def put(self, request): '''This method is intended for updating Groups.''' response = [] for item in request.data: pkval = item.get('id') g = item.get('group') if not (pkval and g): log.error("Unable to update group. No group or ID provided") return HttpResponse(status=codes.bad_request) current_client_key = g.get('current_client_key', None) if not current_client_key: log.error("Unable to update group. No client key provided") return HttpResponse(status=codes.bad_request) try: grp = Group.objects.get(pk=pkval) if not grp.verify_client_key(current_client_key): log.error("Unable to update group. Bad client key") return HttpResponse(status=codes.unauthorized) name = g.get('name', grp.name) lock = g.get('is_locking', grp.is_locking) des = g.get('description', grp.description) client_key = g.get('client_key', current_client_key) js = {"name": name, "client_key": client_key, "is_locking": lock, "description": des} form = GroupForm(js, instance=grp) rd = FormHelpers.processFormJsonResponse(form, response, invalid_dict={'id': pkval}) if rd.get('success', False): grp = Group.objects.get(pk=rd.get('id')) rd['ehb_key'] = grp.ehb_key.key else: return HttpResponse except Group.DoesNotExist: log.error("Unable to update group. Group does not exist.") response.append( { 'id': pkval, 'success': False, 'errors': [ { 'id': ErrorConstants.ERROR_RECORD_ID_NOT_FOUND } ] } ) return json.dumps(response)
def post(self, request): """This method is intended for adding new Protocol Relationships""" content_type = request.META.get("CONTENT_TYPE") response = [] if content_type == "application/json": for relationship in request.data: form = SubjectFamRelationForm(relationship) args = { 'subject_1': relationship.get('subject_1'), 'subject_2': relationship.get('subject_2'), 'subject_1_role': relationship.get('subject_1_role'), 'subject_2_role': relationship.get('subject_2_role'), 'protocol_id': relationship.get('protocol_id') } FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) return Response(response)
def post(self, request): '''This method is intended for creating Groups.''' response = [] for g in request.data: form = GroupForm(g) args = {'name': g.get('name')} rd = FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) if rd.get('success', False): grp = Group.objects.get(pk=rd.get('id')) rd['ehb_key'] = grp.ehb_key.key return json.dumps(response)
def post(self, request): '''This method is intended for creating Groups.''' response = [] for g in request.data: form = GroupForm(g) args = {'name': g.get('name')} rd = FormHelpers.processFormJsonResponse(form, response, valid_dict=args, invalid_dict=args) if rd.get('success', False): grp = Group.objects.get(pk=rd.get('id')) rd['ehb_key'] = grp.ehb_key.key return Response(response)