Fixed 267U.pre2
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
import { Memoriets, MemorietViews, Users } from "../../../../models/index.js";
|
||||
import define from "../../define.js";
|
||||
import { ApiError } from "../../error.js";
|
||||
export const meta = {
|
||||
tags: [
|
||||
"memoriet"
|
||||
],
|
||||
requireCredential: true,
|
||||
kind: "read:account",
|
||||
res: {
|
||||
type: "array",
|
||||
optional: false,
|
||||
nullable: false,
|
||||
items: {
|
||||
type: "object",
|
||||
optional: false,
|
||||
nullable: false,
|
||||
properties: {
|
||||
viewedAt: {
|
||||
type: "string",
|
||||
optional: false,
|
||||
nullable: false
|
||||
},
|
||||
user: {
|
||||
type: "object",
|
||||
optional: false,
|
||||
nullable: false,
|
||||
ref: "User"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
errors: {
|
||||
noSuchMemoriet: {
|
||||
message: "No such Memoriet.",
|
||||
code: "NO_SUCH_MEMORIET",
|
||||
id: "1470626e-d318-4e01-9294-fbfa1260e6c4",
|
||||
httpStatusCode: 404
|
||||
},
|
||||
accessDenied: {
|
||||
message: "You cannot see viewers of this Memoriet.",
|
||||
code: "ACCESS_DENIED",
|
||||
id: "d705b05b-23c0-4b93-a5bb-2c303c66db2b",
|
||||
httpStatusCode: 403
|
||||
}
|
||||
}
|
||||
};
|
||||
export const paramDef = {
|
||||
type: "object",
|
||||
properties: {
|
||||
memorietId: {
|
||||
type: "string",
|
||||
format: "misskey:id"
|
||||
},
|
||||
limit: {
|
||||
type: "integer",
|
||||
minimum: 1,
|
||||
maximum: 100,
|
||||
default: 50
|
||||
},
|
||||
offset: {
|
||||
type: "integer",
|
||||
minimum: 0,
|
||||
default: 0
|
||||
}
|
||||
},
|
||||
required: [
|
||||
"memorietId"
|
||||
]
|
||||
};
|
||||
export default define(meta, paramDef, async (ps, user)=>{
|
||||
const memoriet = await Memoriets.findOneBy({
|
||||
id: ps.memorietId
|
||||
});
|
||||
if (!memoriet) throw new ApiError(meta.errors.noSuchMemoriet);
|
||||
if (memoriet.userId !== user.id) throw new ApiError(meta.errors.accessDenied);
|
||||
const views = await MemorietViews.find({
|
||||
where: {
|
||||
memorietId: memoriet.id
|
||||
},
|
||||
order: {
|
||||
viewedAt: "DESC"
|
||||
},
|
||||
skip: ps.offset,
|
||||
take: ps.limit
|
||||
});
|
||||
const users = await Users.packMany(views.map((view)=>view.viewerId), user, {
|
||||
detail: false
|
||||
});
|
||||
return views.map((view, index)=>({
|
||||
viewedAt: view.viewedAt.toISOString(),
|
||||
user: users[index]
|
||||
}));
|
||||
});
|
||||
Reference in New Issue
Block a user