jec-glasscat
Version:
JEC GlassCat - The GlassCat Aplication Server is the default JEC implementation.
50 lines (46 loc) • 1.92 kB
text/typescript
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
//
// Copyright 2016-2018 Pascal ECHEMANN.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import {HttpJslet, WebJslet, HttpRequest, HttpResponse} from "jec-exchange";
import {HttpStatusCode} from "jec-commons";
import {BootstrapFileInfo} from "../../webapp/console/business/EjpFileInfo";
import {CreateBootstrapFile} from "jec-glasscat-commands";
import {UrlUtils, LoggerManager} from "jec-glasscat-core";
({
name: "BootstrapService",
urlPatterns: ["/console/data/controllers/create-bootstrap-file"]
})
export class BootstrapService extends HttpJslet {
public doPost(req:HttpRequest, res:HttpResponse, exit:Function):void {
const infoFile:BootstrapFileInfo = req.getBody();
const priority:number = infoFile.priority;
const command:CreateBootstrapFile = new CreateBootstrapFile();
command.setLogger(LoggerManager.getInstance());
const argv:any = {
projectPath: infoFile.ejpDirectory,
name: infoFile.className,
path: infoFile.path,
compile: true
};
if(priority) argv.priority = priority;
command.execute(argv, (err:any)=> {
if(err) {
exit(req, res.sendStatus(HttpStatusCode.INTERNAL_SERVER_ERROR));
} else {
exit(req, res.sendStatus(HttpStatusCode.CREATED));
}
});
}
}