summaryrefslogtreecommitdiffstats
path: root/rust
diff options
context:
space:
mode:
Diffstat (limited to 'rust')
-rw-r--r--rust/fatcat-api-spec/README.md3
-rw-r--r--rust/fatcat-api-spec/api.yaml23
-rw-r--r--rust/fatcat-api-spec/api/swagger.yaml42
-rw-r--r--rust/fatcat-api-spec/examples/client.rs8
-rw-r--r--rust/fatcat-api-spec/examples/server_lib/server.rs8
-rw-r--r--rust/fatcat-api-spec/src/client.rs51
-rw-r--r--rust/fatcat-api-spec/src/lib.rs16
-rw-r--r--rust/fatcat-api-spec/src/mimetypes.rs8
-rw-r--r--rust/fatcat-api-spec/src/models.rs13
-rw-r--r--rust/fatcat-api-spec/src/server.rs60
-rw-r--r--rust/src/api_server.rs84
-rw-r--r--rust/src/api_wrappers.rs19
-rw-r--r--rust/tests/test_api_server_http.rs20
13 files changed, 10 insertions, 345 deletions
diff --git a/rust/fatcat-api-spec/README.md b/rust/fatcat-api-spec/README.md
index 06d32720..446742be 100644
--- a/rust/fatcat-api-spec/README.md
+++ b/rust/fatcat-api-spec/README.md
@@ -13,7 +13,7 @@ To see how to make this your own, look here:
[README](https://github.com/swagger-api/swagger-codegen/blob/master/README.md)
- API version: 0.1.0
-- Build date: 2018-12-24T23:35:32.113Z
+- Build date: 2018-12-25T00:18:05.291Z
This autogenerated project defines an API crate `fatcat` which contains:
* An `Api` trait defining the API in Rust.
@@ -81,7 +81,6 @@ cargo run --example client LookupCreator
cargo run --example client UpdateCreator
cargo run --example client GetEditor
cargo run --example client GetEditorChangelog
-cargo run --example client GetStats
cargo run --example client AcceptEditgroup
cargo run --example client CreateEditgroup
cargo run --example client GetChangelog
diff --git a/rust/fatcat-api-spec/api.yaml b/rust/fatcat-api-spec/api.yaml
index b514da49..018b58e9 100644
--- a/rust/fatcat-api-spec/api.yaml
+++ b/rust/fatcat-api-spec/api.yaml
@@ -416,12 +416,6 @@ definitions:
additionalProperties: {}
role:
type: string
- stats_response:
- type: object
- properties:
- extra:
- type: object
- additionalProperties: {}
x-entity-responses: &ENTITYRESPONSES
400:
@@ -1910,20 +1904,3 @@ paths:
description: Generic Error
schema:
$ref: "#/definitions/error_response"
- /stats:
- get:
- operationId: "get_stats"
- parameters:
- - name: more
- in: query
- type: string
- required: false
- responses:
- 200:
- description: Success
- schema:
- $ref: "#/definitions/stats_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
diff --git a/rust/fatcat-api-spec/api/swagger.yaml b/rust/fatcat-api-spec/api/swagger.yaml
index 610c8193..141841f4 100644
--- a/rust/fatcat-api-spec/api/swagger.yaml
+++ b/rust/fatcat-api-spec/api/swagger.yaml
@@ -4135,40 +4135,6 @@ paths:
path: "/changelog/:index"
HttpMethod: "Get"
httpmethod: "get"
- /stats:
- get:
- operationId: "get_stats"
- parameters:
- - name: "more"
- in: "query"
- required: false
- type: "string"
- formatString: "{:?}"
- example: "Some(\"more_example\".to_string())"
- responses:
- 200:
- description: "Success"
- schema:
- $ref: "#/definitions/stats_response"
- x-responseId: "Success"
- x-uppercaseResponseId: "SUCCESS"
- uppercase_operation_id: "GET_STATS"
- uppercase_data_type: "STATSRESPONSE"
- producesJson: true
- 500:
- description: "Generic Error"
- schema:
- $ref: "#/definitions/error_response"
- x-responseId: "GenericError"
- x-uppercaseResponseId: "GENERIC_ERROR"
- uppercase_operation_id: "GET_STATS"
- uppercase_data_type: "ERRORRESPONSE"
- producesJson: true
- operation_id: "get_stats"
- uppercase_operation_id: "GET_STATS"
- path: "/stats"
- HttpMethod: "Get"
- httpmethod: "get"
definitions:
error_response:
type: "object"
@@ -5206,14 +5172,6 @@ definitions:
creator_id: "creator_id"
index: 1
upperCaseName: "RELEASE_CONTRIB"
- stats_response:
- type: "object"
- properties:
- extra:
- type: "object"
- example:
- extra: "{}"
- upperCaseName: "STATS_RESPONSE"
file_entity_urls:
required:
- "rel"
diff --git a/rust/fatcat-api-spec/examples/client.rs b/rust/fatcat-api-spec/examples/client.rs
index 348666dc..34131db7 100644
--- a/rust/fatcat-api-spec/examples/client.rs
+++ b/rust/fatcat-api-spec/examples/client.rs
@@ -18,7 +18,7 @@ use fatcat::{
DeleteWorkResponse, GetChangelogEntryResponse, GetChangelogResponse, GetContainerEditResponse, GetContainerHistoryResponse, GetContainerRedirectsResponse, GetContainerResponse,
GetContainerRevisionResponse, GetCreatorEditResponse, GetCreatorHistoryResponse, GetCreatorRedirectsResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetCreatorRevisionResponse,
GetEditgroupResponse, GetEditorChangelogResponse, GetEditorResponse, GetFileEditResponse, GetFileHistoryResponse, GetFileRedirectsResponse, GetFileResponse, GetFileRevisionResponse,
- GetReleaseEditResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseRedirectsResponse, GetReleaseResponse, GetReleaseRevisionResponse, GetStatsResponse, GetWorkEditResponse,
+ GetReleaseEditResponse, GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseRedirectsResponse, GetReleaseResponse, GetReleaseRevisionResponse, GetWorkEditResponse,
GetWorkHistoryResponse, GetWorkRedirectsResponse, GetWorkReleasesResponse, GetWorkResponse, GetWorkRevisionResponse, LookupContainerResponse, LookupCreatorResponse, LookupFileResponse,
LookupReleaseResponse, UpdateContainerResponse, UpdateCreatorResponse, UpdateFileResponse, UpdateReleaseResponse, UpdateWorkResponse,
};
@@ -52,7 +52,6 @@ fn main() {
"LookupCreator",
"GetEditor",
"GetEditorChangelog",
- "GetStats",
"AcceptEditgroup",
"GetChangelog",
"GetChangelogEntry",
@@ -261,11 +260,6 @@ fn main() {
println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("<none>")));
}
- Some("GetStats") => {
- let result = client.get_stats(Some("more_example".to_string())).wait();
- println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("<none>")));
- }
-
Some("AcceptEditgroup") => {
let result = client.accept_editgroup("editgroup_id_example".to_string()).wait();
println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("<none>")));
diff --git a/rust/fatcat-api-spec/examples/server_lib/server.rs b/rust/fatcat-api-spec/examples/server_lib/server.rs
index 62ec88b8..bbd00b83 100644
--- a/rust/fatcat-api-spec/examples/server_lib/server.rs
+++ b/rust/fatcat-api-spec/examples/server_lib/server.rs
@@ -17,7 +17,7 @@ use fatcat::{
GetChangelogEntryResponse, GetChangelogResponse, GetContainerEditResponse, GetContainerHistoryResponse, GetContainerRedirectsResponse, GetContainerResponse, GetContainerRevisionResponse,
GetCreatorEditResponse, GetCreatorHistoryResponse, GetCreatorRedirectsResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetCreatorRevisionResponse, GetEditgroupResponse,
GetEditorChangelogResponse, GetEditorResponse, GetFileEditResponse, GetFileHistoryResponse, GetFileRedirectsResponse, GetFileResponse, GetFileRevisionResponse, GetReleaseEditResponse,
- GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseRedirectsResponse, GetReleaseResponse, GetReleaseRevisionResponse, GetStatsResponse, GetWorkEditResponse, GetWorkHistoryResponse,
+ GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseRedirectsResponse, GetReleaseResponse, GetReleaseRevisionResponse, GetWorkEditResponse, GetWorkHistoryResponse,
GetWorkRedirectsResponse, GetWorkReleasesResponse, GetWorkResponse, GetWorkRevisionResponse, LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse,
UpdateContainerResponse, UpdateCreatorResponse, UpdateFileResponse, UpdateReleaseResponse, UpdateWorkResponse,
};
@@ -305,12 +305,6 @@ impl Api for Server {
Box::new(futures::failed("Generic failure".into()))
}
- fn get_stats(&self, more: Option<String>, context: &Context) -> Box<Future<Item = GetStatsResponse, Error = ApiError> + Send> {
- let context = context.clone();
- println!("get_stats({:?}) - X-Span-ID: {:?}", more, context.x_span_id.unwrap_or(String::from("<none>")).clone());
- Box::new(futures::failed("Generic failure".into()))
- }
-
fn accept_editgroup(&self, editgroup_id: String, context: &Context) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> {
let context = context.clone();
println!("accept_editgroup(\"{}\") - X-Span-ID: {:?}", editgroup_id, context.x_span_id.unwrap_or(String::from("<none>")).clone());
diff --git a/rust/fatcat-api-spec/src/client.rs b/rust/fatcat-api-spec/src/client.rs
index eddd99fa..1898f0b5 100644
--- a/rust/fatcat-api-spec/src/client.rs
+++ b/rust/fatcat-api-spec/src/client.rs
@@ -41,7 +41,7 @@ use {
GetChangelogEntryResponse, GetChangelogResponse, GetContainerEditResponse, GetContainerHistoryResponse, GetContainerRedirectsResponse, GetContainerResponse, GetContainerRevisionResponse,
GetCreatorEditResponse, GetCreatorHistoryResponse, GetCreatorRedirectsResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetCreatorRevisionResponse, GetEditgroupResponse,
GetEditorChangelogResponse, GetEditorResponse, GetFileEditResponse, GetFileHistoryResponse, GetFileRedirectsResponse, GetFileResponse, GetFileRevisionResponse, GetReleaseEditResponse,
- GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseRedirectsResponse, GetReleaseResponse, GetReleaseRevisionResponse, GetStatsResponse, GetWorkEditResponse, GetWorkHistoryResponse,
+ GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseRedirectsResponse, GetReleaseResponse, GetReleaseRevisionResponse, GetWorkEditResponse, GetWorkHistoryResponse,
GetWorkRedirectsResponse, GetWorkReleasesResponse, GetWorkResponse, GetWorkRevisionResponse, LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse,
UpdateContainerResponse, UpdateCreatorResponse, UpdateFileResponse, UpdateReleaseResponse, UpdateWorkResponse,
};
@@ -1935,55 +1935,6 @@ impl Api for Client {
Box::new(futures::done(result))
}
- fn get_stats(&self, param_more: Option<String>, context: &Context) -> Box<Future<Item = GetStatsResponse, Error = ApiError> + Send> {
- // Query parameters
- let query_more = param_more.map_or_else(String::new, |query| format!("more={more}&", more = query.to_string()));
-
- let url = format!("{}/v0/stats?{more}", self.base_path, more = utf8_percent_encode(&query_more, QUERY_ENCODE_SET));
-
- let hyper_client = (self.hyper_client)();
- let request = hyper_client.request(hyper::method::Method::Get, &url);
- let mut custom_headers = hyper::header::Headers::new();
-
- context.x_span_id.as_ref().map(|header| custom_headers.set(XSpanId(header.clone())));
-
- let request = request.headers(custom_headers);
-
- // Helper function to provide a code block to use `?` in (to be replaced by the `catch` block when it exists).
- fn parse_response(mut response: hyper::client::response::Response) -> Result<GetStatsResponse, ApiError> {
- match response.status.to_u16() {
- 200 => {
- let mut buf = String::new();
- response.read_to_string(&mut buf).map_err(|e| ApiError(format!("Response was not valid UTF8: {}", e)))?;
- let body = serde_json::from_str::<models::StatsResponse>(&buf)?;
-
- Ok(GetStatsResponse::Success(body))
- }
- 500 => {
- let mut buf = String::new();
- response.read_to_string(&mut buf).map_err(|e| ApiError(format!("Response was not valid UTF8: {}", e)))?;
- let body = serde_json::from_str::<models::ErrorResponse>(&buf)?;
-
- Ok(GetStatsResponse::GenericError(body))
- }
- code => {
- let mut buf = [0; 100];
- let debug_body = match response.read(&mut buf) {
- Ok(len) => match str::from_utf8(&buf[..len]) {
- Ok(body) => Cow::from(body),
- Err(_) => Cow::from(format!("<Body was not UTF8: {:?}>", &buf[..len].to_vec())),
- },
- Err(e) => Cow::from(format!("<Failed to read body: {}>", e)),
- };
- Err(ApiError(format!("Unexpected response code {}:\n{:?}\n\n{}", code, response.headers, debug_body)))
- }
- }
- }
-
- let result = request.send().map_err(|e| ApiError(format!("No response received: {}", e))).and_then(parse_response);
- Box::new(futures::done(result))
- }
-
fn accept_editgroup(&self, param_editgroup_id: String, context: &Context) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> {
let url = format!(
"{}/v0/editgroup/{editgroup_id}/accept",
diff --git a/rust/fatcat-api-spec/src/lib.rs b/rust/fatcat-api-spec/src/lib.rs
index ba578224..4ba734b1 100644
--- a/rust/fatcat-api-spec/src/lib.rs
+++ b/rust/fatcat-api-spec/src/lib.rs
@@ -333,14 +333,6 @@ pub enum GetEditorChangelogResponse {
}
#[derive(Debug, PartialEq)]
-pub enum GetStatsResponse {
- /// Success
- Success(models::StatsResponse),
- /// Generic Error
- GenericError(models::ErrorResponse),
-}
-
-#[derive(Debug, PartialEq)]
pub enum AcceptEditgroupResponse {
/// Merged Successfully
MergedSuccessfully(models::Success),
@@ -881,8 +873,6 @@ pub trait Api {
fn get_editor_changelog(&self, editor_id: String, context: &Context) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send>;
- fn get_stats(&self, more: Option<String>, context: &Context) -> Box<Future<Item = GetStatsResponse, Error = ApiError> + Send>;
-
fn accept_editgroup(&self, editgroup_id: String, context: &Context) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send>;
fn create_editgroup(&self, editgroup: models::Editgroup, context: &Context) -> Box<Future<Item = CreateEditgroupResponse, Error = ApiError> + Send>;
@@ -1067,8 +1057,6 @@ pub trait ApiNoContext {
fn get_editor_changelog(&self, editor_id: String) -> Box<Future<Item = GetEditorChangelogResponse, Error = ApiError> + Send>;
- fn get_stats(&self, more: Option<String>) -> Box<Future<Item = GetStatsResponse, Error = ApiError> + Send>;
-
fn accept_editgroup(&self, editgroup_id: String) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send>;
fn create_editgroup(&self, editgroup: models::Editgroup) -> Box<Future<Item = CreateEditgroupResponse, Error = ApiError> + Send>;
@@ -1302,10 +1290,6 @@ impl<'a, T: Api> ApiNoContext for ContextWrapper<'a, T> {
self.api().get_editor_changelog(editor_id, &self.context())
}
- fn get_stats(&self, more: Option<String>) -> Box<Future<Item = GetStatsResponse, Error = ApiError> + Send> {
- self.api().get_stats(more, &self.context())
- }
-
fn accept_editgroup(&self, editgroup_id: String) -> Box<Future<Item = AcceptEditgroupResponse, Error = ApiError> + Send> {
self.api().accept_editgroup(editgroup_id, &self.context())
}
diff --git a/rust/fatcat-api-spec/src/mimetypes.rs b/rust/fatcat-api-spec/src/mimetypes.rs
index b94aa6f6..20d3331c 100644
--- a/rust/fatcat-api-spec/src/mimetypes.rs
+++ b/rust/fatcat-api-spec/src/mimetypes.rs
@@ -404,14 +404,6 @@ pub mod responses {
lazy_static! {
pub static ref GET_EDITOR_CHANGELOG_GENERIC_ERROR: Mime = mime!(Application / Json);
}
- /// Create Mime objects for the response content types for GetStats
- lazy_static! {
- pub static ref GET_STATS_SUCCESS: Mime = mime!(Application / Json);
- }
- /// Create Mime objects for the response content types for GetStats
- lazy_static! {
- pub static ref GET_STATS_GENERIC_ERROR: Mime = mime!(Application / Json);
- }
/// Create Mime objects for the response content types for AcceptEditgroup
lazy_static! {
pub static ref ACCEPT_EDITGROUP_MERGED_SUCCESSFULLY: Mime = mime!(Application / Json);
diff --git a/rust/fatcat-api-spec/src/models.rs b/rust/fatcat-api-spec/src/models.rs
index d640be42..8f3e525a 100644
--- a/rust/fatcat-api-spec/src/models.rs
+++ b/rust/fatcat-api-spec/src/models.rs
@@ -723,19 +723,6 @@ impl ReleaseRef {
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct StatsResponse {
- #[serde(rename = "extra")]
- #[serde(skip_serializing_if = "Option::is_none")]
- pub extra: Option<serde_json::Value>,
-}
-
-impl StatsResponse {
- pub fn new() -> StatsResponse {
- StatsResponse { extra: None }
- }
-}
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Success {
#[serde(rename = "message")]
pub message: String,
diff --git a/rust/fatcat-api-spec/src/server.rs b/rust/fatcat-api-spec/src/server.rs
index 6dec84b9..51b1ac45 100644
--- a/rust/fatcat-api-spec/src/server.rs
+++ b/rust/fatcat-api-spec/src/server.rs
@@ -43,7 +43,7 @@ use {
GetChangelogEntryResponse, GetChangelogResponse, GetContainerEditResponse, GetContainerHistoryResponse, GetContainerRedirectsResponse, GetContainerResponse, GetContainerRevisionResponse,
GetCreatorEditResponse, GetCreatorHistoryResponse, GetCreatorRedirectsResponse, GetCreatorReleasesResponse, GetCreatorResponse, GetCreatorRevisionResponse, GetEditgroupResponse,
GetEditorChangelogResponse, GetEditorResponse, GetFileEditResponse, GetFileHistoryResponse, GetFileRedirectsResponse, GetFileResponse, GetFileRevisionResponse, GetReleaseEditResponse,
- GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseRedirectsResponse, GetReleaseResponse, GetReleaseRevisionResponse, GetStatsResponse, GetWorkEditResponse, GetWorkHistoryResponse,
+ GetReleaseFilesResponse, GetReleaseHistoryResponse, GetReleaseRedirectsResponse, GetReleaseResponse, GetReleaseRevisionResponse, GetWorkEditResponse, GetWorkHistoryResponse,
GetWorkRedirectsResponse, GetWorkReleasesResponse, GetWorkResponse, GetWorkRevisionResponse, LookupContainerResponse, LookupCreatorResponse, LookupFileResponse, LookupReleaseResponse,
UpdateContainerResponse, UpdateCreatorResponse, UpdateFileResponse, UpdateReleaseResponse, UpdateWorkResponse,
};
@@ -2507,64 +2507,6 @@ where
);
let api_clone = api.clone();
- router.get(
- "/v0/stats",
- move |req: &mut Request| {
- let mut context = Context::default();
-
- // Helper function to provide a code block to use `?` in (to be replaced by the `catch` block when it exists).
- fn handle_request<T>(req: &mut Request, api: &T, context: &mut Context) -> Result<Response, Response>
- where
- T: Api,
- {
- context.x_span_id = Some(req.headers.get::<XSpanId>().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
- context.auth_data = req.extensions.remove::<AuthData>();
- context.authorization = req.extensions.remove::<Authorization>();
-
- // Query parameters (note that non-required or collection query parameters will ignore garbage values, rather than causing a 400 response)
- let query_params = req.get::<UrlEncodedQuery>().unwrap_or_default();
- let param_more = query_params.get("more").and_then(|list| list.first()).and_then(|x| x.parse::<String>().ok());
-
- match api.get_stats(param_more, context).wait() {
- Ok(rsp) => match rsp {
- GetStatsResponse::Success(body) => {
- let body_string = serde_json::to_string(&body).expect("impossible to fail to serialize");
-
- let mut response = Response::with((status::Status::from_u16(200), body_string));
- response.headers.set(ContentType(mimetypes::responses::GET_STATS_SUCCESS.clone()));
-
- context.x_span_id.as_ref().map(|header| response.headers.set(XSpanId(header.clone())));
-
- Ok(response)
- }
- GetStatsResponse::GenericError(body) => {
- let body_string = serde_json::to_string(&body).expect("impossible to fail to serialize");
-
- let mut response = Response::with((status::Status::from_u16(500), body_string));
- response.headers.set(ContentType(mimetypes::responses::GET_STATS_GENERIC_ERROR.clone()));
-
- context.x_span_id.as_ref().map(|header| response.headers.set(XSpanId(header.clone())));
-
- Ok(response)
- }
- },
- Err(_) => {
- // Application code returned an error. This should not happen, as the implementation should
- // return a valid response.
- Err(Response::with((status::InternalServerError, "An internal error occurred".to_string())))
- }
- }
- }
-
- handle_request(req, &api_clone, &mut context).or_else(|mut response| {
- context.x_span_id.as_ref().map(|header| response.headers.set(XSpanId(header.clone())));
- Ok(response)
- })
- },
- "GetStats",
- );
-
- let api_clone = api.clone();
router.post(
"/v0/editgroup/:editgroup_id/accept",
move |req: &mut Request| {
diff --git a/rust/src/api_server.rs b/rust/src/api_server.rs
index 99db91c0..5b95f149 100644
--- a/rust/src/api_server.rs
+++ b/rust/src/api_server.rs
@@ -349,7 +349,11 @@ impl Server {
})
}
- pub fn get_editgroup_handler(&self, editgroup_id: FatCatId, conn: &DbConn) -> Result<Editgroup> {
+ pub fn get_editgroup_handler(
+ &self,
+ editgroup_id: FatCatId,
+ conn: &DbConn,
+ ) -> Result<Editgroup> {
let row: EditgroupRow = editgroup::table.find(editgroup_id.to_uuid()).first(conn)?;
let edits = EditgroupEdits {
@@ -474,84 +478,6 @@ impl Server {
Ok(entry)
}
- pub fn get_stats_handler(&self, more: &Option<String>, conn: &DbConn) -> Result<StatsResponse> {
- let merged_editgroups: i64 = changelog::table
- .select(diesel::dsl::count_star())
- .first(conn)?;
- let releases_with_dois: i64 = release_rev::table
- .inner_join(release_ident::table)
- .filter(release_rev::doi.is_not_null())
- .filter(release_ident::is_live.eq(true))
- .filter(release_ident::redirect_id.is_null())
- .select(diesel::dsl::count_star())
- .first(conn)?;
- let creators_with_orcids: i64 = creator_rev::table
- .inner_join(creator_ident::table)
- .filter(creator_rev::orcid.is_not_null())
- .filter(creator_ident::is_live.eq(true))
- .filter(creator_ident::redirect_id.is_null())
- .select(diesel::dsl::count_star())
- .first(conn)?;
- let containers_with_issnls: i64 = container_rev::table
- .inner_join(container_ident::table)
- .filter(container_rev::issnl.is_not_null())
- .filter(container_ident::is_live.eq(true))
- .filter(container_ident::redirect_id.is_null())
- .count()
- .first(conn)?;
-
- let files_with_releases: Option<i64> = if more.is_some() {
- // this query is slightly inaccurate and over-counts: it includes files that have release
- // links only to inactive releases
- Some(
- file_rev::table
- .inner_join(file_ident::table)
- .inner_join(file_release::table)
- .filter(file_ident::is_live.eq(true))
- .filter(file_ident::redirect_id.is_null())
- .select(file_ident::id)
- .distinct()
- .count()
- .first(conn)?,
- )
- } else {
- None
- };
- let releases_with_files: Option<i64> = if more.is_some() {
- // this slightly overcounts also: it will include releases which are only linked to from
- // inactive files
- Some(
- release_ident::table
- .inner_join(file_release::table)
- .filter(release_ident::is_live.eq(true))
- .filter(release_ident::redirect_id.is_null())
- .select(file_release::target_release_ident_id)
- .distinct()
- .count()
- .first(conn)?,
- )
- } else {
- None
- };
-
- let val = json!({
- "entity_counts": {
- "container": count_entity!(container_ident, conn),
- "creator": count_entity!(creator_ident, conn),
- "file": count_entity!(file_ident, conn),
- "release": count_entity!(release_ident, conn),
- "work": count_entity!(work_ident, conn),
- },
- "merged_editgroups": merged_editgroups,
- "releases_with_dois": releases_with_dois,
- "creators_with_orcids": creators_with_orcids,
- "containers_with_issnls": containers_with_issnls,
- "files_with_releases": files_with_releases,
- "releases_with_files": releases_with_files,
- });
- Ok(StatsResponse { extra: Some(val) })
- }
-
entity_batch_handler!(create_container_batch_handler, ContainerEntity);
entity_batch_handler!(create_creator_batch_handler, CreatorEntity);
entity_batch_handler!(create_file_batch_handler, FileEntity);
diff --git a/rust/src/api_wrappers.rs b/rust/src/api_wrappers.rs
index ed4053b9..85b698aa 100644
--- a/rust/src/api_wrappers.rs
+++ b/rust/src/api_wrappers.rs
@@ -914,23 +914,4 @@ impl Api for Server {
};
Box::new(futures::done(Ok(ret)))
}
-
- fn get_stats(
- &self,
- more: Option<String>,
- _context: &Context,
- ) -> Box<Future<Item = GetStatsResponse, Error = ApiError> + Send> {
- let conn = self.db_pool.get().expect("db_pool error");
- // No transaction for GET
- let ret = match self.get_stats_handler(&more, &conn) {
- Ok(stats) => GetStatsResponse::Success(stats),
- Err(e) => {
- error!("{}", e);
- GetStatsResponse::GenericError(ErrorResponse {
- message: e.to_string(),
- })
- }
- };
- Box::new(futures::done(Ok(ret)))
- }
}
diff --git a/rust/tests/test_api_server_http.rs b/rust/tests/test_api_server_http.rs
index 86559545..6e4adda6 100644
--- a/rust/tests/test_api_server_http.rs
+++ b/rust/tests/test_api_server_http.rs
@@ -841,26 +841,6 @@ fn test_changelog() {
}
#[test]
-fn test_stats() {
- let (headers, router, _conn) = setup_http();
-
- check_http_response(
- request::get("http://localhost:9411/v0/stats", headers.clone(), &router),
- status::Ok,
- Some("merged_editgroups"),
- );
- check_http_response(
- request::get(
- "http://localhost:9411/v0/stats?more=yes",
- headers.clone(),
- &router,
- ),
- status::Ok,
- Some("merged_editgroups"),
- );
-}
-
-#[test]
fn test_400() {
let (headers, router, _conn) = setup_http();