Fixed 267U.pre2
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import * as fs from "node:fs";
|
||||
import Ajv from "ajv";
|
||||
import { ApiError } from "./error.js";
|
||||
const ajv = new Ajv({
|
||||
useDefaults: true
|
||||
});
|
||||
ajv.addFormat("misskey:id", /^[a-zA-Z0-9]+$/);
|
||||
export default function(meta, paramDef, cb) {
|
||||
const validate = ajv.compile(paramDef);
|
||||
return (params, user, token, file, ip, headers)=>{
|
||||
let cleanup = undefined;
|
||||
if (meta.requireFile) {
|
||||
cleanup = ()=>{
|
||||
fs.unlink(file.path, ()=>{});
|
||||
};
|
||||
if (file == null) return Promise.reject(new ApiError({
|
||||
message: "File required.",
|
||||
code: "FILE_REQUIRED",
|
||||
id: "4267801e-70d1-416a-b011-4ee502885d8b"
|
||||
}));
|
||||
}
|
||||
const valid = validate(params);
|
||||
if (!valid) {
|
||||
if (file) cleanup();
|
||||
const errors = validate.errors;
|
||||
const err = new ApiError({
|
||||
message: "Invalid param.",
|
||||
code: "INVALID_PARAM",
|
||||
id: "3d81ceae-475f-4600-b2a8-2bc116157532"
|
||||
}, {
|
||||
param: errors[0].schemaPath,
|
||||
reason: errors[0].message
|
||||
});
|
||||
return Promise.reject(err);
|
||||
}
|
||||
return cb(params, user, token, file, cleanup, ip, headers);
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user