UNPKG

cnpmcore

Version:
119 lines 9.82 kB
"use strict"; 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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