def _refresh_repository_post(request): """POST request refresh repository. Args: request: Returns: """ form = admin_forms.RefreshRepositoryForm(request.POST) if form.is_valid(): try: repository_id = request.POST["id"] instance = instance_api.get_by_id(repository_id) except: raise ExploreFederatedSearchAjaxError( "Error: Unable to access the registered instance.") try: instance_api.refresh_instance_token( instance, request.POST["client_id"], request.POST["client_secret"], request.POST["timeout"], ) return HttpResponse(json.dumps({}), content_type="application/javascript") except Exception as e: raise ExploreFederatedSearchAjaxError(str(e)) else: raise ExploreFederatedSearchAjaxError("All fields are required.")
def delete_repository(request): """ Delete repository. Returns: """ try: instance = instance_api.get_by_id(request.GET['id']) instance_api.delete(instance) except Exception, e: return HttpResponseBadRequest(e.message, content_type='application/javascript')
def delete_repository(request): """Delete repository. Returns: """ try: instance = instance_api.get_by_id(request.GET["id"]) instance_api.delete(instance) except Exception as e: return HttpResponseBadRequest(escape(str(e)), content_type="application/javascript") return HttpResponse(json.dumps({}), content_type="application/javascript")
def get_object(self, pk): """Retrieve an Instance Args: pk: ObjectId Returns: Instance """ try: return instance_api.get_by_id(pk) except exceptions.DoesNotExist: raise Http404
def update_data_source_list_federated(request): """ Ajax method to update query data sources in bdd. Args: request: Returns: """ try: id_query = request.GET.get('id_query', None) id_instance = request.GET.get('id_instance', None) added = request.GET.get('to_be_added', None) to_be_added = json.loads(added) if added is not None else False # Get query from id if id_query is not None: query = api_query.get_by_id(id_query) # Get instance from id if id_instance is not None: instance = instance_api.get_by_id(id_instance) # Generate url from instance information url = _get_url_with_federated_rest_extension(instance) if to_be_added: # Instance have to be added in the query as a datasource authentication = Authentication( type='oauth2', params={'access_token': instance.access_token}) data_source = DataSource(name=instance.name, url_query=url, authentication=authentication) data_source.query_options = {'instance_name': instance.name} api_query.add_data_source(query, data_source) else: # Data source have to be remove from the query data_source = api_query.get_data_source_by_name_and_url_query( query, instance.name, url) api_query.remove_data_source(query, data_source) return HttpResponse() else: return HttpResponseBadRequest( "Error during data source selection.") except Exception as e: return HttpResponseBadRequest("Error during data source selection.")
def update_data_source_list_federated(request): """Ajax method to update query data sources in bdd. Args: request: Returns: """ try: id_query = request.GET.get("id_query", None) id_instance = request.GET.get("id_instance", None) added = request.GET.get("to_be_added", None) to_be_added = json.loads(added) if added is not None else False # Get query from id if id_query is not None: query = api_query.get_by_id(id_query, request.user) # Get instance from id if id_instance is not None: instance = instance_api.get_by_id(id_instance) # Generate url from instance information url = _get_url_with_federated_rest_extension(instance) if to_be_added: # Instance have to be added in the query as a datasource authentication = Authentication( type="oauth2", params={"access_token": instance.access_token}) data_source = DataSource( name=instance.name, url_query=url, authentication=authentication, order_by_field=",".join(settings.DATA_SORTING_FIELDS), ) data_source.query_options = {"instance_name": instance.name} if "core_linked_records_app" in settings.INSTALLED_APPS: data_source.capabilities = { "url_pid": urljoin( instance.endpoint, reverse("core_linked_records_app_query_local"), ) } api_query.add_data_source(query, data_source, request.user) else: # Data source have to be remove from the query data_source = api_query.get_data_source_by_name_and_url_query( query, instance.name, url, request.user) api_query.remove_data_source(query, data_source, request.user) return HttpResponse() else: return HttpResponseBadRequest( "Error during data source selection.") except AccessControlError: return HttpResponseForbidden("Access Forbidden") except Exception: return HttpResponseBadRequest("Error during data source selection.")