cnpmcore
Version:
119 lines • 9.82 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PackageBlockController = void 0;
const tegg_1 = require("@eggjs/tegg");
const egg_errors_1 = require("egg-errors");
const AbstractController_1 = require("./AbstractController");
const PackageUtil_1 = require("../../common/PackageUtil");
const PackageManagerService_1 = require("../../core/service/PackageManagerService");
const PackageVersionBlockRepository_1 = require("../../repository/PackageVersionBlockRepository");
const typebox_1 = require("../typebox");
const AdminAccess_1 = require("../middleware/AdminAccess");
let PackageBlockController = class PackageBlockController extends AbstractController_1.AbstractController {
async blockPackage(ctx, fullname, data) {
const params = { fullname, reason: data.reason };
ctx.tValidate(typebox_1.BlockPackageRule, params);
const packageEntity = await this.getPackageEntityByFullname(params.fullname);
if (packageEntity.isPrivate) {
throw new egg_errors_1.ForbiddenError(`Can\'t block private package "${params.fullname}"`);
}
const authorized = await this.userRoleManager.getAuthorizedUserAndToken(ctx);
const block = await this.packageManagerService.blockPackage(packageEntity, `${params.reason} (operator: ${authorized?.user.name}/${authorized?.user.userId})`);
ctx.logger.info('[PackageBlockController.blockPackage:success] fullname: %s, packageId: %s, packageVersionBlockId: %s', fullname, packageEntity.packageId, block.packageVersionBlockId);
ctx.status = 201;
return {
ok: true,
id: block.packageVersionBlockId,
package_id: packageEntity.packageId,
};
}
async unblockPackage(ctx, fullname) {
const packageEntity = await this.getPackageEntityByFullname(fullname);
if (packageEntity.isPrivate) {
throw new egg_errors_1.ForbiddenError(`Can\'t unblock private package "${fullname}"`);
}
await this.packageManagerService.unblockPackage(packageEntity);
ctx.logger.info('[PackageBlockController.unblockPackage:success] fullname: %s, packageId: %s', fullname, packageEntity.packageId);
return {
ok: true,
};
}
async listPackageBlocks(fullname) {
const packageEntity = await this.getPackageEntityByFullname(fullname);
const blocks = await this.packageVersionBlockRepository.listPackageVersionBlocks(packageEntity.packageId);
return {
data: blocks.map(block => {
return {
id: block.packageVersionBlockId,
version: block.version,
reason: block.reason,
created: block.createdAt,
modified: block.updatedAt,
};
}),
};
}
};
exports.PackageBlockController = PackageBlockController;
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", PackageManagerService_1.PackageManagerService)
], PackageBlockController.prototype, "packageManagerService", void 0);
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", PackageVersionBlockRepository_1.PackageVersionBlockRepository)
], PackageBlockController.prototype, "packageVersionBlockRepository", void 0);
__decorate([
(0, tegg_1.HTTPMethod)({
// PUT /-/package/:fullname/blocks
path: `/-/package/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})/blocks`,
method: tegg_1.HTTPMethodEnum.PUT,
}),
(0, tegg_1.Middleware)(AdminAccess_1.AdminAccess),
__param(0, (0, tegg_1.Context)()),
__param(1, (0, tegg_1.HTTPParam)()),
__param(2, (0, tegg_1.HTTPBody)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, String, Object]),
__metadata("design:returntype", Promise)
], PackageBlockController.prototype, "blockPackage", null);
__decorate([
(0, tegg_1.HTTPMethod)({
// DELETE /-/package/:fullname/blocks
path: `/-/package/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})/blocks`,
method: tegg_1.HTTPMethodEnum.DELETE,
}),
(0, tegg_1.Middleware)(AdminAccess_1.AdminAccess),
__param(0, (0, tegg_1.Context)()),
__param(1, (0, tegg_1.HTTPParam)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, String]),
__metadata("design:returntype", Promise)
], PackageBlockController.prototype, "unblockPackage", null);
__decorate([
(0, tegg_1.HTTPMethod)({
// GET /-/package/:fullname/blocks
path: `/-/package/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})/blocks`,
method: tegg_1.HTTPMethodEnum.GET,
}),
__param(0, (0, tegg_1.HTTPParam)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", Promise)
], PackageBlockController.prototype, "listPackageBlocks", null);
exports.PackageBlockController = PackageBlockController = __decorate([
(0, tegg_1.HTTPController)()
], PackageBlockController);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUJsb2NrQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvUGFja2FnZUJsb2NrQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FVcUI7QUFDckIsMkNBQTRDO0FBQzVDLDZEQUEwRDtBQUMxRCwwREFBK0Q7QUFDL0Qsb0ZBQWlGO0FBQ2pGLGtHQUErRjtBQUMvRix3Q0FBZ0U7QUFDaEUsMkRBQXdEO0FBR2pELElBQU0sc0JBQXNCLEdBQTVCLE1BQU0sc0JBQXVCLFNBQVEsdUNBQWtCO0lBWXRELEFBQU4sS0FBSyxDQUFDLFlBQVksQ0FBWSxHQUFlLEVBQWUsUUFBZ0IsRUFBYyxJQUFzQjtRQUM5RyxNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pELEdBQUcsQ0FBQyxTQUFTLENBQUMsMEJBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLElBQUksYUFBYSxDQUFDLFNBQVMsRUFBRTtZQUMzQixNQUFNLElBQUksMkJBQWMsQ0FBQyxpQ0FBaUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7U0FDL0U7UUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0UsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFDdkUsR0FBRyxNQUFNLENBQUMsTUFBTSxlQUFlLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFB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