Skip to content

Commit

Permalink
Merge pull request #985 from Franceq34/add-project-name-package-and-p…
Browse files Browse the repository at this point in the history
…ort-to-generator

Add project name, package and port to front generator
  • Loading branch information
pascalgrimaud authored Mar 10, 2022
2 parents bde5140 + e0b3e56 commit d79ee6b
Show file tree
Hide file tree
Showing 31 changed files with 288 additions and 66 deletions.
3 changes: 3 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 0 additions & 5 deletions src/main/webapp/app/generator/domain/Project.ts

This file was deleted.

6 changes: 0 additions & 6 deletions src/main/webapp/app/generator/primary/Generator.html

This file was deleted.

9 changes: 0 additions & 9 deletions src/main/webapp/app/generator/secondary/RestProject.ts

This file was deleted.

2 changes: 1 addition & 1 deletion src/main/webapp/app/main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import ProjectRepository from '@/generator/secondary/ProjectRepository';
import ProjectRepository from '@/springboot/secondary/ProjectRepository';
import { AxiosHttp } from '@/http/AxiosHttp';
import router from '@/router';
import axios from 'axios';
Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/app/router/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { GeneratorVue } from '@/generator/primary';
import { GeneratorVue } from '@/springboot/primary';
import { createRouter, createWebHistory } from 'vue-router';

const routes = [
Expand Down
1 change: 1 addition & 0 deletions src/main/webapp/app/springboot/domain/BaseName.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export type BaseName = string;
1 change: 1 addition & 0 deletions src/main/webapp/app/springboot/domain/Folder.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export type Folder = string;
1 change: 1 addition & 0 deletions src/main/webapp/app/springboot/domain/PackageName.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export type PackageName = string;
1 change: 1 addition & 0 deletions src/main/webapp/app/springboot/domain/Port.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export type Port = number;
13 changes: 13 additions & 0 deletions src/main/webapp/app/springboot/domain/Project.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Port } from '@/springboot/domain/Port';
import { Folder } from '@/springboot/domain/Folder';
import { PackageName } from '@/springboot/domain/PackageName';
import { BaseName } from '@/springboot/domain/BaseName';
import { ProjectName } from '@/springboot/domain/ProjectName';

export interface Project {
folder: Folder;
baseName?: BaseName;
projectName?: ProjectName;
packageName?: PackageName;
serverPort?: Port;
}
1 change: 1 addition & 0 deletions src/main/webapp/app/springboot/domain/ProjectName.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export type ProjectName = string;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Project } from '@/generator/domain/Project';
import { Project } from '@/springboot/domain/Project';

