def update_locus_list_handler(request, locus_list_guid): locus_list = LocusList.objects.get(guid=locus_list_guid) check_object_permissions(locus_list, request.user, permission_level=CAN_EDIT) request_json = json.loads(request.body) genes_by_id, intervals, invalid_items = parse_locus_list_items( request_json) if invalid_items and not request_json.get('ignoreInvalidItems'): return create_json_response({'invalidLocusListItems': invalid_items}, status=400, reason=INVALID_ITEMS_ERROR) update_model_from_json(locus_list, request_json, allow_unknown_keys=True) if genes_by_id is not None: _update_locus_list_items(locus_list, genes_by_id, intervals, request_json, request.user) return create_json_response({ 'locusListsByGuid': { locus_list.guid: get_json_for_locus_list(locus_list, request.user) }, 'genesById': genes_by_id or {}, })
def delete_locus_list_handler(request, locus_list_guid): locus_list = LocusList.objects.get(guid=locus_list_guid) check_object_permissions(locus_list, request.user, permission_level=CAN_EDIT) delete_seqr_model(locus_list) return create_json_response({'locusListsByGuid': {locus_list_guid: None}})
def update_locus_list_handler(request, locus_list_guid): locus_list = LocusList.objects.get(guid=locus_list_guid) check_object_permissions(locus_list, request.user, permission_level=CAN_EDIT) request_json = json.loads(request.body) genes_by_id, intervals, invalid_items = parse_locus_list_items(request_json) if invalid_items and not request_json.get('ignoreInvalidItems'): return create_json_response({'invalidLocusListItems': invalid_items}, status=400, reason=INVALID_ITEMS_ERROR) update_model_from_json(locus_list, request_json, allow_unknown_keys=True) if genes_by_id is not None: _update_locus_list_items(locus_list, genes_by_id, intervals, request_json, request.user) return create_json_response({ 'locusListsByGuid': {locus_list.guid: get_json_for_locus_list(locus_list, request.user)}, 'genesById': genes_by_id or {}, })