required https://github.com/eggjs/egg/pull/5654 --------- Signed-off-by: MK (fengmk2) <fengmk2@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
import {
|
|
HTTPContext,
|
|
Context,
|
|
HTTPController,
|
|
HTTPMethod,
|
|
HTTPMethodEnum,
|
|
HTTPQuery,
|
|
Inject,
|
|
} from 'egg';
|
|
|
|
import { AbstractController } from '../AbstractController.ts';
|
|
import type { FixNoPaddingVersionService } from '../../../core/service/FixNoPaddingVersionService.ts';
|
|
|
|
@HTTPController()
|
|
export class PaddingVersionController extends AbstractController {
|
|
@Inject()
|
|
private readonly fixNoPaddingVersionService: FixNoPaddingVersionService;
|
|
|
|
@HTTPMethod({
|
|
method: HTTPMethodEnum.PUT,
|
|
path: '/-/admin/npm/fixPaddingVersion',
|
|
})
|
|
async fixNoPaddingVersion(
|
|
@HTTPContext() ctx: Context,
|
|
@HTTPQuery() id: string
|
|
) {
|
|
const isAdmin = await this.userRoleManager.isAdmin(ctx);
|
|
if (!isAdmin) {
|
|
return {
|
|
ok: false,
|
|
error: 'only admin can do this',
|
|
};
|
|
}
|
|
let idNum: number | undefined;
|
|
if (id) {
|
|
idNum = Number.parseInt(id);
|
|
if (Number.isNaN(idNum)) {
|
|
return {
|
|
ok: false,
|
|
error: `id is not a number ${id}`,
|
|
};
|
|
}
|
|
}
|
|
await this.fixNoPaddingVersionService.fixPaddingVersion(idNum);
|
|
return {
|
|
ok: true,
|
|
};
|
|
}
|
|
}
|