def bulk_journals_delete(): if not current_user.has_role("ultra_bulk_delete"): abort(403) payload = get_web_json_payload() validate_json(payload, fields_must_be_present=['selection_query'], error_to_raise=BulkAdminEndpointException) q = get_query_from_request(payload) summary = journal_bulk_delete.journal_bulk_delete_manage( selection_query=q, dry_run=payload.get('dry_run', True)) return make_json_resp(summary.as_dict(), status_code=200)
def journals_bulk_reinstate(): payload = get_web_json_payload() validate_json(payload, fields_must_be_present=['selection_query'], error_to_raise=BulkAdminEndpointException) q = get_query_from_request(payload) summary = journal_in_out_doaj.change_by_query(q, True, dry_run=payload.get( "dry_run", True)) return make_json_resp(summary.as_dict(), status_code=200)
def bulk_add_note(doaj_type): task = get_bulk_edit_background_task_manager(doaj_type) payload = get_web_json_payload() validate_json(payload, fields_must_be_present=['selection_query', 'note'], error_to_raise=BulkAdminEndpointException) summary = task(selection_query=get_query_from_request(payload), note=payload['note'], dry_run=payload.get('dry_run', True)) return make_json_resp(summary.as_dict(), status_code=200)
def applications_bulk_change_status(): payload = get_web_json_payload() validate_json( payload, fields_must_be_present=['selection_query', 'application_status'], error_to_raise=BulkAdminEndpointException) q = get_query_from_request(payload) summary = get_bulk_edit_background_task_manager('applications')( selection_query=q, application_status=payload['application_status'], dry_run=payload.get('dry_run', True)) return make_json_resp(summary.as_dict(), status_code=200)
def bulk_edit_journal_metadata(): task = get_bulk_edit_background_task_manager("journals") payload = get_web_json_payload() if not "metadata" in payload: raise BulkAdminEndpointException( "key 'metadata' not present in request json") formdata = MultiDict(payload["metadata"]) fc = formcontext.JournalFormFactory.get_form_context(role="bulk_edit", form_data=formdata) if not fc.validate(): msg = "Unable to submit your request due to form validation issues: " for field in fc.form: if field.errors: msg += field.label.text + " - " + ",".join(field.errors) summary = BackgroundSummary(None, error=msg) else: summary = task(selection_query=get_query_from_request(payload), dry_run=payload.get('dry_run', True), **payload["metadata"]) return make_json_resp(summary.as_dict(), status_code=200)
def bulk_admin_endpoints_bad_request(exception): r = {} r['error'] = exception.message return make_json_resp(r, status_code=400)