mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 16:38:19 +01:00
Fix timelines
This commit is contained in:
parent
8c870cdad3
commit
0a74bbfe93
|
|
@ -17,7 +17,7 @@ export const notificationToAPI = async (
|
||||||
id: notification.id,
|
id: notification.id,
|
||||||
type: notification.type,
|
type: notification.type,
|
||||||
status: notification.status
|
status: notification.status
|
||||||
? await statusToAPI(notification.status)
|
? await statusToAPI(notification.status, notification.account)
|
||||||
: undefined,
|
: undefined,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ export default async (
|
||||||
}
|
}
|
||||||
|
|
||||||
return jsonResponse(
|
return jsonResponse(
|
||||||
await Promise.all(objects.map(status => statusToAPI(status))),
|
await Promise.all(objects.map(status => statusToAPI(status, user))),
|
||||||
200,
|
200,
|
||||||
{
|
{
|
||||||
Link: linkHeader.join(", "),
|
Link: linkHeader.join(", "),
|
||||||
|
|
|
||||||
|
|
@ -49,10 +49,10 @@ export default async (
|
||||||
|
|
||||||
return jsonResponse({
|
return jsonResponse({
|
||||||
ancestors: await Promise.all(
|
ancestors: await Promise.all(
|
||||||
ancestors.map(status => statusToAPI(status))
|
ancestors.map(status => statusToAPI(status, user || undefined))
|
||||||
),
|
),
|
||||||
descendants: await Promise.all(
|
descendants: await Promise.all(
|
||||||
descendants.map(status => statusToAPI(status))
|
descendants.map(status => statusToAPI(status, user || undefined))
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ export default async (
|
||||||
|
|
||||||
return jsonResponse(
|
return jsonResponse(
|
||||||
{
|
{
|
||||||
...(await statusToAPI(status)),
|
...(await statusToAPI(status, user)),
|
||||||
// TODO: Add
|
// TODO: Add
|
||||||
// text: Add source text
|
// text: Add source text
|
||||||
// poll: Add source poll
|
// poll: Add source poll
|
||||||
|
|
|
||||||
|
|
@ -78,17 +78,15 @@ export default async (req: Request): Promise<Response> => {
|
||||||
if (objects.length > 0) {
|
if (objects.length > 0) {
|
||||||
const urlWithoutQuery = req.url.split("?")[0];
|
const urlWithoutQuery = req.url.split("?")[0];
|
||||||
linkHeader.push(
|
linkHeader.push(
|
||||||
`<${urlWithoutQuery}?max_id=${objects[0].id}&limit=${limit}>; rel="next"`
|
`<${urlWithoutQuery}?max_id=${objects.at(-1)?.id}>; rel="next"`,
|
||||||
);
|
`<${urlWithoutQuery}?min_id=${objects[0].id}>; rel="prev"`
|
||||||
linkHeader.push(
|
|
||||||
`<${urlWithoutQuery}?since_id=${
|
|
||||||
objects[objects.length - 1].id
|
|
||||||
}&limit=${limit}>; rel="prev"`
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return jsonResponse(
|
return jsonResponse(
|
||||||
await Promise.all(objects.map(async status => statusToAPI(status))),
|
await Promise.all(
|
||||||
|
objects.map(async status => statusToAPI(status, user))
|
||||||
|
),
|
||||||
200,
|
200,
|
||||||
{
|
{
|
||||||
Link: linkHeader.join(", "),
|
Link: linkHeader.join(", "),
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import { parseRequest } from "@request";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { statusAndUserRelations, statusToAPI } from "~database/entities/Status";
|
import { statusAndUserRelations, statusToAPI } from "~database/entities/Status";
|
||||||
|
import { getFromRequest } from "~database/entities/User";
|
||||||
import type { APIRouteMeta } from "~types/api";
|
import type { APIRouteMeta } from "~types/api";
|
||||||
|
|
||||||
export const meta: APIRouteMeta = applyConfig({
|
export const meta: APIRouteMeta = applyConfig({
|
||||||
|
|
@ -18,6 +19,7 @@ export const meta: APIRouteMeta = applyConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
export default async (req: Request): Promise<Response> => {
|
export default async (req: Request): Promise<Response> => {
|
||||||
|
const { user } = await getFromRequest(req);
|
||||||
const {
|
const {
|
||||||
local,
|
local,
|
||||||
limit = 20,
|
limit = 20,
|
||||||
|
|
@ -81,7 +83,9 @@ export default async (req: Request): Promise<Response> => {
|
||||||
}
|
}
|
||||||
|
|
||||||
return jsonResponse(
|
return jsonResponse(
|
||||||
await Promise.all(objects.map(async status => statusToAPI(status))),
|
await Promise.all(
|
||||||
|
objects.map(async status => statusToAPI(status, user || undefined))
|
||||||
|
),
|
||||||
200,
|
200,
|
||||||
{
|
{
|
||||||
Link: linkHeader.join(", "),
|
Link: linkHeader.join(", "),
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ export async function parseRequest<T>(request: Request): Promise<Partial<T>> {
|
||||||
|
|
||||||
// Parse SearchParams arrays into JSON arrays
|
// Parse SearchParams arrays into JSON arrays
|
||||||
const arrayKeys = [...query.keys()].filter(key => key.endsWith("[]"));
|
const arrayKeys = [...query.keys()].filter(key => key.endsWith("[]"));
|
||||||
|
const nonArrayKeys = [...query.keys()].filter(key => !key.endsWith("[]"));
|
||||||
|
|
||||||
for (const key of arrayKeys) {
|
for (const key of arrayKeys) {
|
||||||
const value = query.getAll(key);
|
const value = query.getAll(key);
|
||||||
|
|
@ -18,6 +19,12 @@ export async function parseRequest<T>(request: Request): Promise<Partial<T>> {
|
||||||
query.append(key, JSON.stringify(value));
|
query.append(key, JSON.stringify(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Append non array keys to output
|
||||||
|
for (const key of nonArrayKeys) {
|
||||||
|
// @ts-expect-error Complains about type
|
||||||
|
output[key] = query.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
const queryEntries = [...query.entries()];
|
const queryEntries = [...query.entries()];
|
||||||
|
|
||||||
if (queryEntries.length > 0) {
|
if (queryEntries.length > 0) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue