Change /api/v1/{status_id}/context response format to match Mastodon API
This commit is contained in:
parent
23b44ce0db
commit
1d16fb45a5
4 changed files with 49 additions and 1 deletions
|
@ -18,6 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||
|
||||
- Allow `instance_uri` configuration value to contain URI scheme.
|
||||
- Changed `Content-Security-Policy` header value in nginx config examples.
|
||||
- Changed `/api/v1/{status_id}/context` response format to match Mastodon API.
|
||||
|
||||
## [1.13.1] - 2023-02-09
|
||||
|
||||
|
|
|
@ -943,6 +943,31 @@ paths:
|
|||
description: Post does not belong to user
|
||||
404:
|
||||
description: Post not found
|
||||
/api/v1/statuses/{status_id}/context:
|
||||
get:
|
||||
summary: View statuses above and below this status in the thread.
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/status_id'
|
||||
responses:
|
||||
200:
|
||||
description: Successful operation.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
ancestors:
|
||||
description: Parents in the thread.
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Status'
|
||||
descendants:
|
||||
description: Parents in the thread.
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Status'
|
||||
404:
|
||||
description: Post not found
|
||||
/api/v1/statuses/{status_id}/thread:
|
||||
get:
|
||||
summary: Get thread that contains given post.
|
||||
|
|
|
@ -188,6 +188,12 @@ impl StatusPreview {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct Context {
|
||||
pub ancestors: Vec<Status>,
|
||||
pub descendants: Vec<Status>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct TransactionData {
|
||||
pub transaction_id: String,
|
||||
|
|
|
@ -56,6 +56,7 @@ use super::helpers::{
|
|||
PostContent,
|
||||
};
|
||||
use super::types::{
|
||||
Context,
|
||||
Status,
|
||||
StatusData,
|
||||
StatusPreview,
|
||||
|
@ -302,7 +303,22 @@ async fn get_context(
|
|||
maybe_current_user.as_ref(),
|
||||
posts,
|
||||
).await?;
|
||||
Ok(HttpResponse::Ok().json(statuses))
|
||||
let mut ancestors = vec![];
|
||||
let mut descendants = vec![];
|
||||
let mut is_ancestor = true;
|
||||
for status in statuses {
|
||||
if is_ancestor {
|
||||
if status.id == *status_id {
|
||||
is_ancestor = false;
|
||||
continue;
|
||||
};
|
||||
ancestors.push(status);
|
||||
} else {
|
||||
descendants.push(status);
|
||||
};
|
||||
};
|
||||
let context = Context { ancestors, descendants };
|
||||
Ok(HttpResponse::Ok().json(context))
|
||||
}
|
||||
|
||||
#[get("/{status_id}/thread")]
|
||||
|
|
Loading…
Reference in a new issue