Skip to content

Commit

Permalink
Merge pull request #1582 from Franceq34/add-existing-endpoints-calls-…
Browse files Browse the repository at this point in the history
…and-organize-repositories

Frontend: Add Angular with JWT, Liquibase and Flyway buttons
  • Loading branch information
pascalgrimaud authored May 4, 2022
2 parents 0c9f9c8 + 6b2f84b commit 7df5836
Show file tree
Hide file tree
Showing 17 changed files with 431 additions and 175 deletions.
5 changes: 5 additions & 0 deletions src/main/webapp/app/common/domain/Service.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
export enum Service {
AOP_LOGGING = 'AOP_LOGGING',
ANGULAR = 'ANGULAR',
ANGULAR_WITH_JWT = 'ANGULAR_WITH_JWT',
DOWNLOAD = 'DOWNLOAD',
FLYWAY = 'FLYWAY',
FLYWAY_WITH_USERS_AND_AUTHORITY_CHANGELOGS = 'FLYWAY_WITH_USERS_AND_AUTHORITY_CHANGELOGS',
FRONTEND_MAVEN_PLUGIN = 'FRONTEND_MAVEN_PLUGIN',
INITIALIZATION = 'INITIALIZATION',
JACOCO_CHECK_MINIMAL_COVERAGE = 'JACOCO_CHECK_MINIMAL_COVERAGE',
JAVA_BASE = 'JAVA_BASE',
LIQUIBASE = 'LIQUIBASE',
LIQUIBASE_WITH_USERS_AND_AUTHORITY_CHANGELOGS = 'LIQUIBASE_WITH_USERS_AND_AUTHORITY_CHANGELOGS',
LOGSTASH = 'LOGSTASH',
MAVEN_JAVA = 'MAVEN_JAVA',
MARIADB = 'MARIADB',
Expand Down
93 changes: 36 additions & 57 deletions src/main/webapp/app/common/secondary/RestServiceId.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,40 @@ import { Service } from '@/common/domain/Service';

export type RestServiceId = string;

export const toService = (restServiceId: RestServiceId): Service => {
switch (restServiceId) {
case 'aop-logging':
return Service.AOP_LOGGING;
case 'angular':
return Service.ANGULAR;
case 'download':
return Service.DOWNLOAD;
case 'frontend-maven-plugin':
return Service.FRONTEND_MAVEN_PLUGIN;
case 'init':
return Service.INITIALIZATION;
case 'jacoco-check-min-coverage':
return Service.JACOCO_CHECK_MINIMAL_COVERAGE;
case 'java-base':
return Service.JAVA_BASE;
case 'logstash':
return Service.LOGSTASH;
case 'mariadb':
return Service.MARIADB;
case 'maven-java':
return Service.MAVEN_JAVA;
case 'mongodb':
return Service.MONGODB;
case 'mongock':
return Service.MONGOCK;
case 'mysql':
return Service.MYSQL;
case 'postgresql':
return Service.POSTGRESQL;
case 'sonar-java-backend':
return Service.SONAR_JAVA_BACKEND;
case 'sonar-java-backend-and-frontend':
return Service.SONAR_JAVA_BACKEND_AND_FRONTEND;
case 'springboot':
return Service.SPRINGBOOT;
case 'springboot-jwt':
return Service.SPRINGBOOT_JWT;
case 'springboot-jwt-basic-auth':
return Service.SPRINGBOOT_JWT_WITH_BASIC_AUTHENTICATION;
case 'springboot-actuator':
return Service.SPRINGBOOT_ACTUATOR;
case 'springboot-tomcat':
return Service.SPRINGBOOT_MVC_WITH_TOMCAT;
case 'springboot-webflux-netty':
return Service.SPRINGBOOT_WEBFLUX_NETTY;
case 'react':
return Service.REACT;
case 'react-styled':
return Service.REACT_STYLED;
case 'vue':
return Service.VUE;
case 'vue-styled':
return Service.VUE_STYLED;
default:
return Service.UNKNOWN;
}
const SERVICES: Record<string, Service> = {
'aop-logging': Service.AOP_LOGGING,
angular: Service.ANGULAR,
'angular-jwt': Service.ANGULAR_WITH_JWT,
download: Service.DOWNLOAD,
flyway: Service.FLYWAY,
'flyway-user-and-authority-changelogs': Service.FLYWAY_WITH_USERS_AND_AUTHORITY_CHANGELOGS,
'frontend-maven-plugin': Service.FRONTEND_MAVEN_PLUGIN,
init: Service.INITIALIZATION,
'jacoco-check-min-coverage': Service.JACOCO_CHECK_MINIMAL_COVERAGE,
'java-base': Service.JAVA_BASE,
liquibase: Service.LIQUIBASE,
'liquibase-user-and-authority-changelogs': Service.LIQUIBASE_WITH_USERS_AND_AUTHORITY_CHANGELOGS,
logstash: Service.LOGSTASH,
'maven-java': Service.MAVEN_JAVA,
mariadb: Service.MARIADB,
mysql: Service.MYSQL,
mongodb: Service.MONGODB,
mongock: Service.MONGOCK,
postgresql: Service.POSTGRESQL,
'sonar-java-backend': Service.SONAR_JAVA_BACKEND,
'sonar-java-backend-and-frontend': Service.SONAR_JAVA_BACKEND_AND_FRONTEND,
springboot: Service.SPRINGBOOT,
'springboot-actuator': Service.SPRINGBOOT_ACTUATOR,
'springboot-jwt': Service.SPRINGBOOT_JWT,
'springboot-jwt-basic-auth': Service.SPRINGBOOT_JWT_WITH_BASIC_AUTHENTICATION,
'springboot-tomcat': Service.SPRINGBOOT_MVC_WITH_TOMCAT,
'springboot-webflux-netty': Service.SPRINGBOOT_WEBFLUX_NETTY,
react: Service.REACT,
'react-styled': Service.REACT_STYLED,
vue: Service.VUE,
'vue-styled': Service.VUE_STYLED,
unknown: Service.UNKNOWN,
};

export const toService = (restServiceId: RestServiceId): Service =>
Object.keys(SERVICES).includes(restServiceId) ? SERVICES[restServiceId] : Service.UNKNOWN;
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ import { Project } from '@/springboot/domain/Project';

export interface AngularService {
add(project: Project): Promise<void>;
addWithJWT(project: Project): Promise<void>;
}
189 changes: 75 additions & 114 deletions src/main/webapp/app/springboot/primary/generator/ServiceProjection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,16 @@ import { Service } from '@/common/domain/Service';
export type ServiceProjection =
| 'aop-logging'
| 'angular'
| 'angular-with-jwt'
| 'download'
| 'initialization'
| 'flyway'
| 'flyway-with-users-and-authority-changelogs'
| 'frontend-maven-plugin'
| 'jacoco-check-minimal-coverage'
| 'java-base'
| 'liquibase'
| 'liquibase-with-users-and-authority-changelogs'
| 'logstash'
| 'maven-java'
| 'mariadb'
Expand All @@ -29,120 +34,76 @@ export type ServiceProjection =
| 'vue-styled'
| 'unknown';

export const toServiceProjection = (service: Service): ServiceProjection => {
switch (service) {
case Service.AOP_LOGGING:
return 'aop-logging';
case Service.ANGULAR:
return 'angular';
case Service.DOWNLOAD:
return 'download';
case Service.INITIALIZATION:
return 'initialization';
case Service.FRONTEND_MAVEN_PLUGIN:
return 'frontend-maven-plugin';
case Service.JACOCO_CHECK_MINIMAL_COVERAGE:
return 'jacoco-check-minimal-coverage';
case Service.JAVA_BASE:
return 'java-base';
case Service.LOGSTASH:
return 'logstash';
case Service.MAVEN_JAVA:
return 'maven-java';
case Service.MARIADB:
return 'mariadb';
case Service.MYSQL:
return 'mysql';
case Service.MONGODB:
return 'mongodb';
case Service.MONGOCK:
return 'mongock';
case Service.POSTGRESQL:
return 'postgresql';
case Service.SONAR_JAVA_BACKEND:
return 'sonar-java-backend';
case Service.SONAR_JAVA_BACKEND_AND_FRONTEND:
return 'sonar-java-backend-and-frontend';
case Service.SPRINGBOOT:
return 'spring-boot';
case Service.SPRINGBOOT_ACTUATOR:
return 'spring-boot-actuator';
case Service.SPRINGBOOT_JWT:
return 'spring-boot-jwt';
case Service.SPRINGBOOT_JWT_WITH_BASIC_AUTHENTICATION:
return 'spring-boot-jwt-with-basic-authentication';
case Service.SPRINGBOOT_MVC_WITH_TOMCAT:
return 'spring-boot-mvc-with-tomcat';
case Service.SPRINGBOOT_WEBFLUX_NETTY:
return 'spring-boot-webflux-netty';
case Service.REACT:
return 'react';
case Service.REACT_STYLED:
return 'react-styled';
case Service.VUE:
return 'vue';
case Service.VUE_STYLED:
return 'vue-styled';
case Service.UNKNOWN:
return 'unknown';
}
const SERVICES_PROJECTION: Record<Service, ServiceProjection> = {
[Service.AOP_LOGGING]: 'aop-logging',
[Service.ANGULAR]: 'angular',
[Service.ANGULAR_WITH_JWT]: 'angular-with-jwt',
[Service.DOWNLOAD]: 'download',
[Service.FLYWAY]: 'flyway',
[Service.FLYWAY_WITH_USERS_AND_AUTHORITY_CHANGELOGS]: 'flyway-with-users-and-authority-changelogs',
[Service.FRONTEND_MAVEN_PLUGIN]: 'frontend-maven-plugin',
[Service.INITIALIZATION]: 'initialization',
[Service.JACOCO_CHECK_MINIMAL_COVERAGE]: 'jacoco-check-minimal-coverage',
[Service.JAVA_BASE]: 'java-base',
[Service.LIQUIBASE]: 'liquibase',
[Service.LIQUIBASE_WITH_USERS_AND_AUTHORITY_CHANGELOGS]: 'liquibase-with-users-and-authority-changelogs',
[Service.LOGSTASH]: 'logstash',
[Service.MAVEN_JAVA]: 'maven-java',
[Service.MARIADB]: 'mariadb',
[Service.MYSQL]: 'mysql',
[Service.MONGODB]: 'mongodb',
[Service.MONGOCK]: 'mongock',
[Service.POSTGRESQL]: 'postgresql',
[Service.SONAR_JAVA_BACKEND]: 'sonar-java-backend',
[Service.SONAR_JAVA_BACKEND_AND_FRONTEND]: 'sonar-java-backend-and-frontend',
[Service.SPRINGBOOT]: 'spring-boot',
[Service.SPRINGBOOT_ACTUATOR]: 'spring-boot-actuator',
[Service.SPRINGBOOT_JWT]: 'spring-boot-jwt',
[Service.SPRINGBOOT_JWT_WITH_BASIC_AUTHENTICATION]: 'spring-boot-jwt-with-basic-authentication',
[Service.SPRINGBOOT_MVC_WITH_TOMCAT]: 'spring-boot-mvc-with-tomcat',
[Service.SPRINGBOOT_WEBFLUX_NETTY]: 'spring-boot-webflux-netty',
[Service.REACT]: 'react',
[Service.REACT_STYLED]: 'react-styled',
[Service.VUE]: 'vue',
[Service.VUE_STYLED]: 'vue-styled',
[Service.UNKNOWN]: 'unknown',
};

export const fromServiceProjection = (serviceProjection: ServiceProjection): Service => {
switch (serviceProjection) {
case 'aop-logging':
return Service.AOP_LOGGING;
case 'angular':
return Service.ANGULAR;
case 'download':
return Service.DOWNLOAD;
case 'initialization':
return Service.INITIALIZATION;
case 'frontend-maven-plugin':
return Service.FRONTEND_MAVEN_PLUGIN;
case 'jacoco-check-minimal-coverage':
return Service.JACOCO_CHECK_MINIMAL_COVERAGE;
case 'java-base':
return Service.JAVA_BASE;
case 'logstash':
return Service.LOGSTASH;
case 'maven-java':
return Service.MAVEN_JAVA;
case 'mariadb':
return Service.MARIADB;
case 'mysql':
return Service.MYSQL;
case 'mongodb':
return Service.MONGODB;
case 'mongock':
return Service.MONGOCK;
case 'postgresql':
return Service.POSTGRESQL;
case 'sonar-java-backend':
return Service.SONAR_JAVA_BACKEND;
case 'sonar-java-backend-and-frontend':
return Service.SONAR_JAVA_BACKEND_AND_FRONTEND;
case 'spring-boot':
return Service.SPRINGBOOT;
case 'spring-boot-actuator':
return Service.SPRINGBOOT_ACTUATOR;
case 'spring-boot-jwt':
return Service.SPRINGBOOT_JWT;
case 'spring-boot-jwt-with-basic-authentication':
return Service.SPRINGBOOT_JWT_WITH_BASIC_AUTHENTICATION;
case 'spring-boot-mvc-with-tomcat':
return Service.SPRINGBOOT_MVC_WITH_TOMCAT;
case 'spring-boot-webflux-netty':
return Service.SPRINGBOOT_WEBFLUX_NETTY;
case 'react':
return Service.REACT;
case 'react-styled':
return Service.REACT_STYLED;
case 'vue':
return Service.VUE;
case 'vue-styled':
return Service.VUE_STYLED;
case 'unknown':
return Service.UNKNOWN;
}
export const toServiceProjection = (service: Service): ServiceProjection => SERVICES_PROJECTION[service];

const SERVICES: Record<ServiceProjection, Service> = {
'aop-logging': Service.AOP_LOGGING,
angular: Service.ANGULAR,
'angular-with-jwt': Service.ANGULAR_WITH_JWT,
download: Service.DOWNLOAD,
flyway: Service.FLYWAY,
'flyway-with-users-and-authority-changelogs': Service.FLYWAY_WITH_USERS_AND_AUTHORITY_CHANGELOGS,
'frontend-maven-plugin': Service.FRONTEND_MAVEN_PLUGIN,
initialization: Service.INITIALIZATION,
'jacoco-check-minimal-coverage': Service.JACOCO_CHECK_MINIMAL_COVERAGE,
'java-base': Service.JAVA_BASE,
liquibase: Service.LIQUIBASE,
'liquibase-with-users-and-authority-changelogs': Service.LIQUIBASE_WITH_USERS_AND_AUTHORITY_CHANGELOGS,
logstash: Service.LOGSTASH,
'maven-java': Service.MAVEN_JAVA,
mariadb: Service.MARIADB,
mysql: Service.MYSQL,
mongodb: Service.MONGODB,
mongock: Service.MONGOCK,
postgresql: Service.POSTGRESQL,
'sonar-java-backend': Service.SONAR_JAVA_BACKEND,
'sonar-java-backend-and-frontend': Service.SONAR_JAVA_BACKEND_AND_FRONTEND,
'spring-boot': Service.SPRINGBOOT,
'spring-boot-actuator': Service.SPRINGBOOT_ACTUATOR,
'spring-boot-jwt': Service.SPRINGBOOT_JWT,
'spring-boot-jwt-with-basic-authentication': Service.SPRINGBOOT_JWT_WITH_BASIC_AUTHENTICATION,
'spring-boot-mvc-with-tomcat': Service.SPRINGBOOT_MVC_WITH_TOMCAT,
'spring-boot-webflux-netty': Service.SPRINGBOOT_WEBFLUX_NETTY,
react: Service.REACT,
'react-styled': Service.REACT_STYLED,
vue: Service.VUE,
'vue-styled': Service.VUE_STYLED,
unknown: Service.UNKNOWN,
};

export const fromServiceProjection = (serviceProjection: ServiceProjection): Service => SERVICES[serviceProjection];
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,18 @@ export default defineComponent({
}
};

const addAngularWithJWT = async (): Promise<void> => {
if (props.project.folder !== '') {
await angularService
.addWithJWT(toProject(props.project as ProjectToUpdate))
.catch(error => logger.error('Adding Angular with authentication JWT to project failed', error));
}
};

return {
selectorPrefix,
addAngular,
addAngularWithJWT,
props,
};
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
<template>
<div id="v-pills-angular" class="tab-pane fade" role="tabpanel" aria-labelledby="v-pills-settings-tab">
<GeneratorButtonVue :label="'Generate Angular'" :service="'angular'" :selector-prefix="selectorPrefix" @click.prevent="addAngular" />
<GeneratorButtonVue
:label="'Add Angular with JWT'"
:service="'angular-with-jwt'"
:selector-prefix="selectorPrefix"
@click.prevent="addAngularWithJWT"
/>
</div>
</template>

Expand Down
Loading

0 comments on commit 7df5836

Please sign in to comment.