diff --git a/NodeApp/src/commander/enonce/EnonceCreateCommand.ts b/NodeApp/src/commander/enonce/EnonceCreateCommand.ts index d0124a30d68269f48cce5b60a459f82801a8213c..681cb91df86a3b22108a23266b7fac1ca6a98dc7 100644 --- a/NodeApp/src/commander/enonce/EnonceCreateCommand.ts +++ b/NodeApp/src/commander/enonce/EnonceCreateCommand.ts @@ -90,6 +90,7 @@ class EnonceCreateCommand extends CommanderCommand { protected async commandAction(options: any): Promise<void> { let members!: Array<GitlabUser> | false; + let templateIdOrNamespace: string | null = null; // Check access and retrieve data { @@ -105,13 +106,13 @@ class EnonceCreateCommand extends CommanderCommand { } if ( options.template ) { - let templateIdOrNamespace: string = options.template; + templateIdOrNamespace = options.template; if ( Number.isNaN(Number(templateIdOrNamespace)) ) { - templateIdOrNamespace = encodeURIComponent(Toolbox.urlToPath(templateIdOrNamespace)); + templateIdOrNamespace = Toolbox.urlToPath(templateIdOrNamespace as string); } - if ( !await DojoBackendManager.checkTemplateAccess(templateIdOrNamespace) ) { + if ( !await DojoBackendManager.checkTemplateAccess(encodeURIComponent(templateIdOrNamespace as string)) ) { return; } } @@ -121,7 +122,7 @@ class EnonceCreateCommand extends CommanderCommand { { console.log(chalk.cyan('Please wait while we are creating the enonce...')); - const enonce = await DojoBackendManager.createProject(options.name, members); + const enonce = await DojoBackendManager.createProject(options.name, members, templateIdOrNamespace); console.log(enonce); } diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts index 36d62b0df5bff35a7635753aa31299b91244f985..30b6b887a24c93a85dbb7bacf2de957dc106fee6 100644 --- a/NodeApp/src/managers/DojoBackendManager.ts +++ b/NodeApp/src/managers/DojoBackendManager.ts @@ -60,7 +60,7 @@ class DojoBackendManager { } } - public async createProject(name: string, members: Array<GitlabUser>, verbose: boolean = true): Promise<Enonce> { + public async createProject(name: string, members: Array<GitlabUser>, templateIdOrNamespace: string | null, verbose: boolean = true): Promise<Enonce> { const spinner: ora.Ora = ora('Creating enonce...'); if ( verbose ) { @@ -68,10 +68,10 @@ class DojoBackendManager { } try { - const response = await axios.post<Enonce>(this.getApiUrl(ApiRoutes.ENONCE_CREATE), { - name : name, - members: JSON.stringify(members) - }); + const response = await axios.post<Enonce>(this.getApiUrl(ApiRoutes.ENONCE_CREATE), Object.assign({ + name : name, + members: JSON.stringify(members) + }, templateIdOrNamespace ? { template: templateIdOrNamespace } : {})); return response.data; } catch ( error ) {