//! Main library entry point for fatcat_openapi implementation. #![allow(unused_imports)] mod errors { error_chain::error_chain! {} } pub use self::errors::*; use chrono; use futures::{future, Future, Stream}; use hyper::server::conn::Http; use hyper::service::MakeService as _; use log::info; use openssl::ssl::SslAcceptorBuilder; use std::marker::PhantomData; use std::net::SocketAddr; use std::sync::{Arc, Mutex}; use swagger; use swagger::auth::MakeAllowAllAuthenticator; use swagger::EmptyContext; use swagger::{Has, XSpanIdString}; use tokio::net::TcpListener; #[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] use openssl::ssl::{SslAcceptor, SslFiletype, SslMethod}; #[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] use tokio_openssl::SslAcceptorExt; use fatcat_openapi::models; #[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] /// Builds an SSL implementation for Simple HTTPS from some hard-coded file names pub fn create(addr: &str, https: bool) -> Box<dyn Future<Item = (), Error = ()> + Send> { let addr = addr.parse().expect("Failed to parse bind address"); let server = Server::new(); let service_fn = MakeService::new(server); let service_fn = MakeAllowAllAuthenticator::new(service_fn, "cosmo"); let service_fn = fatcat_openapi::server::context::MakeAddContext::<_, EmptyContext>::new(service_fn); if https { #[cfg(any(target_os = "macos", target_os = "windows", target_os = "ios"))] { unimplemented!("SSL is not implemented for the examples on MacOS, Windows or iOS"); } #[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))] { let mut ssl = SslAcceptor::mozilla_intermediate_v5(SslMethod::tls()) .expect("Failed to create SSL Acceptor"); // Server authentication ssl.set_private_key_file("examples/server-key.pem", SslFiletype::PEM) .expect("Failed to set private key"); ssl.set_certificate_chain_file("examples/server-chain.pem") .expect("Failed to set cerificate chain"); ssl.check_private_key() .expect("Failed to check private key"); let tls_acceptor = ssl.build(); let service_fn = Arc::new(Mutex::new(service_fn)); let tls_listener = TcpListener::bind(&addr) .unwrap() .incoming() .for_each(move |tcp| { let addr = tcp.peer_addr().expect("Unable to get remote address"); let service_fn = service_fn.clone(); hyper::rt::spawn(tls_acceptor.accept_async(tcp).map_err(|_| ()).and_then( move |tls| { let ms = { let mut service_fn = service_fn.lock().unwrap(); service_fn.make_service(&addr) }; ms.and_then(move |service| Http::new().serve_connection(tls, service)) .map_err(|_| ()) }, )); Ok(()) }) .map_err(|_| ()); Box::new(tls_listener) } } else { // Using HTTP Box::new( hyper::server::Server::bind(&addr) .serve(service_fn) .map_err(|e| panic!("{:?}", e)), ) } } #[derive(Copy, Clone)] pub struct Server<C> { marker: PhantomData<C>, } impl<C> Server<C> { pub fn new() -> Self { Server { marker: PhantomData, } } } use fatcat_openapi::server::MakeService; use fatcat_openapi::{ AcceptEditgroupResponse, Api, ApiError, AuthCheckResponse, AuthOidcResponse, CreateAuthTokenResponse, CreateContainerAutoBatchResponse, CreateContainerResponse, CreateCreatorAutoBatchResponse, CreateCreatorResponse, CreateEditgroupAnnotationResponse, CreateEditgroupResponse, CreateFileAutoBatchResponse, CreateFileResponse, CreateFilesetAutoBatchResponse, CreateFilesetResponse, CreateReleaseAutoBatchResponse, CreateReleaseResponse, CreateWebcaptureAutoBatchResponse, CreateWebcaptureResponse, CreateWorkAutoBatchResponse, CreateWorkResponse, DeleteContainerEditResponse, DeleteContainerResponse, DeleteCreatorEditResponse, DeleteCreatorResponse, DeleteFileEditResponse, DeleteFileResponse, DeleteFilesetEditResponse, DeleteFilesetResponse, DeleteReleaseEditResponse, DeleteReleaseResponse, DeleteWebcaptureEditResponse, DeleteWebcaptureResponse, DeleteWorkEditResponse, DeleteWorkResponse, GetChangelogEntryResponse, GetChangelogResponse, GetContainerEditResponse, GetContainerHistoryResponse, GetContainerRedirectsResponse, GetContainerResponse, GetContainerRevisionResponse, GetCreatorEditResponse, GetCreatorHistoryResponse, GetCreatorRedirectsResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetCreatorRevisionResponse, GetEditgroupAnnotationsResponse, GetEditgroupResponse, GetEditgroupsReviewableResponse, GetEditorAnnotationsResponse, GetEditorEditgroupsResponse, GetEditorResponse, GetFileEditResponse, GetFileHistoryResponse, GetFileRedirectsResponse, GetFileResponse, GetFileRevisionResponse, GetFilesetEditResponse, GetFilesetHistoryResponse, GetFilesetRedirectsResponse, GetFilesetResponse, GetFilesetRevisionResponse, GetReleaseEditResponse, GetReleaseFilesResponse, GetReleaseFilesetsResponse, GetReleaseHistoryResponse, GetReleaseRedirectsResponse, GetReleaseResponse, GetReleaseRevisionResponse, GetReleaseWebcapturesResponse, GetWebcaptureEditResponse, GetWebcaptureHistoryResponse, GetWebcaptureRedirectsResponse, GetWebcaptureResponse, GetWebcaptureRevisionResponse, GetWorkEditResponse, GetWorkHistoryResponse, GetWorkRedirectsResponse, GetWorkReleasesResponse, GetWorkResponse, GetWorkRevisionResponse, LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse, UpdateContainerResponse, UpdateCreatorResponse, UpdateEditgroupResponse, UpdateEditorResponse, UpdateFileResponse, UpdateFilesetResponse, UpdateReleaseResponse, UpdateWebcaptureResponse, UpdateWorkResponse, }; impl<C> Api<C> for Server<C> where C: Has<XSpanIdString>, { fn accept_editgroup( &self, editgroup_id: String, context: &C, ) -> Box<dyn Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "accept_editgroup(\"{}\") - X-Span-ID: {:?}", editgroup_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn auth_check( &self, role: Option<String>, context: &C, ) -> Box<dyn Future<Item = AuthCheckResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "auth_check({:?}) - X-Span-ID: {:?}", role, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn auth_oidc( &self, auth_oidc: models::AuthOidc, context: &C, ) -> Box<dyn Future<Item = AuthOidcResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "auth_oidc({:?}) - X-Span-ID: {:?}", auth_oidc, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_auth_token( &self, editor_id: String, duration_seconds: Option<i32>, context: &C, ) -> Box<dyn Future<Item = CreateAuthTokenResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_auth_token(\"{}\", {:?}) - X-Span-ID: {:?}", editor_id, duration_seconds, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_container( &self, editgroup_id: String, container_entity: models::ContainerEntity, context: &C, ) -> Box<dyn Future<Item = CreateContainerResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_container(\"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, container_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_container_auto_batch( &self, container_auto_batch: models::ContainerAutoBatch, context: &C, ) -> Box<dyn Future<Item = CreateContainerAutoBatchResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_container_auto_batch({:?}) - X-Span-ID: {:?}", container_auto_batch, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_creator( &self, editgroup_id: String, creator_entity: models::CreatorEntity, context: &C, ) -> Box<dyn Future<Item = CreateCreatorResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_creator(\"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, creator_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_creator_auto_batch( &self, creator_auto_batch: models::CreatorAutoBatch, context: &C, ) -> Box<dyn Future<Item = CreateCreatorAutoBatchResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_creator_auto_batch({:?}) - X-Span-ID: {:?}", creator_auto_batch, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_editgroup( &self, editgroup: models::Editgroup, context: &C, ) -> Box<dyn Future<Item = CreateEditgroupResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_editgroup({:?}) - X-Span-ID: {:?}", editgroup, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_editgroup_annotation( &self, editgroup_id: String, editgroup_annotation: models::EditgroupAnnotation, context: &C, ) -> Box<dyn Future<Item = CreateEditgroupAnnotationResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_editgroup_annotation(\"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, editgroup_annotation, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_file( &self, editgroup_id: String, file_entity: models::FileEntity, context: &C, ) -> Box<dyn Future<Item = CreateFileResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_file(\"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, file_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_file_auto_batch( &self, file_auto_batch: models::FileAutoBatch, context: &C, ) -> Box<dyn Future<Item = CreateFileAutoBatchResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_file_auto_batch({:?}) - X-Span-ID: {:?}", file_auto_batch, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_fileset( &self, editgroup_id: String, fileset_entity: models::FilesetEntity, context: &C, ) -> Box<dyn Future<Item = CreateFilesetResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_fileset(\"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, fileset_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_fileset_auto_batch( &self, fileset_auto_batch: models::FilesetAutoBatch, context: &C, ) -> Box<dyn Future<Item = CreateFilesetAutoBatchResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_fileset_auto_batch({:?}) - X-Span-ID: {:?}", fileset_auto_batch, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_release( &self, editgroup_id: String, release_entity: models::ReleaseEntity, context: &C, ) -> Box<dyn Future<Item = CreateReleaseResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_release(\"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, release_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_release_auto_batch( &self, release_auto_batch: models::ReleaseAutoBatch, context: &C, ) -> Box<dyn Future<Item = CreateReleaseAutoBatchResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_release_auto_batch({:?}) - X-Span-ID: {:?}", release_auto_batch, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_webcapture( &self, editgroup_id: String, webcapture_entity: models::WebcaptureEntity, context: &C, ) -> Box<dyn Future<Item = CreateWebcaptureResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_webcapture(\"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, webcapture_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_webcapture_auto_batch( &self, webcapture_auto_batch: models::WebcaptureAutoBatch, context: &C, ) -> Box<dyn Future<Item = CreateWebcaptureAutoBatchResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_webcapture_auto_batch({:?}) - X-Span-ID: {:?}", webcapture_auto_batch, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_work( &self, editgroup_id: String, work_entity: models::WorkEntity, context: &C, ) -> Box<dyn Future<Item = CreateWorkResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_work(\"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, work_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn create_work_auto_batch( &self, work_auto_batch: models::WorkAutoBatch, context: &C, ) -> Box<dyn Future<Item = CreateWorkAutoBatchResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "create_work_auto_batch({:?}) - X-Span-ID: {:?}", work_auto_batch, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_container( &self, editgroup_id: String, ident: String, context: &C, ) -> Box<dyn Future<Item = DeleteContainerResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_container(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_container_edit( &self, editgroup_id: String, edit_id: String, context: &C, ) -> Box<dyn Future<Item = DeleteContainerEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_container_edit(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_creator( &self, editgroup_id: String, ident: String, context: &C, ) -> Box<dyn Future<Item = DeleteCreatorResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_creator(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_creator_edit( &self, editgroup_id: String, edit_id: String, context: &C, ) -> Box<dyn Future<Item = DeleteCreatorEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_creator_edit(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_file( &self, editgroup_id: String, ident: String, context: &C, ) -> Box<dyn Future<Item = DeleteFileResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_file(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_file_edit( &self, editgroup_id: String, edit_id: String, context: &C, ) -> Box<dyn Future<Item = DeleteFileEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_file_edit(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_fileset( &self, editgroup_id: String, ident: String, context: &C, ) -> Box<dyn Future<Item = DeleteFilesetResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_fileset(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_fileset_edit( &self, editgroup_id: String, edit_id: String, context: &C, ) -> Box<dyn Future<Item = DeleteFilesetEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_fileset_edit(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_release( &self, editgroup_id: String, ident: String, context: &C, ) -> Box<dyn Future<Item = DeleteReleaseResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_release(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_release_edit( &self, editgroup_id: String, edit_id: String, context: &C, ) -> Box<dyn Future<Item = DeleteReleaseEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_release_edit(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_webcapture( &self, editgroup_id: String, ident: String, context: &C, ) -> Box<dyn Future<Item = DeleteWebcaptureResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_webcapture(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_webcapture_edit( &self, editgroup_id: String, edit_id: String, context: &C, ) -> Box<dyn Future<Item = DeleteWebcaptureEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_webcapture_edit(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_work( &self, editgroup_id: String, ident: String, context: &C, ) -> Box<dyn Future<Item = DeleteWorkResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_work(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn delete_work_edit( &self, editgroup_id: String, edit_id: String, context: &C, ) -> Box<dyn Future<Item = DeleteWorkEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "delete_work_edit(\"{}\", \"{}\") - X-Span-ID: {:?}", editgroup_id, edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_changelog( &self, limit: Option<i64>, context: &C, ) -> Box<dyn Future<Item = GetChangelogResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_changelog({:?}) - X-Span-ID: {:?}", limit, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_changelog_entry( &self, index: i64, context: &C, ) -> Box<dyn Future<Item = GetChangelogEntryResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_changelog_entry({}) - X-Span-ID: {:?}", index, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_container( &self, ident: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetContainerResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_container(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", ident, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_container_edit( &self, edit_id: String, context: &C, ) -> Box<dyn Future<Item = GetContainerEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_container_edit(\"{}\") - X-Span-ID: {:?}", edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_container_history( &self, ident: String, limit: Option<i64>, context: &C, ) -> Box<dyn Future<Item = GetContainerHistoryResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_container_history(\"{}\", {:?}) - X-Span-ID: {:?}", ident, limit, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_container_redirects( &self, ident: String, context: &C, ) -> Box<dyn Future<Item = GetContainerRedirectsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_container_redirects(\"{}\") - X-Span-ID: {:?}", ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_container_revision( &self, rev_id: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetContainerRevisionResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_container_revision(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", rev_id, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_creator( &self, ident: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetCreatorResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_creator(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", ident, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_creator_edit( &self, edit_id: String, context: &C, ) -> Box<dyn Future<Item = GetCreatorEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_creator_edit(\"{}\") - X-Span-ID: {:?}", edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_creator_history( &self, ident: String, limit: Option<i64>, context: &C, ) -> Box<dyn Future<Item = GetCreatorHistoryResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_creator_history(\"{}\", {:?}) - X-Span-ID: {:?}", ident, limit, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_creator_redirects( &self, ident: String, context: &C, ) -> Box<dyn Future<Item = GetCreatorRedirectsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_creator_redirects(\"{}\") - X-Span-ID: {:?}", ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_creator_releases( &self, ident: String, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetCreatorReleasesResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_creator_releases(\"{}\", {:?}) - X-Span-ID: {:?}", ident, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_creator_revision( &self, rev_id: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetCreatorRevisionResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_creator_revision(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", rev_id, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_editgroup( &self, editgroup_id: String, context: &C, ) -> Box<dyn Future<Item = GetEditgroupResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_editgroup(\"{}\") - X-Span-ID: {:?}", editgroup_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_editgroup_annotations( &self, editgroup_id: String, expand: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetEditgroupAnnotationsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_editgroup_annotations(\"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, expand, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_editgroups_reviewable( &self, expand: Option<String>, limit: Option<i64>, before: Option<chrono::DateTime<chrono::Utc>>, since: Option<chrono::DateTime<chrono::Utc>>, context: &C, ) -> Box<dyn Future<Item = GetEditgroupsReviewableResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_editgroups_reviewable({:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", expand, limit, before, since, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_editor( &self, editor_id: String, context: &C, ) -> Box<dyn Future<Item = GetEditorResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_editor(\"{}\") - X-Span-ID: {:?}", editor_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_editor_annotations( &self, editor_id: String, limit: Option<i64>, before: Option<chrono::DateTime<chrono::Utc>>, since: Option<chrono::DateTime<chrono::Utc>>, context: &C, ) -> Box<dyn Future<Item = GetEditorAnnotationsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_editor_annotations(\"{}\", {:?}, {:?}, {:?}) - X-Span-ID: {:?}", editor_id, limit, before, since, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_editor_editgroups( &self, editor_id: String, limit: Option<i64>, before: Option<chrono::DateTime<chrono::Utc>>, since: Option<chrono::DateTime<chrono::Utc>>, context: &C, ) -> Box<dyn Future<Item = GetEditorEditgroupsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_editor_editgroups(\"{}\", {:?}, {:?}, {:?}) - X-Span-ID: {:?}", editor_id, limit, before, since, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_file( &self, ident: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetFileResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_file(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", ident, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_file_edit( &self, edit_id: String, context: &C, ) -> Box<dyn Future<Item = GetFileEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_file_edit(\"{}\") - X-Span-ID: {:?}", edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_file_history( &self, ident: String, limit: Option<i64>, context: &C, ) -> Box<dyn Future<Item = GetFileHistoryResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_file_history(\"{}\", {:?}) - X-Span-ID: {:?}", ident, limit, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_file_redirects( &self, ident: String, context: &C, ) -> Box<dyn Future<Item = GetFileRedirectsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_file_redirects(\"{}\") - X-Span-ID: {:?}", ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_file_revision( &self, rev_id: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetFileRevisionResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_file_revision(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", rev_id, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_fileset( &self, ident: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetFilesetResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_fileset(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", ident, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_fileset_edit( &self, edit_id: String, context: &C, ) -> Box<dyn Future<Item = GetFilesetEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_fileset_edit(\"{}\") - X-Span-ID: {:?}", edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_fileset_history( &self, ident: String, limit: Option<i64>, context: &C, ) -> Box<dyn Future<Item = GetFilesetHistoryResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_fileset_history(\"{}\", {:?}) - X-Span-ID: {:?}", ident, limit, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_fileset_redirects( &self, ident: String, context: &C, ) -> Box<dyn Future<Item = GetFilesetRedirectsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_fileset_redirects(\"{}\") - X-Span-ID: {:?}", ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_fileset_revision( &self, rev_id: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetFilesetRevisionResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_fileset_revision(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", rev_id, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_release( &self, ident: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetReleaseResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_release(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", ident, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_release_edit( &self, edit_id: String, context: &C, ) -> Box<dyn Future<Item = GetReleaseEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_release_edit(\"{}\") - X-Span-ID: {:?}", edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_release_files( &self, ident: String, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetReleaseFilesResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_release_files(\"{}\", {:?}) - X-Span-ID: {:?}", ident, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_release_filesets( &self, ident: String, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetReleaseFilesetsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_release_filesets(\"{}\", {:?}) - X-Span-ID: {:?}", ident, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_release_history( &self, ident: String, limit: Option<i64>, context: &C, ) -> Box<dyn Future<Item = GetReleaseHistoryResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_release_history(\"{}\", {:?}) - X-Span-ID: {:?}", ident, limit, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_release_redirects( &self, ident: String, context: &C, ) -> Box<dyn Future<Item = GetReleaseRedirectsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_release_redirects(\"{}\") - X-Span-ID: {:?}", ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_release_revision( &self, rev_id: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetReleaseRevisionResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_release_revision(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", rev_id, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_release_webcaptures( &self, ident: String, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetReleaseWebcapturesResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_release_webcaptures(\"{}\", {:?}) - X-Span-ID: {:?}", ident, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_webcapture( &self, ident: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetWebcaptureResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_webcapture(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", ident, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_webcapture_edit( &self, edit_id: String, context: &C, ) -> Box<dyn Future<Item = GetWebcaptureEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_webcapture_edit(\"{}\") - X-Span-ID: {:?}", edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_webcapture_history( &self, ident: String, limit: Option<i64>, context: &C, ) -> Box<dyn Future<Item = GetWebcaptureHistoryResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_webcapture_history(\"{}\", {:?}) - X-Span-ID: {:?}", ident, limit, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_webcapture_redirects( &self, ident: String, context: &C, ) -> Box<dyn Future<Item = GetWebcaptureRedirectsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_webcapture_redirects(\"{}\") - X-Span-ID: {:?}", ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_webcapture_revision( &self, rev_id: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetWebcaptureRevisionResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_webcapture_revision(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", rev_id, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_work( &self, ident: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetWorkResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_work(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", ident, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_work_edit( &self, edit_id: String, context: &C, ) -> Box<dyn Future<Item = GetWorkEditResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_work_edit(\"{}\") - X-Span-ID: {:?}", edit_id, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_work_history( &self, ident: String, limit: Option<i64>, context: &C, ) -> Box<dyn Future<Item = GetWorkHistoryResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_work_history(\"{}\", {:?}) - X-Span-ID: {:?}", ident, limit, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_work_redirects( &self, ident: String, context: &C, ) -> Box<dyn Future<Item = GetWorkRedirectsResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_work_redirects(\"{}\") - X-Span-ID: {:?}", ident, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_work_releases( &self, ident: String, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetWorkReleasesResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_work_releases(\"{}\", {:?}) - X-Span-ID: {:?}", ident, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn get_work_revision( &self, rev_id: String, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = GetWorkRevisionResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "get_work_revision(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", rev_id, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn lookup_container( &self, issnl: Option<String>, wikidata_qid: Option<String>, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = LookupContainerResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "lookup_container({:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", issnl, wikidata_qid, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn lookup_creator( &self, orcid: Option<String>, wikidata_qid: Option<String>, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = LookupCreatorResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "lookup_creator({:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", orcid, wikidata_qid, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn lookup_file( &self, md5: Option<String>, sha1: Option<String>, sha256: Option<String>, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = LookupFileResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "lookup_file({:?}, {:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", md5, sha1, sha256, expand, hide, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn lookup_release( &self, doi: Option<String>, wikidata_qid: Option<String>, isbn13: Option<String>, pmid: Option<String>, pmcid: Option<String>, core: Option<String>, arxiv: Option<String>, jstor: Option<String>, ark: Option<String>, mag: Option<String>, expand: Option<String>, hide: Option<String>, context: &C, ) -> Box<dyn Future<Item = LookupReleaseResponse, Error = ApiError> + Send> { let context = context.clone(); info!("lookup_release({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", doi, wikidata_qid, isbn13, pmid, pmcid, core, arxiv, jstor, ark, mag, expand, hide, context.get().0.clone()); Box::new(future::err("Generic failure".into())) } fn update_container( &self, editgroup_id: String, ident: String, container_entity: models::ContainerEntity, context: &C, ) -> Box<dyn Future<Item = UpdateContainerResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "update_container(\"{}\", \"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, ident, container_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn update_creator( &self, editgroup_id: String, ident: String, creator_entity: models::CreatorEntity, context: &C, ) -> Box<dyn Future<Item = UpdateCreatorResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "update_creator(\"{}\", \"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, ident, creator_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn update_editgroup( &self, editgroup_id: String, editgroup: models::Editgroup, submit: Option<bool>, context: &C, ) -> Box<dyn Future<Item = UpdateEditgroupResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "update_editgroup(\"{}\", {:?}, {:?}) - X-Span-ID: {:?}", editgroup_id, editgroup, submit, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn update_editor( &self, editor_id: String, editor: models::Editor, context: &C, ) -> Box<dyn Future<Item = UpdateEditorResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "update_editor(\"{}\", {:?}) - X-Span-ID: {:?}", editor_id, editor, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn update_file( &self, editgroup_id: String, ident: String, file_entity: models::FileEntity, context: &C, ) -> Box<dyn Future<Item = UpdateFileResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "update_file(\"{}\", \"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, ident, file_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn update_fileset( &self, editgroup_id: String, ident: String, fileset_entity: models::FilesetEntity, context: &C, ) -> Box<dyn Future<Item = UpdateFilesetResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "update_fileset(\"{}\", \"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, ident, fileset_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn update_release( &self, editgroup_id: String, ident: String, release_entity: models::ReleaseEntity, context: &C, ) -> Box<dyn Future<Item = UpdateReleaseResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "update_release(\"{}\", \"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, ident, release_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn update_webcapture( &self, editgroup_id: String, ident: String, webcapture_entity: models::WebcaptureEntity, context: &C, ) -> Box<dyn Future<Item = UpdateWebcaptureResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "update_webcapture(\"{}\", \"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, ident, webcapture_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } fn update_work( &self, editgroup_id: String, ident: String, work_entity: models::WorkEntity, context: &C, ) -> Box<dyn Future<Item = UpdateWorkResponse, Error = ApiError> + Send> { let context = context.clone(); info!( "update_work(\"{}\", \"{}\", {:?}) - X-Span-ID: {:?}", editgroup_id, ident, work_entity, context.get().0.clone() ); Box::new(future::err("Generic failure".into())) } }