export interface ProjectService {
init(project: Project): Promise<void>;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,36 +1,38 @@
import { Project } from '@/generator/domain/Project';
import { ProjectService } from '@/generator/domain/ProjectService';
import { ProjectService } from '@/springboot/domain/ProjectService';
import { defineComponent, inject, ref } from 'vue';
import { ProjectToUpdate, toProject } from '@/springboot/primary/ProjectToUpdate';

export default defineComponent({
name: 'GeneratorComponent',
components: {},
setup() {
const projectService = inject('projectService') as ProjectService;

const project = ref<Project>({ folder: '' });
const project = ref<ProjectToUpdate>({
folder: '',
});

const initProject = async (): Promise<void> => {
if (project.value.folder !== '') {
await projectService.init(project.value);
await projectService.init(toProject(project.value));
}
};

const addMaven = async (): Promise<void> => {
if (project.value.folder !== '') {
await projectService.addMaven(project.value);
await projectService.addMaven(toProject(project.value));
}
};

const addJavaBase = async (): Promise<void> => {
if (project.value.folder !== '') {
await projectService.addJavaBase(project.value);
await projectService.addJavaBase(toProject(project.value));
}
};

const addSpringBoot = async (): Promise<void> => {
if (project.value.folder !== '') {
await projectService.addSpringBoot(project.value);
await projectService.addSpringBoot(toProject(project.value));
}
};

Expand Down
30 changes: 30 additions & 0 deletions src/main/webapp/app/springboot/primary/Generator.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<h1 data-selector="generator.title">JHLite</h1>
<h2 data-selector="generator.subtitle">SpringBoot Generator</h2>
<h3>Project configuration</h3>
<form>
<p>
<label for="path">Path* : </label>
<input id="path" type="text" v-model="project.folder" required />
</p>
<p>
<label for="basename">Basename : </label>
<input id="basename" type="text" v-model="project.baseName" />
</p>
<p>
<label for="projectname">Project name : </label>
<input id="projectname" type="text" v-model="project.projectName" />
</p>
<p>
<label for="packagename">Package name : </label>
<input id="packagename" type="text" v-model="project.packageName" />
</p>
<p>
<label for="serverport">Server port : </label>
<input id="serverport" type="number" v-model="project.serverPort" />
</p>
<hr />
<button id="init" @click.prevent="initProject" data-selector="generator.init-button">Init</button>
<button id="maven" @click.prevent="addMaven" data-selector="generator.add-maven-button">Maven</button>
<button id="javabase" @click.prevent="addJavaBase" data-selector="generator.add-java-base-button">JavaBase</button>
<button id="springboot" @click.prevent="addSpringBoot" data-selector="generator.add-spring-boot-button">SpringBoot</button>
</form>
21 changes: 21 additions & 0 deletions src/main/webapp/app/springboot/primary/ProjectToUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { Project } from '@/springboot/domain/Project';

export interface ProjectToUpdate {
folder: string;
baseName?: string;
projectName?: string;
packageName?: string;
serverPort?: string;
}

export const toProject = (projectToUpdate: ProjectToUpdate): Project => ({
folder: projectToUpdate.folder,
baseName: projectToUpdate.baseName,
projectName: projectToUpdate.projectName,
packageName: projectToUpdate.packageName,
serverPort: toOptionalInteger(projectToUpdate.serverPort),
});

const toOptionalInteger = (numberToConvert?: string): number | undefined => {
return numberToConvert ? parseInt(numberToConvert) : undefined;
};
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Project } from '@/generator/domain/Project';
import { ProjectService } from '@/generator/domain/ProjectService';
import { Project } from '@/springboot/domain/Project';
import { ProjectService } from '@/springboot/domain/ProjectService';
import { AxiosHttp } from '@/http/AxiosHttp';
import { RestProject, toRestProject } from '@/generator/secondary/RestProject';
import { RestProject, toRestProject } from '@/springboot/secondary/RestProject';

export default class ProjectRepository implements ProjectService {
constructor(private axiosHttp: AxiosHttp) {}
Expand Down
15 changes: 15 additions & 0 deletions src/main/webapp/app/springboot/secondary/RestGeneratorJHipster.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Project } from '@/springboot/domain/Project';

export interface RestGeneratorJHipster {
baseName?: string;
projectName?: string;
packageName?: string;
serverPort?: number;
}

export const toRestGeneratorJHipster = (project: Project): RestGeneratorJHipster => ({
baseName: project.baseName,
projectName: project.projectName,
packageName: project.packageName,
serverPort: project.serverPort,
});
12 changes: 12 additions & 0 deletions src/main/webapp/app/springboot/secondary/RestProject.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Project } from '@/springboot/domain/Project';
import { RestGeneratorJHipster, toRestGeneratorJHipster } from './RestGeneratorJHipster';

export interface RestProject {
folder: string;
'generator-jhipster': RestGeneratorJHipster;
}

export const toRestProject = (project: Project): RestProject => ({
folder: project.folder,
'generator-jhipster': toRestGeneratorJHipster(project),
});
3 changes: 2 additions & 1 deletion src/test/component/cypress/integration/Generator.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ describe('Generator', () => {
});

it('should display generator page', () => {
cy.get(generatorSelector('title')).contains('Generator');
cy.get(generatorSelector('title')).contains('JHLite');
cy.get(generatorSelector('subtitle')).contains('SpringBoot Generator');

cy.get(generatorSelector('init-button')).contains('Init');
cy.get(generatorSelector('add-maven-button')).contains('Maven');
Expand Down
6 changes: 0 additions & 6 deletions src/test/javascript/spec/generator/domain/Project.fixture.ts

This file was deleted.

10 changes: 10 additions & 0 deletions src/test/javascript/spec/springboot/domain/Project.fixture.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { Project } from '@/springboot/domain/Project';

export const createProject = (project?: Partial<Project>): Project => ({
folder: 'folder/path',
baseName: 'beer',
projectName: 'Beer Project',
packageName: 'tech.jhipster.beer',
serverPort: 8080,
...project,
});
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ProjectService } from '@/generator/domain/ProjectService';
import { ProjectService } from '@/springboot/domain/ProjectService';
import sinon, { SinonStub } from 'sinon';

export interface ProjectServiceFixture extends ProjectService {
Expand Down
Loading

0 comments on commit d79ee6b

Please sign in to comment.