Add base project
This commit is contained in:
parent
472504e63e
commit
d5706cae4f
|
@ -0,0 +1,18 @@
|
||||||
|
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
|
||||||
|
# For additional information regarding the format and rule options, please see:
|
||||||
|
# https://github.com/browserslist/browserslist#queries
|
||||||
|
|
||||||
|
# For the full list of supported browsers by the Angular framework, please see:
|
||||||
|
# https://angular.io/guide/browser-support
|
||||||
|
|
||||||
|
# You can see what browsers were selected by your queries by running:
|
||||||
|
# npx browserslist
|
||||||
|
|
||||||
|
last 1 Chrome version
|
||||||
|
last 1 Firefox version
|
||||||
|
last 2 Edge major versions
|
||||||
|
last 2 Safari major versions
|
||||||
|
last 2 iOS major versions
|
||||||
|
Firefox ESR
|
||||||
|
not IE 9-10 # Angular support for IE 9-10 has been deprecated and will be removed as of Angular v11. To opt-in, remove the 'not' prefix on this line.
|
||||||
|
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.
|
|
@ -0,0 +1,21 @@
|
||||||
|
version: 2.1
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-test:
|
||||||
|
environment:
|
||||||
|
_JAVA_OPTIONS: '-Dspring.profiles.active=prod'
|
||||||
|
docker:
|
||||||
|
- image: cimg/openjdk:11.0
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Build
|
||||||
|
command: mvn -B -DskipTests clean package -P prod
|
||||||
|
- run:
|
||||||
|
name: Test
|
||||||
|
command: mvn test -P prod
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
datasurvey:
|
||||||
|
jobs:
|
||||||
|
- build-and-test
|
|
@ -0,0 +1,23 @@
|
||||||
|
# EditorConfig helps developers define and maintain consistent
|
||||||
|
# coding styles between different editors and IDEs
|
||||||
|
# editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
|
||||||
|
# We recommend you to keep these unchanged
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
# Change these settings to your own preference
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
[*.{ts,tsx,js,jsx,json,css,scss,yml,html,vue}]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
|
@ -0,0 +1,8 @@
|
||||||
|
node_modules/
|
||||||
|
src/main/docker/
|
||||||
|
jest.conf.js
|
||||||
|
webpack/
|
||||||
|
target/
|
||||||
|
build/
|
||||||
|
node/
|
||||||
|
postcss.config.js
|
|
@ -0,0 +1,98 @@
|
||||||
|
{
|
||||||
|
"parser": "@typescript-eslint/parser",
|
||||||
|
"plugins": ["@angular-eslint/eslint-plugin", "@typescript-eslint"],
|
||||||
|
"extends": [
|
||||||
|
"eslint:recommended",
|
||||||
|
"plugin:@typescript-eslint/recommended",
|
||||||
|
"plugin:@typescript-eslint/recommended-requiring-type-checking",
|
||||||
|
"plugin:@angular-eslint/recommended",
|
||||||
|
"prettier",
|
||||||
|
"eslint-config-prettier"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"browser": true,
|
||||||
|
"es6": true,
|
||||||
|
"commonjs": true
|
||||||
|
},
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaVersion": 2018,
|
||||||
|
"sourceType": "module",
|
||||||
|
"project": "./tsconfig.json"
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"@angular-eslint/component-selector": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"type": "element",
|
||||||
|
"prefix": "jhi",
|
||||||
|
"style": "kebab-case"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@angular-eslint/directive-selector": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"type": "attribute",
|
||||||
|
"prefix": "jhi",
|
||||||
|
"style": "camelCase"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@angular-eslint/relative-url-prefix": "error",
|
||||||
|
"@typescript-eslint/ban-types": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"extendDefaults": true,
|
||||||
|
"types": {
|
||||||
|
"{}": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@typescript-eslint/explicit-function-return-type": ["error", { "allowExpressions": true }],
|
||||||
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
||||||
|
"@typescript-eslint/member-ordering": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"default": [
|
||||||
|
"public-static-field",
|
||||||
|
"protected-static-field",
|
||||||
|
"private-static-field",
|
||||||
|
"public-instance-field",
|
||||||
|
"protected-instance-field",
|
||||||
|
"private-instance-field",
|
||||||
|
"constructor",
|
||||||
|
"public-static-method",
|
||||||
|
"protected-static-method",
|
||||||
|
"private-static-method",
|
||||||
|
"public-instance-method",
|
||||||
|
"protected-instance-method",
|
||||||
|
"private-instance-method"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@typescript-eslint/no-explicit-any": "off",
|
||||||
|
"@typescript-eslint/no-floating-promises": "off",
|
||||||
|
"@typescript-eslint/no-non-null-assertion": "off",
|
||||||
|
"@typescript-eslint/no-parameter-properties": ["warn", { "allows": ["public", "private", "protected"] }],
|
||||||
|
"@typescript-eslint/no-shadow": ["error"],
|
||||||
|
"@typescript-eslint/no-unnecessary-condition": "error",
|
||||||
|
"@typescript-eslint/no-unsafe-assignment": "off",
|
||||||
|
"@typescript-eslint/no-unsafe-call": "off",
|
||||||
|
"@typescript-eslint/no-unsafe-member-access": "off",
|
||||||
|
"@typescript-eslint/prefer-nullish-coalescing": "error",
|
||||||
|
"@typescript-eslint/prefer-optional-chain": "error",
|
||||||
|
"@typescript-eslint/unbound-method": "off",
|
||||||
|
"arrow-body-style": "error",
|
||||||
|
"curly": "error",
|
||||||
|
"eqeqeq": ["error", "always", { "null": "ignore" }],
|
||||||
|
"guard-for-in": "error",
|
||||||
|
"no-bitwise": "error",
|
||||||
|
"no-caller": "error",
|
||||||
|
"no-console": ["error", { "allow": ["warn", "error"] }],
|
||||||
|
"no-eval": "error",
|
||||||
|
"no-labels": "error",
|
||||||
|
"no-new": "error",
|
||||||
|
"no-new-wrappers": "error",
|
||||||
|
"object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }],
|
||||||
|
"radix": "error",
|
||||||
|
"spaced-comment": ["warn", "always"]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,150 @@
|
||||||
|
# This file is inspired by https://github.com/alexkaratarakis/gitattributes
|
||||||
|
#
|
||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
# The above will handle all files NOT found below
|
||||||
|
# These files are text and should be normalized (Convert crlf => lf)
|
||||||
|
|
||||||
|
*.bat text eol=crlf
|
||||||
|
*.cmd text eol=crlf
|
||||||
|
*.ps1 text eol=crlf
|
||||||
|
*.coffee text
|
||||||
|
*.css text
|
||||||
|
*.cql text
|
||||||
|
*.df text
|
||||||
|
*.ejs text
|
||||||
|
*.html text
|
||||||
|
*.java text
|
||||||
|
*.js text
|
||||||
|
*.json text
|
||||||
|
*.less text
|
||||||
|
*.properties text
|
||||||
|
*.sass text
|
||||||
|
*.scss text
|
||||||
|
*.sh text eol=lf
|
||||||
|
*.sql text
|
||||||
|
*.txt text
|
||||||
|
*.ts text
|
||||||
|
*.xml text
|
||||||
|
*.yaml text
|
||||||
|
*.yml text
|
||||||
|
|
||||||
|
# Documents
|
||||||
|
*.doc diff=astextplain
|
||||||
|
*.DOC diff=astextplain
|
||||||
|
*.docx diff=astextplain
|
||||||
|
*.DOCX diff=astextplain
|
||||||
|
*.dot diff=astextplain
|
||||||
|
*.DOT diff=astextplain
|
||||||
|
*.pdf diff=astextplain
|
||||||
|
*.PDF diff=astextplain
|
||||||
|
*.rtf diff=astextplain
|
||||||
|
*.RTF diff=astextplain
|
||||||
|
*.markdown text
|
||||||
|
*.md text
|
||||||
|
*.adoc text
|
||||||
|
*.textile text
|
||||||
|
*.mustache text
|
||||||
|
*.csv text
|
||||||
|
*.tab text
|
||||||
|
*.tsv text
|
||||||
|
*.txt text
|
||||||
|
AUTHORS text
|
||||||
|
CHANGELOG text
|
||||||
|
CHANGES text
|
||||||
|
CONTRIBUTING text
|
||||||
|
COPYING text
|
||||||
|
copyright text
|
||||||
|
*COPYRIGHT* text
|
||||||
|
INSTALL text
|
||||||
|
license text
|
||||||
|
LICENSE text
|
||||||
|
NEWS text
|
||||||
|
readme text
|
||||||
|
*README* text
|
||||||
|
TODO text
|
||||||
|
|
||||||
|
# Graphics
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.jpeg binary
|
||||||
|
*.gif binary
|
||||||
|
*.tif binary
|
||||||
|
*.tiff binary
|
||||||
|
*.ico binary
|
||||||
|
# SVG treated as an asset (binary) by default. If you want to treat it as text,
|
||||||
|
# comment-out the following line and uncomment the line after.
|
||||||
|
*.svg binary
|
||||||
|
#*.svg text
|
||||||
|
*.eps binary
|
||||||
|
|
||||||
|
# These files are binary and should be left untouched
|
||||||
|
# (binary is a macro for -text -diff)
|
||||||
|
*.class binary
|
||||||
|
*.jar binary
|
||||||
|
*.war binary
|
||||||
|
|
||||||
|
## LINTERS
|
||||||
|
.csslintrc text
|
||||||
|
.eslintrc text
|
||||||
|
.jscsrc text
|
||||||
|
.jshintrc text
|
||||||
|
.jshintignore text
|
||||||
|
.stylelintrc text
|
||||||
|
|
||||||
|
## CONFIGS
|
||||||
|
*.conf text
|
||||||
|
*.config text
|
||||||
|
.editorconfig text
|
||||||
|
.gitattributes text
|
||||||
|
.gitconfig text
|
||||||
|
.gitignore text
|
||||||
|
.htaccess text
|
||||||
|
*.npmignore text
|
||||||
|
|
||||||
|
## HEROKU
|
||||||
|
Procfile text
|
||||||
|
.slugignore text
|
||||||
|
|
||||||
|
## AUDIO
|
||||||
|
*.kar binary
|
||||||
|
*.m4a binary
|
||||||
|
*.mid binary
|
||||||
|
*.midi binary
|
||||||
|
*.mp3 binary
|
||||||
|
*.ogg binary
|
||||||
|
*.ra binary
|
||||||
|
|
||||||
|
## VIDEO
|
||||||
|
*.3gpp binary
|
||||||
|
*.3gp binary
|
||||||
|
*.as binary
|
||||||
|
*.asf binary
|
||||||
|
*.asx binary
|
||||||
|
*.fla binary
|
||||||
|
*.flv binary
|
||||||
|
*.m4v binary
|
||||||
|
*.mng binary
|
||||||
|
*.mov binary
|
||||||
|
*.mp4 binary
|
||||||
|
*.mpeg binary
|
||||||
|
*.mpg binary
|
||||||
|
*.swc binary
|
||||||
|
*.swf binary
|
||||||
|
*.webm binary
|
||||||
|
|
||||||
|
## ARCHIVES
|
||||||
|
*.7z binary
|
||||||
|
*.gz binary
|
||||||
|
*.rar binary
|
||||||
|
*.tar binary
|
||||||
|
*.zip binary
|
||||||
|
|
||||||
|
## FONTS
|
||||||
|
*.ttf binary
|
||||||
|
*.eot binary
|
||||||
|
*.otf binary
|
||||||
|
*.woff binary
|
||||||
|
*.woff2 binary
|
|
@ -0,0 +1,159 @@
|
||||||
|
######################
|
||||||
|
# Project Specific
|
||||||
|
######################
|
||||||
|
/src/main/webapp/content/css/main.css
|
||||||
|
/target/classes/static/**
|
||||||
|
/src/test/javascript/coverage/
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Node
|
||||||
|
######################
|
||||||
|
/node/
|
||||||
|
node_tmp/
|
||||||
|
node_modules/
|
||||||
|
npm-debug.log.*
|
||||||
|
/.awcache/*
|
||||||
|
/.cache-loader/*
|
||||||
|
|
||||||
|
######################
|
||||||
|
# SASS
|
||||||
|
######################
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Eclipse
|
||||||
|
######################
|
||||||
|
*.pydevproject
|
||||||
|
.project
|
||||||
|
.metadata
|
||||||
|
tmp/
|
||||||
|
tmp/**/*
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*~.nib
|
||||||
|
local.properties
|
||||||
|
.classpath
|
||||||
|
.settings/
|
||||||
|
.loadpath
|
||||||
|
.factorypath
|
||||||
|
/src/main/resources/rebel.xml
|
||||||
|
|
||||||
|
# External tool builders
|
||||||
|
.externalToolBuilders/**
|
||||||
|
|
||||||
|
# Locally stored "Eclipse launch configurations"
|
||||||
|
*.launch
|
||||||
|
|
||||||
|
# CDT-specific
|
||||||
|
.cproject
|
||||||
|
|
||||||
|
# PDT-specific
|
||||||
|
.buildpath
|
||||||
|
|
||||||
|
# STS-specific
|
||||||
|
/.sts4-cache/*
|
||||||
|
|
||||||
|
######################
|
||||||
|
# IntelliJ
|
||||||
|
######################
|
||||||
|
.idea/
|
||||||
|
*.iml
|
||||||
|
*.iws
|
||||||
|
*.ipr
|
||||||
|
*.ids
|
||||||
|
*.orig
|
||||||
|
classes/
|
||||||
|
out/
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Visual Studio Code
|
||||||
|
######################
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Maven
|
||||||
|
######################
|
||||||
|
/log/
|
||||||
|
/target/
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Gradle
|
||||||
|
######################
|
||||||
|
.gradle/
|
||||||
|
/build/
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Package Files
|
||||||
|
######################
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.ear
|
||||||
|
*.db
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Windows
|
||||||
|
######################
|
||||||
|
# Windows image file caches
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
Desktop.ini
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Mac OSX
|
||||||
|
######################
|
||||||
|
.DS_Store
|
||||||
|
.svn
|
||||||
|
|
||||||
|
# Thumbnails
|
||||||
|
._*
|
||||||
|
|
||||||
|
# Files that might appear on external disk
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Directories
|
||||||
|
######################
|
||||||
|
/bin/
|
||||||
|
/deploy/
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Logs
|
||||||
|
######################
|
||||||
|
*.log*
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Others
|
||||||
|
######################
|
||||||
|
*.class
|
||||||
|
*.*~
|
||||||
|
*~
|
||||||
|
.merge_file*
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Gradle Wrapper
|
||||||
|
######################
|
||||||
|
!gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Maven Wrapper
|
||||||
|
######################
|
||||||
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|
||||||
|
######################
|
||||||
|
# ESLint
|
||||||
|
######################
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
######################
|
||||||
|
# Code coverage
|
||||||
|
######################
|
||||||
|
/coverage/
|
||||||
|
/.nyc_output/
|
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
"name": "Categoria",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "estado",
|
||||||
|
"fieldType": "EstadoCategoria",
|
||||||
|
"fieldValues": "ACTIVE,INACTIVE",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "encuesta",
|
||||||
|
"otherEntityRelationshipName": "categoria",
|
||||||
|
"relationshipName": "encuesta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "plantilla",
|
||||||
|
"otherEntityRelationshipName": "categoria",
|
||||||
|
"relationshipName": "plantilla"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "categoria",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210927"
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
"name": "EPreguntaAbierta",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required", "maxlength", "minlength"],
|
||||||
|
"fieldValidateRulesMaxlength": "500",
|
||||||
|
"fieldValidateRulesMinlength": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "opcional",
|
||||||
|
"fieldType": "Boolean",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "orden",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "ePreguntaAbiertaRespuesta",
|
||||||
|
"otherEntityRelationshipName": "ePreguntaAbierta",
|
||||||
|
"relationshipName": "ePreguntaAbiertaRespuesta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "encuesta",
|
||||||
|
"otherEntityRelationshipName": "ePreguntaAbierta",
|
||||||
|
"relationshipName": "encuesta"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "e_pregunta_abierta",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210922"
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"name": "EPreguntaAbiertaRespuesta",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "respuesta",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "ePreguntaAbierta",
|
||||||
|
"otherEntityRelationshipName": "ePreguntaAbiertaRespuesta",
|
||||||
|
"relationshipName": "ePreguntaAbierta"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "e_pregunta_abierta_respuesta",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210923"
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
"name": "EPreguntaCerrada",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required", "maxlength", "minlength"],
|
||||||
|
"fieldValidateRulesMaxlength": "500",
|
||||||
|
"fieldValidateRulesMinlength": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "tipo",
|
||||||
|
"fieldType": "PreguntaCerradaTipo",
|
||||||
|
"fieldValues": "SINGLE,MULTIPLE",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "opcional",
|
||||||
|
"fieldType": "Boolean",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "orden",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "ePreguntaCerradaOpcion",
|
||||||
|
"otherEntityRelationshipName": "ePreguntaCerrada",
|
||||||
|
"relationshipName": "ePreguntaCerradaOpcion"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "encuesta",
|
||||||
|
"otherEntityRelationshipName": "ePreguntaCerrada",
|
||||||
|
"relationshipName": "encuesta"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "e_pregunta_cerrada",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210924"
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
"name": "EPreguntaCerradaOpcion",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required", "maxlength", "minlength"],
|
||||||
|
"fieldValidateRulesMaxlength": "500",
|
||||||
|
"fieldValidateRulesMinlength": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "orden",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "cantidad",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "ePreguntaCerrada",
|
||||||
|
"otherEntityRelationshipName": "ePreguntaCerradaOpcion",
|
||||||
|
"relationshipName": "ePreguntaCerrada"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "e_pregunta_cerrada_opcion",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210925"
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
{
|
||||||
|
"name": "Encuesta",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required", "maxlength", "minlength"],
|
||||||
|
"fieldValidateRulesMaxlength": "50",
|
||||||
|
"fieldValidateRulesMinlength": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "descripcion",
|
||||||
|
"fieldType": "String"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "fechaCreacion",
|
||||||
|
"fieldType": "ZonedDateTime",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "fechaPublicacion",
|
||||||
|
"fieldType": "ZonedDateTime"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "fechaFinalizar",
|
||||||
|
"fieldType": "ZonedDateTime"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "fechaFinalizada",
|
||||||
|
"fieldType": "ZonedDateTime"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "calificacion",
|
||||||
|
"fieldType": "Double",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "acceso",
|
||||||
|
"fieldType": "AccesoEncuesta",
|
||||||
|
"fieldValues": "PUBLIC,PRIVATE",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "contrasenna",
|
||||||
|
"fieldType": "String"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "estado",
|
||||||
|
"fieldType": "EstadoEncuesta",
|
||||||
|
"fieldValues": "DRAFT,ACTIVE,FINISHED,DELETED",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "usuarioEncuesta",
|
||||||
|
"otherEntityRelationshipName": "encuesta",
|
||||||
|
"relationshipName": "usuarioEncuesta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "ePreguntaAbierta",
|
||||||
|
"otherEntityRelationshipName": "encuesta",
|
||||||
|
"relationshipName": "ePreguntaAbierta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "ePreguntaCerrada",
|
||||||
|
"otherEntityRelationshipName": "encuesta",
|
||||||
|
"relationshipName": "ePreguntaCerrada"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "categoria",
|
||||||
|
"otherEntityRelationshipName": "encuesta",
|
||||||
|
"relationshipName": "categoria",
|
||||||
|
"otherEntityField": "nombre"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "usuarioExtra",
|
||||||
|
"otherEntityRelationshipName": "encuesta",
|
||||||
|
"relationshipName": "usuarioExtra"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "encuesta",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210921"
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
"name": "Factura",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombreUsuario",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "nombrePlantilla",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "costo",
|
||||||
|
"fieldType": "Double",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "fecha",
|
||||||
|
"fieldType": "ZonedDateTime",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [],
|
||||||
|
"entityTableName": "factura",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210928"
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
"name": "PPreguntaAbierta",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required", "maxlength", "minlength"],
|
||||||
|
"fieldValidateRulesMaxlength": "500",
|
||||||
|
"fieldValidateRulesMinlength": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "opcional",
|
||||||
|
"fieldType": "Boolean",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "orden",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "plantilla",
|
||||||
|
"otherEntityRelationshipName": "pPreguntaAbierta",
|
||||||
|
"relationshipName": "plantilla"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "p_pregunta_abierta",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210930"
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
"name": "PPreguntaCerrada",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required", "maxlength", "minlength"],
|
||||||
|
"fieldValidateRulesMaxlength": "500",
|
||||||
|
"fieldValidateRulesMinlength": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "tipo",
|
||||||
|
"fieldType": "PreguntaCerradaTipo",
|
||||||
|
"fieldValues": "SINGLE,MULTIPLE",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "opcional",
|
||||||
|
"fieldType": "Boolean",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "orden",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "pPreguntaCerradaOpcion",
|
||||||
|
"otherEntityRelationshipName": "pPreguntaCerrada",
|
||||||
|
"relationshipName": "pPreguntaCerradaOpcion"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "plantilla",
|
||||||
|
"otherEntityRelationshipName": "pPreguntaCerrada",
|
||||||
|
"relationshipName": "plantilla"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "p_pregunta_cerrada",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210931"
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
"name": "PPreguntaCerradaOpcion",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required", "maxlength", "minlength"],
|
||||||
|
"fieldValidateRulesMaxlength": "500",
|
||||||
|
"fieldValidateRulesMinlength": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "orden",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "pPreguntaCerrada",
|
||||||
|
"otherEntityRelationshipName": "pPreguntaCerradaOpcion",
|
||||||
|
"relationshipName": "pPreguntaCerrada"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "p_pregunta_cerrada_opcion",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210932"
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
"name": "ParametroAplicacion",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "maxDiasEncuesta",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "minDiasEncuesta",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "maxCantidadPreguntas",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "minCantidadPreguntas",
|
||||||
|
"fieldType": "Integer",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [],
|
||||||
|
"entityTableName": "parametro_aplicacion",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210919"
|
||||||
|
}
|
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"name": "Plantilla",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["maxlength", "minlength"],
|
||||||
|
"fieldValidateRulesMaxlength": "50",
|
||||||
|
"fieldValidateRulesMinlength": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "descripcion",
|
||||||
|
"fieldType": "String"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "fechaCreacion",
|
||||||
|
"fieldType": "ZonedDateTime",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "fechaPublicacionTienda",
|
||||||
|
"fieldType": "ZonedDateTime"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "estado",
|
||||||
|
"fieldType": "EstadoPlantilla",
|
||||||
|
"fieldValues": "DRAFT,ACTIVE,DELETED,DISABLED",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "precio",
|
||||||
|
"fieldType": "Double",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "pPreguntaCerrada",
|
||||||
|
"otherEntityRelationshipName": "plantilla",
|
||||||
|
"relationshipName": "pPreguntaCerrada"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "pPreguntaAbierta",
|
||||||
|
"otherEntityRelationshipName": "plantilla",
|
||||||
|
"relationshipName": "pPreguntaAbierta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "categoria",
|
||||||
|
"otherEntityRelationshipName": "plantilla",
|
||||||
|
"relationshipName": "categoria",
|
||||||
|
"otherEntityField": "nombre"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-many",
|
||||||
|
"otherEntityName": "usuarioExtra",
|
||||||
|
"otherEntityRelationshipName": "plantilla",
|
||||||
|
"relationshipName": "usuarioExtra",
|
||||||
|
"ownerSide": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "plantilla",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210929"
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
"name": "UsuarioEncuesta",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "rol",
|
||||||
|
"fieldType": "RolColaborador",
|
||||||
|
"fieldValues": "READ,WRITE",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "estado",
|
||||||
|
"fieldType": "EstadoColaborador",
|
||||||
|
"fieldValues": "PENDING,ACTIVE",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "fechaAgregado",
|
||||||
|
"fieldType": "ZonedDateTime",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "usuarioExtra",
|
||||||
|
"otherEntityRelationshipName": "usuarioEncuesta",
|
||||||
|
"relationshipName": "usuarioExtra"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-one",
|
||||||
|
"otherEntityName": "encuesta",
|
||||||
|
"otherEntityRelationshipName": "usuarioEncuesta",
|
||||||
|
"relationshipName": "encuesta"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "usuario_encuesta",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210926"
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
{
|
||||||
|
"name": "UsuarioExtra",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldName": "nombre",
|
||||||
|
"fieldType": "String",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "iconoPerfil",
|
||||||
|
"fieldType": "String"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "fechaNacimiento",
|
||||||
|
"fieldType": "ZonedDateTime"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldName": "estado",
|
||||||
|
"fieldType": "EstadoUsuario",
|
||||||
|
"fieldValues": "ACTIVE,SUSPENDED",
|
||||||
|
"fieldValidateRules": ["required"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"relationships": [
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-one",
|
||||||
|
"otherEntityName": "user",
|
||||||
|
"otherEntityRelationshipName": "usuarioExtra",
|
||||||
|
"relationshipName": "user",
|
||||||
|
"ownerSide": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "encuesta",
|
||||||
|
"otherEntityRelationshipName": "usuarioExtra",
|
||||||
|
"relationshipName": "encuesta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "one-to-many",
|
||||||
|
"otherEntityName": "usuarioEncuesta",
|
||||||
|
"otherEntityRelationshipName": "usuarioExtra",
|
||||||
|
"relationshipName": "usuarioEncuesta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"relationshipType": "many-to-many",
|
||||||
|
"otherEntityName": "plantilla",
|
||||||
|
"otherEntityRelationshipName": "usuarioExtra",
|
||||||
|
"relationshipName": "plantilla",
|
||||||
|
"ownerSide": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityTableName": "usuario_extra",
|
||||||
|
"dto": "no",
|
||||||
|
"pagination": "no",
|
||||||
|
"service": "serviceClass",
|
||||||
|
"jpaMetamodelFiltering": true,
|
||||||
|
"fluentMethods": true,
|
||||||
|
"readOnly": false,
|
||||||
|
"embedded": false,
|
||||||
|
"applications": "*",
|
||||||
|
"changelogDate": "20210703210920"
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
module.exports = {
|
||||||
|
'{,src/**/,webpack/}*.{md,json,yml,html,js,ts,tsx,css,scss,java}': ['prettier --write'],
|
||||||
|
};
|
|
@ -0,0 +1,117 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2007-present the original author or authors.
|
||||||
|
*
|
||||||
|
* 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 java.net.*;
|
||||||
|
import java.io.*;
|
||||||
|
import java.nio.channels.*;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
public class MavenWrapperDownloader {
|
||||||
|
|
||||||
|
private static final String WRAPPER_VERSION = "0.5.6";
|
||||||
|
/**
|
||||||
|
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
|
||||||
|
*/
|
||||||
|
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
|
||||||
|
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
|
||||||
|
* use instead of the default one.
|
||||||
|
*/
|
||||||
|
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
|
||||||
|
".mvn/wrapper/maven-wrapper.properties";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Path where the maven-wrapper.jar will be saved to.
|
||||||
|
*/
|
||||||
|
private static final String MAVEN_WRAPPER_JAR_PATH =
|
||||||
|
".mvn/wrapper/maven-wrapper.jar";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name of the property which should be used to override the default download url for the wrapper.
|
||||||
|
*/
|
||||||
|
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
|
||||||
|
|
||||||
|
public static void main(String args[]) {
|
||||||
|
System.out.println("- Downloader started");
|
||||||
|
File baseDirectory = new File(args[0]);
|
||||||
|
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
|
||||||
|
|
||||||
|
// If the maven-wrapper.properties exists, read it and check if it contains a custom
|
||||||
|
// wrapperUrl parameter.
|
||||||
|
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
|
||||||
|
String url = DEFAULT_DOWNLOAD_URL;
|
||||||
|
if(mavenWrapperPropertyFile.exists()) {
|
||||||
|
FileInputStream mavenWrapperPropertyFileInputStream = null;
|
||||||
|
try {
|
||||||
|
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
|
||||||
|
Properties mavenWrapperProperties = new Properties();
|
||||||
|
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
|
||||||
|
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if(mavenWrapperPropertyFileInputStream != null) {
|
||||||
|
mavenWrapperPropertyFileInputStream.close();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
// Ignore ...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("- Downloading from: " + url);
|
||||||
|
|
||||||
|
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
|
||||||
|
if(!outputFile.getParentFile().exists()) {
|
||||||
|
if(!outputFile.getParentFile().mkdirs()) {
|
||||||
|
System.out.println(
|
||||||
|
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
|
||||||
|
try {
|
||||||
|
downloadFileFromURL(url, outputFile);
|
||||||
|
System.out.println("Done");
|
||||||
|
System.exit(0);
|
||||||
|
} catch (Throwable e) {
|
||||||
|
System.out.println("- Error downloading");
|
||||||
|
e.printStackTrace();
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
|
||||||
|
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
|
||||||
|
String username = System.getenv("MVNW_USERNAME");
|
||||||
|
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
|
||||||
|
Authenticator.setDefault(new Authenticator() {
|
||||||
|
@Override
|
||||||
|
protected PasswordAuthentication getPasswordAuthentication() {
|
||||||
|
return new PasswordAuthentication(username, password);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
URL website = new URL(urlString);
|
||||||
|
ReadableByteChannel rbc;
|
||||||
|
rbc = Channels.newChannel(website.openStream());
|
||||||
|
FileOutputStream fos = new FileOutputStream(destination);
|
||||||
|
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
|
||||||
|
fos.close();
|
||||||
|
rbc.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip
|
||||||
|
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
|
|
@ -0,0 +1,8 @@
|
||||||
|
node_modules
|
||||||
|
target
|
||||||
|
build
|
||||||
|
package-lock.json
|
||||||
|
.git
|
||||||
|
.mvn
|
||||||
|
gradle
|
||||||
|
.gradle
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Prettier configuration
|
||||||
|
|
||||||
|
printWidth: 140
|
||||||
|
singleQuote: true
|
||||||
|
tabWidth: 2
|
||||||
|
useTabs: false
|
||||||
|
|
||||||
|
# js and ts rules:
|
||||||
|
arrowParens: avoid
|
||||||
|
|
||||||
|
# jsx and tsx rules:
|
||||||
|
jsxBracketSameLine: false
|
||||||
|
|
||||||
|
# java rules:
|
||||||
|
overrides:
|
||||||
|
- files: "*.java"
|
||||||
|
options:
|
||||||
|
tabWidth: 4
|
|
@ -0,0 +1,65 @@
|
||||||
|
{
|
||||||
|
"generator-jhipster": {
|
||||||
|
"applicationType": "monolith",
|
||||||
|
"gitCompany": "",
|
||||||
|
"baseName": "DataSurvey",
|
||||||
|
"packageName": "org.datasurvey",
|
||||||
|
"packageFolder": "org/datasurvey",
|
||||||
|
"serverPort": 8080,
|
||||||
|
"serviceDiscoveryType": false,
|
||||||
|
"authenticationType": "jwt",
|
||||||
|
"cacheProvider": "ehcache",
|
||||||
|
"enableHibernateCache": true,
|
||||||
|
"websocket": "spring-websocket",
|
||||||
|
"databaseType": "sql",
|
||||||
|
"devDatabaseType": "mysql",
|
||||||
|
"prodDatabaseType": "mysql",
|
||||||
|
"searchEngine": false,
|
||||||
|
"enableSwaggerCodegen": false,
|
||||||
|
"messageBroker": false,
|
||||||
|
"buildTool": "maven",
|
||||||
|
"useSass": true,
|
||||||
|
"clientPackageManager": "npm",
|
||||||
|
"testFrameworks": [],
|
||||||
|
"enableTranslation": true,
|
||||||
|
"nativeLanguage": "es",
|
||||||
|
"languages": ["es"],
|
||||||
|
"clientFramework": "angularX",
|
||||||
|
"jhiPrefix": "jhi",
|
||||||
|
"withAdminUi": true,
|
||||||
|
"jhipsterVersion": "7.1.0",
|
||||||
|
"skipClient": false,
|
||||||
|
"skipServer": false,
|
||||||
|
"skipUserManagement": false,
|
||||||
|
"skipCheckLengthOfIdentifier": false,
|
||||||
|
"skipFakeData": false,
|
||||||
|
"entitySuffix": "",
|
||||||
|
"dtoSuffix": "DTO",
|
||||||
|
"blueprints": [],
|
||||||
|
"otherModules": [],
|
||||||
|
"pages": [],
|
||||||
|
"creationTimestamp": 1624822968886,
|
||||||
|
"jwtSecretKey": "ZjRmZGRhNzFhNDI5OTRmYjkzZmQ0NzI5Yzc3YTYyODBkMjFjZGY1OWMwNzY5YTJkOTA1ZDY3YzE1MWEwMGRkYzg4ZTNlOGUwNTAzMzdiMWVjNDA4NjFiY2JhNTNhYzhkZjQ3N2MyMmY5YzA5ZTFiNzIzMjJjMTg4MmFlNTUyOTY=",
|
||||||
|
"devServerPort": 4200,
|
||||||
|
"clientTheme": "none",
|
||||||
|
"clientThemeVariant": "",
|
||||||
|
"reactive": false,
|
||||||
|
"entities": [
|
||||||
|
"ParametroAplicacion",
|
||||||
|
"UsuarioExtra",
|
||||||
|
"Encuesta",
|
||||||
|
"EPreguntaAbierta",
|
||||||
|
"EPreguntaAbiertaRespuesta",
|
||||||
|
"EPreguntaCerrada",
|
||||||
|
"EPreguntaCerradaOpcion",
|
||||||
|
"UsuarioEncuesta",
|
||||||
|
"Categoria",
|
||||||
|
"Factura",
|
||||||
|
"Plantilla",
|
||||||
|
"PPreguntaAbierta",
|
||||||
|
"PPreguntaCerrada",
|
||||||
|
"PPreguntaCerradaOpcion"
|
||||||
|
],
|
||||||
|
"lastLiquibaseTimestamp": 1625346572000
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
web: java $JAVA_OPTS -Xmx256m -jar target/*.jar --spring.profiles.active=prod --server.port=$PORT
|
|
@ -0,0 +1,217 @@
|
||||||
|
# DataSurvey
|
||||||
|
|
||||||
|
This application was generated using JHipster 7.1.0, you can find documentation and help at [https://www.jhipster.tech/documentation-archive/v7.1.0](https://www.jhipster.tech/documentation-archive/v7.1.0).
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
Before you can build this project, you must install and configure the following dependencies on your machine:
|
||||||
|
|
||||||
|
1. [Node.js][]: We use Node to run a development web server and build the project.
|
||||||
|
Depending on your system, you can install Node either from source or as a pre-packaged bundle.
|
||||||
|
|
||||||
|
After installing Node, you should be able to run the following command to install development tools.
|
||||||
|
You will only need to run this command when dependencies change in [package.json](package.json).
|
||||||
|
|
||||||
|
```
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
We use npm scripts and [Angular CLI][] with [Webpack][] as our build system.
|
||||||
|
|
||||||
|
Run the following commands in two separate terminals to create a blissful development experience where your browser
|
||||||
|
auto-refreshes when files change on your hard drive.
|
||||||
|
|
||||||
|
```
|
||||||
|
./mvnw
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
Npm is also used to manage CSS and JavaScript dependencies used in this application. You can upgrade dependencies by
|
||||||
|
specifying a newer version in [package.json](package.json). You can also run `npm update` and `npm install` to manage dependencies.
|
||||||
|
Add the `help` flag on any command to see how you can use it. For example, `npm help update`.
|
||||||
|
|
||||||
|
The `npm run` command will list all of the scripts available to run for this project.
|
||||||
|
|
||||||
|
### PWA Support
|
||||||
|
|
||||||
|
JHipster ships with PWA (Progressive Web App) support, and it's turned off by default. One of the main components of a PWA is a service worker.
|
||||||
|
|
||||||
|
The service worker initialization code is disabled by default. To enable it, uncomment the following code in `src/main/webapp/app/app.module.ts`:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
|
||||||
|
```
|
||||||
|
|
||||||
|
### Managing dependencies
|
||||||
|
|
||||||
|
For example, to add [Leaflet][] library as a runtime dependency of your application, you would run following command:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm install --save --save-exact leaflet
|
||||||
|
```
|
||||||
|
|
||||||
|
To benefit from TypeScript type definitions from [DefinitelyTyped][] repository in development, you would run following command:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm install --save-dev --save-exact @types/leaflet
|
||||||
|
```
|
||||||
|
|
||||||
|
Then you would import the JS and CSS files specified in library's installation instructions so that [Webpack][] knows about them:
|
||||||
|
Edit [src/main/webapp/app/app.module.ts](src/main/webapp/app/app.module.ts) file:
|
||||||
|
|
||||||
|
```
|
||||||
|
import 'leaflet/dist/leaflet.js';
|
||||||
|
```
|
||||||
|
|
||||||
|
Edit [src/main/webapp/content/scss/vendor.scss](src/main/webapp/content/scss/vendor.scss) file:
|
||||||
|
|
||||||
|
```
|
||||||
|
@import '~leaflet/dist/leaflet.css';
|
||||||
|
```
|
||||||
|
|
||||||
|
Note: There are still a few other things remaining to do for Leaflet that we won't detail here.
|
||||||
|
|
||||||
|
For further instructions on how to develop with JHipster, have a look at [Using JHipster in development][].
|
||||||
|
|
||||||
|
### Using Angular CLI
|
||||||
|
|
||||||
|
You can also use [Angular CLI][] to generate some custom client code.
|
||||||
|
|
||||||
|
For example, the following command:
|
||||||
|
|
||||||
|
```
|
||||||
|
ng generate component my-component
|
||||||
|
```
|
||||||
|
|
||||||
|
will generate few files:
|
||||||
|
|
||||||
|
```
|
||||||
|
create src/main/webapp/app/my-component/my-component.component.html
|
||||||
|
create src/main/webapp/app/my-component/my-component.component.ts
|
||||||
|
update src/main/webapp/app/app.module.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building for production
|
||||||
|
|
||||||
|
### Packaging as jar
|
||||||
|
|
||||||
|
To build the final jar and optimize the DataSurvey application for production, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
./mvnw -Pprod clean verify
|
||||||
|
```
|
||||||
|
|
||||||
|
This will concatenate and minify the client CSS and JavaScript files. It will also modify `index.html` so it references these new files.
|
||||||
|
To ensure everything worked, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
java -jar target/*.jar
|
||||||
|
```
|
||||||
|
|
||||||
|
Then navigate to [http://localhost:8080](http://localhost:8080) in your browser.
|
||||||
|
|
||||||
|
Refer to [Using JHipster in production][] for more details.
|
||||||
|
|
||||||
|
### Packaging as war
|
||||||
|
|
||||||
|
To package your application as a war in order to deploy it to an application server, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
./mvnw -Pprod,war clean verify
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
To launch your application's tests, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
./mvnw verify
|
||||||
|
```
|
||||||
|
|
||||||
|
### Client tests
|
||||||
|
|
||||||
|
Unit tests are run by [Jest][]. They're located in [src/test/javascript/](src/test/javascript/) and can be run with:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
For more information, refer to the [Running tests page][].
|
||||||
|
|
||||||
|
### Code quality
|
||||||
|
|
||||||
|
Sonar is used to analyse code quality. You can start a local Sonar server (accessible on http://localhost:9001) with:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose -f src/main/docker/sonar.yml up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Note: we have turned off authentication in [src/main/docker/sonar.yml](src/main/docker/sonar.yml) for out of the box experience while trying out SonarQube, for real use cases turn it back on.
|
||||||
|
|
||||||
|
You can run a Sonar analysis with using the [sonar-scanner](https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner) or by using the maven plugin.
|
||||||
|
|
||||||
|
Then, run a Sonar analysis:
|
||||||
|
|
||||||
|
```
|
||||||
|
./mvnw -Pprod clean verify sonar:sonar
|
||||||
|
```
|
||||||
|
|
||||||
|
If you need to re-run the Sonar phase, please be sure to specify at least the `initialize` phase since Sonar properties are loaded from the sonar-project.properties file.
|
||||||
|
|
||||||
|
```
|
||||||
|
./mvnw initialize sonar:sonar
|
||||||
|
```
|
||||||
|
|
||||||
|
For more information, refer to the [Code quality page][].
|
||||||
|
|
||||||
|
## Using Docker to simplify development (optional)
|
||||||
|
|
||||||
|
You can use Docker to improve your JHipster development experience. A number of docker-compose configuration are available in the [src/main/docker](src/main/docker) folder to launch required third party services.
|
||||||
|
|
||||||
|
For example, to start a mysql database in a docker container, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose -f src/main/docker/mysql.yml up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
To stop it and remove the container, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose -f src/main/docker/mysql.yml down
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also fully dockerize your application and all the services that it depends on.
|
||||||
|
To achieve this, first build a docker image of your app by running:
|
||||||
|
|
||||||
|
```
|
||||||
|
./mvnw -Pprod verify jib:dockerBuild
|
||||||
|
```
|
||||||
|
|
||||||
|
Then run:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose -f src/main/docker/app.yml up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
For more information refer to [Using Docker and Docker-Compose][], this page also contains information on the docker-compose sub-generator (`jhipster docker-compose`), which is able to generate docker configurations for one or several JHipster applications.
|
||||||
|
|
||||||
|
## Continuous Integration (optional)
|
||||||
|
|
||||||
|
To configure CI for your project, run the ci-cd sub-generator (`jhipster ci-cd`), this will let you generate configuration files for a number of Continuous Integration systems. Consult the [Setting up Continuous Integration][] page for more information.
|
||||||
|
|
||||||
|
[jhipster homepage and latest documentation]: https://www.jhipster.tech
|
||||||
|
[jhipster 7.1.0 archive]: https://www.jhipster.tech/documentation-archive/v7.1.0
|
||||||
|
[using jhipster in development]: https://www.jhipster.tech/documentation-archive/v7.1.0/development/
|
||||||
|
[using docker and docker-compose]: https://www.jhipster.tech/documentation-archive/v7.1.0/docker-compose
|
||||||
|
[using jhipster in production]: https://www.jhipster.tech/documentation-archive/v7.1.0/production/
|
||||||
|
[running tests page]: https://www.jhipster.tech/documentation-archive/v7.1.0/running-tests/
|
||||||
|
[code quality page]: https://www.jhipster.tech/documentation-archive/v7.1.0/code-quality/
|
||||||
|
[setting up continuous integration]: https://www.jhipster.tech/documentation-archive/v7.1.0/setting-up-ci/
|
||||||
|
[node.js]: https://nodejs.org/
|
||||||
|
[webpack]: https://webpack.github.io/
|
||||||
|
[angular cli]: https://cli.angular.io/
|
||||||
|
[browsersync]: https://www.browsersync.io/
|
||||||
|
[jest]: https://facebook.github.io/jest/
|
||||||
|
[jasmine]: https://jasmine.github.io/2.0/introduction.html
|
||||||
|
[leaflet]: https://leafletjs.com/
|
||||||
|
[definitelytyped]: https://definitelytyped.org/
|
|
@ -0,0 +1,114 @@
|
||||||
|
{
|
||||||
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
||||||
|
"version": 1,
|
||||||
|
"newProjectRoot": "projects",
|
||||||
|
"projects": {
|
||||||
|
"data-survey": {
|
||||||
|
"projectType": "application",
|
||||||
|
"schematics": {
|
||||||
|
"@schematics/angular:component": {
|
||||||
|
"style": "scss"
|
||||||
|
},
|
||||||
|
"@schematics/angular:application": {
|
||||||
|
"strict": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "",
|
||||||
|
"sourceRoot": "src/main/webapp",
|
||||||
|
"prefix": "jhi",
|
||||||
|
"architect": {
|
||||||
|
"build": {
|
||||||
|
"builder": "@angular-builders/custom-webpack:browser",
|
||||||
|
"options": {
|
||||||
|
"customWebpackConfig": {
|
||||||
|
"path": "./webpack/webpack.custom.js"
|
||||||
|
},
|
||||||
|
"outputPath": "target/classes/static/",
|
||||||
|
"index": "src/main/webapp/index.html",
|
||||||
|
"main": "src/main/webapp/main.ts",
|
||||||
|
"polyfills": "src/main/webapp/polyfills.ts",
|
||||||
|
"tsConfig": "tsconfig.app.json",
|
||||||
|
"inlineStyleLanguage": "scss",
|
||||||
|
"assets": [
|
||||||
|
"src/main/webapp/content",
|
||||||
|
"src/main/webapp/favicon.ico",
|
||||||
|
"src/main/webapp/manifest.webapp",
|
||||||
|
"src/main/webapp/robots.txt",
|
||||||
|
{
|
||||||
|
"glob": "*.{js,css,html,png}",
|
||||||
|
"input": "./node_modules/swagger-ui-dist",
|
||||||
|
"output": "swagger-ui",
|
||||||
|
"ignore": ["**/index.html"]
|
||||||
|
},
|
||||||
|
{ "glob": "axios.min.js", "input": "./node_modules/axios/dist", "output": "swagger-ui" },
|
||||||
|
{ "glob": "**/*", "input": "src/main/webapp/swagger-ui/", "output": "swagger-ui" }
|
||||||
|
],
|
||||||
|
"styles": ["src/main/webapp/content/scss/vendor.scss", "src/main/webapp/content/scss/global.scss"],
|
||||||
|
"scripts": []
|
||||||
|
},
|
||||||
|
"configurations": {
|
||||||
|
"production": {
|
||||||
|
"optimization": true,
|
||||||
|
"outputHashing": "all",
|
||||||
|
"sourceMap": false,
|
||||||
|
"namedChunks": false,
|
||||||
|
"extractLicenses": true,
|
||||||
|
"vendorChunk": false,
|
||||||
|
"buildOptimizer": true,
|
||||||
|
"serviceWorker": true,
|
||||||
|
"ngswConfigPath": "ngsw-config.json",
|
||||||
|
"budgets": [
|
||||||
|
{
|
||||||
|
"type": "initial",
|
||||||
|
"maximumWarning": "500kb",
|
||||||
|
"maximumError": "1mb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "anyComponentStyle",
|
||||||
|
"maximumWarning": "2kb",
|
||||||
|
"maximumError": "4kb"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"development": {
|
||||||
|
"buildOptimizer": false,
|
||||||
|
"optimization": false,
|
||||||
|
"vendorChunk": true,
|
||||||
|
"extractLicenses": false,
|
||||||
|
"sourceMap": true,
|
||||||
|
"namedChunks": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultConfiguration": "production"
|
||||||
|
},
|
||||||
|
"serve": {
|
||||||
|
"builder": "@angular-builders/custom-webpack:dev-server",
|
||||||
|
"options": {
|
||||||
|
"browserTarget": "data-survey:build:development",
|
||||||
|
"proxyConfig": "./webpack/proxy.conf.js",
|
||||||
|
"port": 4200
|
||||||
|
},
|
||||||
|
"configurations": {
|
||||||
|
"production": {
|
||||||
|
"browserTarget": "data-survey:build:production"
|
||||||
|
},
|
||||||
|
"development": {
|
||||||
|
"browserTarget": "data-survey:build:development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultConfiguration": "development"
|
||||||
|
},
|
||||||
|
"test": {
|
||||||
|
"builder": "@angular-builders/jest:run",
|
||||||
|
"options": {
|
||||||
|
"configPath": "jest.conf.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultProject": "data-survey",
|
||||||
|
"cli": {
|
||||||
|
"packageManager": "npm"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
||||||
|
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
||||||
|
<module name="Checker">
|
||||||
|
|
||||||
|
<!-- Configure checker to use UTF-8 encoding -->
|
||||||
|
<property name="charset" value="UTF-8"/>
|
||||||
|
<!-- Configure checker to run on files with these extensions -->
|
||||||
|
<property name="fileExtensions" value=""/>
|
||||||
|
<!-- For detailed checkstyle configuration, see https://github.com/spring-io/nohttp/tree/master/nohttp-checkstyle -->
|
||||||
|
<module name="io.spring.nohttp.checkstyle.check.NoHttpCheck">
|
||||||
|
<property name="allowlist" value="^\Qhttp://maven.apache.org/POM/4.0.0 ^\Qhttp://www.w3.org/2001/XMLSchema-instance"/>
|
||||||
|
</module>
|
||||||
|
<!-- Allow suppression with comments
|
||||||
|
// CHECKSTYLE:OFF
|
||||||
|
... ignored content ...
|
||||||
|
// CHECKSTYLE:ON
|
||||||
|
-->
|
||||||
|
<module name="SuppressWithPlainTextCommentFilter"/>
|
||||||
|
</module>
|
|
@ -0,0 +1,196 @@
|
||||||
|
|
||||||
|
|
||||||
|
DEFAULT_MIN_LENGTH = 1
|
||||||
|
DEFAULT_MAX_LENGTH = 999
|
||||||
|
|
||||||
|
ENCUESTA_MAX_NOMBRE = 50
|
||||||
|
ENCUESTA_MIN_NOMBRE = 1
|
||||||
|
PREGUNTA_MAX_NOMBRE = 500
|
||||||
|
PREGUNTA_MIN_NOMBRE = 1
|
||||||
|
|
||||||
|
// ENUMS
|
||||||
|
enum EstadoUsuario {
|
||||||
|
ACTIVE, SUSPENDED
|
||||||
|
}
|
||||||
|
|
||||||
|
enum PreguntaCerradaTipo {
|
||||||
|
SINGLE, MULTIPLE
|
||||||
|
}
|
||||||
|
|
||||||
|
enum EstadoEncuesta {
|
||||||
|
DRAFT, ACTIVE, FINISHED, DELETED
|
||||||
|
}
|
||||||
|
|
||||||
|
enum EstadoPlantilla {
|
||||||
|
DRAFT, ACTIVE, DELETED, DISABLED
|
||||||
|
}
|
||||||
|
|
||||||
|
enum RolColaborador {
|
||||||
|
READ, WRITE
|
||||||
|
}
|
||||||
|
|
||||||
|
enum EstadoColaborador {
|
||||||
|
PENDING, ACTIVE
|
||||||
|
}
|
||||||
|
|
||||||
|
enum EstadoCategoria {
|
||||||
|
ACTIVE, INACTIVE
|
||||||
|
}
|
||||||
|
|
||||||
|
enum AccesoEncuesta {
|
||||||
|
PUBLIC, PRIVATE
|
||||||
|
}
|
||||||
|
|
||||||
|
// ENTITIES
|
||||||
|
entity ParametroAplicacion {
|
||||||
|
maxDiasEncuesta Integer required,
|
||||||
|
minDiasEncuesta Integer required,
|
||||||
|
maxCantidadPreguntas Integer required,
|
||||||
|
minCantidadPreguntas Integer required
|
||||||
|
}
|
||||||
|
|
||||||
|
entity UsuarioExtra {
|
||||||
|
nombre String required,
|
||||||
|
iconoPerfil String,
|
||||||
|
fechaNacimiento ZonedDateTime,
|
||||||
|
estado EstadoUsuario required,
|
||||||
|
// JHI_USER
|
||||||
|
}
|
||||||
|
|
||||||
|
// ENCUESTA
|
||||||
|
entity Encuesta {
|
||||||
|
nombre String required maxlength(ENCUESTA_MAX_NOMBRE) minlength(ENCUESTA_MIN_NOMBRE),
|
||||||
|
descripcion String,
|
||||||
|
fechaCreacion ZonedDateTime required,
|
||||||
|
fechaPublicacion ZonedDateTime,
|
||||||
|
fechaFinalizar ZonedDateTime,
|
||||||
|
fechaFinalizada ZonedDateTime,
|
||||||
|
calificacion Double required,
|
||||||
|
acceso AccesoEncuesta required,
|
||||||
|
contrasenna String,
|
||||||
|
estado EstadoEncuesta required
|
||||||
|
// ID_CATEGORIA
|
||||||
|
}
|
||||||
|
|
||||||
|
entity EPreguntaAbierta {
|
||||||
|
nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE),
|
||||||
|
opcional Boolean required,
|
||||||
|
orden Integer required
|
||||||
|
// ID_ENCUESTA
|
||||||
|
}
|
||||||
|
|
||||||
|
entity EPreguntaAbiertaRespuesta {
|
||||||
|
respuesta String required
|
||||||
|
// ID_ENCUESTA_PREGUNTA_ABIERTA
|
||||||
|
}
|
||||||
|
|
||||||
|
entity EPreguntaCerrada {
|
||||||
|
nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE),
|
||||||
|
tipo PreguntaCerradaTipo required
|
||||||
|
opcional Boolean required,
|
||||||
|
orden Integer required
|
||||||
|
// ID_ENCUESTA
|
||||||
|
}
|
||||||
|
|
||||||
|
entity EPreguntaCerradaOpcion {
|
||||||
|
nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE),
|
||||||
|
orden Integer required,
|
||||||
|
cantidad Integer required
|
||||||
|
// ID_ENCUESTA_PREGUNTA_CERRADA
|
||||||
|
}
|
||||||
|
|
||||||
|
entity UsuarioEncuesta {
|
||||||
|
rol RolColaborador required,
|
||||||
|
estado EstadoColaborador required,
|
||||||
|
fechaAgregado ZonedDateTime required
|
||||||
|
}
|
||||||
|
// -----------------------------------------
|
||||||
|
|
||||||
|
entity Categoria {
|
||||||
|
nombre String required
|
||||||
|
estado EstadoCategoria required
|
||||||
|
}
|
||||||
|
|
||||||
|
entity Factura {
|
||||||
|
nombreUsuario String required,
|
||||||
|
nombrePlantilla String required,
|
||||||
|
costo Double required,
|
||||||
|
fecha ZonedDateTime required,
|
||||||
|
// ID_USUARIO_EXTRA
|
||||||
|
}
|
||||||
|
|
||||||
|
// PLANTILLAS
|
||||||
|
entity Plantilla {
|
||||||
|
nombre String maxlength(ENCUESTA_MAX_NOMBRE) minlength(ENCUESTA_MIN_NOMBRE),
|
||||||
|
descripcion String,
|
||||||
|
fechaCreacion ZonedDateTime required,
|
||||||
|
fechaPublicacionTienda ZonedDateTime,
|
||||||
|
estado EstadoPlantilla required,
|
||||||
|
precio Double required
|
||||||
|
// ID_CATEGORIA
|
||||||
|
}
|
||||||
|
|
||||||
|
entity PPreguntaAbierta {
|
||||||
|
nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE),
|
||||||
|
opcional Boolean required,
|
||||||
|
orden Integer required
|
||||||
|
// ID_PLANTILLA
|
||||||
|
}
|
||||||
|
|
||||||
|
entity PPreguntaCerrada {
|
||||||
|
nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE),
|
||||||
|
tipo PreguntaCerradaTipo required,
|
||||||
|
opcional Boolean required,
|
||||||
|
orden Integer required
|
||||||
|
// ID_PLANTILLA
|
||||||
|
}
|
||||||
|
|
||||||
|
entity PPreguntaCerradaOpcion {
|
||||||
|
nombre String required maxlength(PREGUNTA_MAX_NOMBRE) minlength(PREGUNTA_MIN_NOMBRE),
|
||||||
|
orden Integer required
|
||||||
|
// ID_PLANTILLA_PREGUNTA_CERRADA
|
||||||
|
}
|
||||||
|
// -----------------------------------------
|
||||||
|
|
||||||
|
// Filters
|
||||||
|
filter ParametroAplicacion, UsuarioExtra, Encuesta, EPreguntaAbierta, EPreguntaAbiertaRespuesta
|
||||||
|
filter EPreguntaCerrada, EPreguntaCerradaOpcion, UsuarioEncuesta, Categoria, Factura
|
||||||
|
filter Plantilla, PPreguntaAbierta, PPreguntaCerrada, PPreguntaCerradaOpcion
|
||||||
|
|
||||||
|
// Relationship between UsuarioExtra and default User table to extend fields
|
||||||
|
relationship OneToOne {
|
||||||
|
UsuarioExtra to User
|
||||||
|
}
|
||||||
|
|
||||||
|
// UsuarioExtra
|
||||||
|
relationship OneToMany {
|
||||||
|
Categoria to Encuesta{categoria(nombre)}
|
||||||
|
Categoria to Plantilla{categoria(nombre)}
|
||||||
|
|
||||||
|
// Encuesta
|
||||||
|
UsuarioExtra to Encuesta
|
||||||
|
UsuarioExtra to UsuarioEncuesta
|
||||||
|
Encuesta to UsuarioEncuesta
|
||||||
|
|
||||||
|
Encuesta to EPreguntaAbierta
|
||||||
|
Encuesta to EPreguntaCerrada
|
||||||
|
|
||||||
|
EPreguntaAbierta to EPreguntaAbiertaRespuesta
|
||||||
|
EPreguntaCerrada to EPreguntaCerradaOpcion
|
||||||
|
|
||||||
|
// Plantilla
|
||||||
|
Plantilla to PPreguntaCerrada
|
||||||
|
Plantilla to PPreguntaAbierta
|
||||||
|
|
||||||
|
PPreguntaCerrada to PPreguntaCerradaOpcion
|
||||||
|
}
|
||||||
|
|
||||||
|
relationship ManyToMany {
|
||||||
|
UsuarioExtra to Plantilla
|
||||||
|
}
|
||||||
|
// -----------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
const { pathsToModuleNameMapper } = require('ts-jest/utils');
|
||||||
|
|
||||||
|
const {
|
||||||
|
compilerOptions: { paths = {}, baseUrl = './' },
|
||||||
|
} = require('./tsconfig.json');
|
||||||
|
const environment = require('./webpack/environment');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
globals: {
|
||||||
|
...environment,
|
||||||
|
},
|
||||||
|
roots: ['<rootDir>', `<rootDir>/${baseUrl}`],
|
||||||
|
modulePaths: [`<rootDir>/${baseUrl}`],
|
||||||
|
setupFiles: ['jest-date-mock'],
|
||||||
|
cacheDirectory: '<rootDir>/target/jest-cache',
|
||||||
|
coverageDirectory: '<rootDir>/target/test-results/',
|
||||||
|
moduleNameMapper: pathsToModuleNameMapper(paths, { prefix: `<rootDir>/${baseUrl}/` }),
|
||||||
|
reporters: ['default', ['jest-junit', { outputDirectory: '<rootDir>/target/test-results/', outputName: 'TESTS-results-jest.xml' }]],
|
||||||
|
testResultsProcessor: 'jest-sonar-reporter',
|
||||||
|
testMatch: ['<rootDir>/src/main/webapp/app/**/@(*.)@(spec.ts)'],
|
||||||
|
testURL: 'http://localhost/',
|
||||||
|
};
|
|
@ -0,0 +1,310 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you 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.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Maven Start Up Batch script
|
||||||
|
#
|
||||||
|
# Required ENV vars:
|
||||||
|
# ------------------
|
||||||
|
# JAVA_HOME - location of a JDK home dir
|
||||||
|
#
|
||||||
|
# Optional ENV vars
|
||||||
|
# -----------------
|
||||||
|
# M2_HOME - location of maven2's installed home dir
|
||||||
|
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||||
|
# e.g. to debug Maven itself, use
|
||||||
|
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||||
|
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
if [ -z "$MAVEN_SKIP_RC" ] ; then
|
||||||
|
|
||||||
|
if [ -f /etc/mavenrc ] ; then
|
||||||
|
. /etc/mavenrc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$HOME/.mavenrc" ] ; then
|
||||||
|
. "$HOME/.mavenrc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# OS specific support. $var _must_ be set to either true or false.
|
||||||
|
cygwin=false;
|
||||||
|
darwin=false;
|
||||||
|
mingw=false
|
||||||
|
case "`uname`" in
|
||||||
|
CYGWIN*) cygwin=true ;;
|
||||||
|
MINGW*) mingw=true;;
|
||||||
|
Darwin*) darwin=true
|
||||||
|
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
|
||||||
|
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
|
||||||
|
if [ -z "$JAVA_HOME" ]; then
|
||||||
|
if [ -x "/usr/libexec/java_home" ]; then
|
||||||
|
export JAVA_HOME="`/usr/libexec/java_home`"
|
||||||
|
else
|
||||||
|
export JAVA_HOME="/Library/Java/Home"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$JAVA_HOME" ] ; then
|
||||||
|
if [ -r /etc/gentoo-release ] ; then
|
||||||
|
JAVA_HOME=`java-config --jre-home`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$M2_HOME" ] ; then
|
||||||
|
## resolve links - $0 may be a link to maven's home
|
||||||
|
PRG="$0"
|
||||||
|
|
||||||
|
# need this for relative symlinks
|
||||||
|
while [ -h "$PRG" ] ; do
|
||||||
|
ls=`ls -ld "$PRG"`
|
||||||
|
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||||
|
if expr "$link" : '/.*' > /dev/null; then
|
||||||
|
PRG="$link"
|
||||||
|
else
|
||||||
|
PRG="`dirname "$PRG"`/$link"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
saveddir=`pwd`
|
||||||
|
|
||||||
|
M2_HOME=`dirname "$PRG"`/..
|
||||||
|
|
||||||
|
# make it fully qualified
|
||||||
|
M2_HOME=`cd "$M2_HOME" && pwd`
|
||||||
|
|
||||||
|
cd "$saveddir"
|
||||||
|
# echo Using m2 at $M2_HOME
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
||||||
|
if $cygwin ; then
|
||||||
|
[ -n "$M2_HOME" ] &&
|
||||||
|
M2_HOME=`cygpath --unix "$M2_HOME"`
|
||||||
|
[ -n "$JAVA_HOME" ] &&
|
||||||
|
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||||
|
[ -n "$CLASSPATH" ] &&
|
||||||
|
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For Mingw, ensure paths are in UNIX format before anything is touched
|
||||||
|
if $mingw ; then
|
||||||
|
[ -n "$M2_HOME" ] &&
|
||||||
|
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
||||||
|
[ -n "$JAVA_HOME" ] &&
|
||||||
|
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$JAVA_HOME" ]; then
|
||||||
|
javaExecutable="`which javac`"
|
||||||
|
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
|
||||||
|
# readlink(1) is not available as standard on Solaris 10.
|
||||||
|
readLink=`which readlink`
|
||||||
|
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
|
||||||
|
if $darwin ; then
|
||||||
|
javaHome="`dirname \"$javaExecutable\"`"
|
||||||
|
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
|
||||||
|
else
|
||||||
|
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
||||||
|
fi
|
||||||
|
javaHome="`dirname \"$javaExecutable\"`"
|
||||||
|
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
||||||
|
JAVA_HOME="$javaHome"
|
||||||
|
export JAVA_HOME
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$JAVACMD" ] ; then
|
||||||
|
if [ -n "$JAVA_HOME" ] ; then
|
||||||
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||||
|
# IBM's JDK on AIX uses strange locations for the executables
|
||||||
|
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||||
|
else
|
||||||
|
JAVACMD="$JAVA_HOME/bin/java"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
JAVACMD="`which java`"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -x "$JAVACMD" ] ; then
|
||||||
|
echo "Error: JAVA_HOME is not defined correctly." >&2
|
||||||
|
echo " We cannot execute $JAVACMD" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$JAVA_HOME" ] ; then
|
||||||
|
echo "Warning: JAVA_HOME environment variable is not set."
|
||||||
|
fi
|
||||||
|
|
||||||
|
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
||||||
|
|
||||||
|
# traverses directory structure from process work directory to filesystem root
|
||||||
|
# first directory with .mvn subdirectory is considered project base directory
|
||||||
|
find_maven_basedir() {
|
||||||
|
|
||||||
|
if [ -z "$1" ]
|
||||||
|
then
|
||||||
|
echo "Path not specified to find_maven_basedir"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
basedir="$1"
|
||||||
|
wdir="$1"
|
||||||
|
while [ "$wdir" != '/' ] ; do
|
||||||
|
if [ -d "$wdir"/.mvn ] ; then
|
||||||
|
basedir=$wdir
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
|
||||||
|
if [ -d "${wdir}" ]; then
|
||||||
|
wdir=`cd "$wdir/.."; pwd`
|
||||||
|
fi
|
||||||
|
# end of workaround
|
||||||
|
done
|
||||||
|
echo "${basedir}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# concatenates all lines of a file
|
||||||
|
concat_lines() {
|
||||||
|
if [ -f "$1" ]; then
|
||||||
|
echo "$(tr -s '\n' ' ' < "$1")"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
BASE_DIR=`find_maven_basedir "$(pwd)"`
|
||||||
|
if [ -z "$BASE_DIR" ]; then
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
##########################################################################################
|
||||||
|
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||||
|
# This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||||
|
##########################################################################################
|
||||||
|
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
|
||||||
|
if [ "$MVNW_VERBOSE" = true ]; then
|
||||||
|
echo "Found .mvn/wrapper/maven-wrapper.jar"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "$MVNW_VERBOSE" = true ]; then
|
||||||
|
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
|
||||||
|
fi
|
||||||
|
if [ -n "$MVNW_REPOURL" ]; then
|
||||||
|
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||||
|
else
|
||||||
|
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||||
|
fi
|
||||||
|
while IFS="=" read key value; do
|
||||||
|
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
|
||||||
|
esac
|
||||||
|
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
|
||||||
|
if [ "$MVNW_VERBOSE" = true ]; then
|
||||||
|
echo "Downloading from: $jarUrl"
|
||||||
|
fi
|
||||||
|
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
|
||||||
|
if $cygwin; then
|
||||||
|
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v wget > /dev/null; then
|
||||||
|
if [ "$MVNW_VERBOSE" = true ]; then
|
||||||
|
echo "Found wget ... using wget"
|
||||||
|
fi
|
||||||
|
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||||
|
wget "$jarUrl" -O "$wrapperJarPath"
|
||||||
|
else
|
||||||
|
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
|
||||||
|
fi
|
||||||
|
elif command -v curl > /dev/null; then
|
||||||
|
if [ "$MVNW_VERBOSE" = true ]; then
|
||||||
|
echo "Found curl ... using curl"
|
||||||
|
fi
|
||||||
|
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||||
|
curl -o "$wrapperJarPath" "$jarUrl" -f
|
||||||
|
else
|
||||||
|
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
if [ "$MVNW_VERBOSE" = true ]; then
|
||||||
|
echo "Falling back to using Java to download"
|
||||||
|
fi
|
||||||
|
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
|
||||||
|
# For Cygwin, switch paths to Windows format before running javac
|
||||||
|
if $cygwin; then
|
||||||
|
javaClass=`cygpath --path --windows "$javaClass"`
|
||||||
|
fi
|
||||||
|
if [ -e "$javaClass" ]; then
|
||||||
|
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||||
|
if [ "$MVNW_VERBOSE" = true ]; then
|
||||||
|
echo " - Compiling MavenWrapperDownloader.java ..."
|
||||||
|
fi
|
||||||
|
# Compiling the Java class
|
||||||
|
("$JAVA_HOME/bin/javac" "$javaClass")
|
||||||
|
fi
|
||||||
|
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||||
|
# Running the downloader
|
||||||
|
if [ "$MVNW_VERBOSE" = true ]; then
|
||||||
|
echo " - Running MavenWrapperDownloader.java ..."
|
||||||
|
fi
|
||||||
|
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
##########################################################################################
|
||||||
|
# End of extension
|
||||||
|
##########################################################################################
|
||||||
|
|
||||||
|
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
|
||||||
|
if [ "$MVNW_VERBOSE" = true ]; then
|
||||||
|
echo $MAVEN_PROJECTBASEDIR
|
||||||
|
fi
|
||||||
|
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
||||||
|
|
||||||
|
# For Cygwin, switch paths to Windows format before running java
|
||||||
|
if $cygwin; then
|
||||||
|
[ -n "$M2_HOME" ] &&
|
||||||
|
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
||||||
|
[ -n "$JAVA_HOME" ] &&
|
||||||
|
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
||||||
|
[ -n "$CLASSPATH" ] &&
|
||||||
|
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
||||||
|
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
|
||||||
|
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Provide a "standardized" way to retrieve the CLI args that will
|
||||||
|
# work with both Windows and non-Windows executions.
|
||||||
|
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
||||||
|
export MAVEN_CMD_LINE_ARGS
|
||||||
|
|
||||||
|
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||||
|
|
||||||
|
exec "$JAVACMD" \
|
||||||
|
$MAVEN_OPTS \
|
||||||
|
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
||||||
|
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
||||||
|
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
|
|
@ -0,0 +1,182 @@
|
||||||
|
@REM ----------------------------------------------------------------------------
|
||||||
|
@REM Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
@REM or more contributor license agreements. See the NOTICE file
|
||||||
|
@REM distributed with this work for additional information
|
||||||
|
@REM regarding copyright ownership. The ASF licenses this file
|
||||||
|
@REM to you under the Apache License, Version 2.0 (the
|
||||||
|
@REM "License"); you may not use this file except in compliance
|
||||||
|
@REM with the License. You may obtain a copy of the License at
|
||||||
|
@REM
|
||||||
|
@REM http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
@REM
|
||||||
|
@REM Unless required by applicable law or agreed to in writing,
|
||||||
|
@REM software distributed under the License is distributed on an
|
||||||
|
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
@REM KIND, either express or implied. See the License for the
|
||||||
|
@REM specific language governing permissions and limitations
|
||||||
|
@REM under the License.
|
||||||
|
@REM ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@REM ----------------------------------------------------------------------------
|
||||||
|
@REM Maven Start Up Batch script
|
||||||
|
@REM
|
||||||
|
@REM Required ENV vars:
|
||||||
|
@REM JAVA_HOME - location of a JDK home dir
|
||||||
|
@REM
|
||||||
|
@REM Optional ENV vars
|
||||||
|
@REM M2_HOME - location of maven2's installed home dir
|
||||||
|
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
|
||||||
|
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
|
||||||
|
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||||
|
@REM e.g. to debug Maven itself, use
|
||||||
|
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||||
|
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||||
|
@REM ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
|
||||||
|
@echo off
|
||||||
|
@REM set title of command window
|
||||||
|
title %0
|
||||||
|
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
|
||||||
|
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
|
||||||
|
|
||||||
|
@REM set %HOME% to equivalent of $HOME
|
||||||
|
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
|
||||||
|
|
||||||
|
@REM Execute a user defined script before this one
|
||||||
|
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
|
||||||
|
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
|
||||||
|
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
|
||||||
|
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
|
||||||
|
:skipRcPre
|
||||||
|
|
||||||
|
@setlocal
|
||||||
|
|
||||||
|
set ERROR_CODE=0
|
||||||
|
|
||||||
|
@REM To isolate internal variables from possible post scripts, we use another setlocal
|
||||||
|
@setlocal
|
||||||
|
|
||||||
|
@REM ==== START VALIDATION ====
|
||||||
|
if not "%JAVA_HOME%" == "" goto OkJHome
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo Error: JAVA_HOME not found in your environment. >&2
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||||
|
echo location of your Java installation. >&2
|
||||||
|
echo.
|
||||||
|
goto error
|
||||||
|
|
||||||
|
:OkJHome
|
||||||
|
if exist "%JAVA_HOME%\bin\java.exe" goto init
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo Error: JAVA_HOME is set to an invalid directory. >&2
|
||||||
|
echo JAVA_HOME = "%JAVA_HOME%" >&2
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||||
|
echo location of your Java installation. >&2
|
||||||
|
echo.
|
||||||
|
goto error
|
||||||
|
|
||||||
|
@REM ==== END VALIDATION ====
|
||||||
|
|
||||||
|
:init
|
||||||
|
|
||||||
|
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
|
||||||
|
@REM Fallback to current working directory if not found.
|
||||||
|
|
||||||
|
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
||||||
|
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
||||||
|
|
||||||
|
set EXEC_DIR=%CD%
|
||||||
|
set WDIR=%EXEC_DIR%
|
||||||
|
:findBaseDir
|
||||||
|
IF EXIST "%WDIR%"\.mvn goto baseDirFound
|
||||||
|
cd ..
|
||||||
|
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
||||||
|
set WDIR=%CD%
|
||||||
|
goto findBaseDir
|
||||||
|
|
||||||
|
:baseDirFound
|
||||||
|
set MAVEN_PROJECTBASEDIR=%WDIR%
|
||||||
|
cd "%EXEC_DIR%"
|
||||||
|
goto endDetectBaseDir
|
||||||
|
|
||||||
|
:baseDirNotFound
|
||||||
|
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
|
||||||
|
cd "%EXEC_DIR%"
|
||||||
|
|
||||||
|
:endDetectBaseDir
|
||||||
|
|
||||||
|
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
|
||||||
|
|
||||||
|
@setlocal EnableExtensions EnableDelayedExpansion
|
||||||
|
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
|
||||||
|
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
|
||||||
|
|
||||||
|
:endReadAdditionalConfig
|
||||||
|
|
||||||
|
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
|
||||||
|
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
|
||||||
|
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||||
|
|
||||||
|
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||||
|
|
||||||
|
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
|
||||||
|
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
|
||||||
|
)
|
||||||
|
|
||||||
|
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||||
|
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||||
|
if exist %WRAPPER_JAR% (
|
||||||
|
if "%MVNW_VERBOSE%" == "true" (
|
||||||
|
echo Found %WRAPPER_JAR%
|
||||||
|
)
|
||||||
|
) else (
|
||||||
|
if not "%MVNW_REPOURL%" == "" (
|
||||||
|
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||||
|
)
|
||||||
|
if "%MVNW_VERBOSE%" == "true" (
|
||||||
|
echo Couldn't find %WRAPPER_JAR%, downloading it ...
|
||||||
|
echo Downloading from: %DOWNLOAD_URL%
|
||||||
|
)
|
||||||
|
|
||||||
|
powershell -Command "&{"^
|
||||||
|
"$webclient = new-object System.Net.WebClient;"^
|
||||||
|
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
|
||||||
|
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
|
||||||
|
"}"^
|
||||||
|
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
|
||||||
|
"}"
|
||||||
|
if "%MVNW_VERBOSE%" == "true" (
|
||||||
|
echo Finished downloading %WRAPPER_JAR%
|
||||||
|
)
|
||||||
|
)
|
||||||
|
@REM End of extension
|
||||||
|
|
||||||
|
@REM Provide a "standardized" way to retrieve the CLI args that will
|
||||||
|
@REM work with both Windows and non-Windows executions.
|
||||||
|
set MAVEN_CMD_LINE_ARGS=%*
|
||||||
|
|
||||||
|
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
|
||||||
|
if ERRORLEVEL 1 goto error
|
||||||
|
goto end
|
||||||
|
|
||||||
|
:error
|
||||||
|
set ERROR_CODE=1
|
||||||
|
|
||||||
|
:end
|
||||||
|
@endlocal & set ERROR_CODE=%ERROR_CODE%
|
||||||
|
|
||||||
|
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
|
||||||
|
@REM check for post script, once with legacy .bat ending and once with .cmd ending
|
||||||
|
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
|
||||||
|
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
|
||||||
|
:skipRcPost
|
||||||
|
|
||||||
|
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
|
||||||
|
if "%MAVEN_BATCH_PAUSE%" == "on" pause
|
||||||
|
|
||||||
|
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
|
||||||
|
|
||||||
|
exit /B %ERROR_CODE%
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"$schema": "./node_modules/@angular/service-worker/config/schema.json",
|
||||||
|
"index": "/index.html",
|
||||||
|
"assetGroups": [
|
||||||
|
{
|
||||||
|
"name": "app",
|
||||||
|
"installMode": "prefetch",
|
||||||
|
"resources": {
|
||||||
|
"files": ["/favicon.ico", "/index.html", "/manifest.webapp", "/*.css", "/*.js"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "assets",
|
||||||
|
"installMode": "lazy",
|
||||||
|
"updateMode": "prefetch",
|
||||||
|
"resources": {
|
||||||
|
"files": ["/content/**", "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
basedir=`dirname "$0"`
|
||||||
|
|
||||||
|
if [ -f "$basedir/mvnw" ]; then
|
||||||
|
builddir="target/node"
|
||||||
|
installCommand="$basedir/mvnw frontend:install-node-and-npm@install-node-and-npm"
|
||||||
|
else
|
||||||
|
builddir=".gradle/npm"
|
||||||
|
installCommand="$basedir/gradlew npmSetup"
|
||||||
|
fi
|
||||||
|
|
||||||
|
NPM_EXE="$basedir/$builddir/npm"
|
||||||
|
|
||||||
|
if ! [ -x "$NPM_EXE" ]; then
|
||||||
|
$installCommand || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ -x "$NPM_EXE" ]; then
|
||||||
|
echo "Using npm installed globally"
|
||||||
|
npm "$@"
|
||||||
|
else
|
||||||
|
echo "Using npm installed locally $($NPM_EXE --version)"
|
||||||
|
$NPM_EXE "$@"
|
||||||
|
fi
|
|
@ -0,0 +1,24 @@
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
@setlocal
|
||||||
|
|
||||||
|
set NPMW_DIR=%~dp0
|
||||||
|
|
||||||
|
if exist "%NPMW_DIR%\mvnw.cmd" (
|
||||||
|
set NPM_EXE=%NPMW_DIR%\target\node\npm.cmd
|
||||||
|
set INSTALL_NPM_COMMAND=%NPMW_DIR%\mvnw.cmd frontend:install-node-and-npm@install-node-and-npm
|
||||||
|
) else (
|
||||||
|
set NPM_EXE=%NPMW_DIR%\.gradle\npm\npm.cmd
|
||||||
|
set INSTALL_NPM_COMMAND=%NPMW_DIR%\gradlew.bat npmSetup
|
||||||
|
)
|
||||||
|
|
||||||
|
if not exist %NPM_EXE% (
|
||||||
|
call %INSTALL_NPM_COMMAND%
|
||||||
|
)
|
||||||
|
|
||||||
|
if not exist %NPM_EXE% goto globalNpm
|
||||||
|
|
||||||
|
%NPM_EXE% %*
|
||||||
|
|
||||||
|
:globalNpm
|
||||||
|
npm %*
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,142 @@
|
||||||
|
{
|
||||||
|
"name": "data-survey",
|
||||||
|
"version": "0.0.1-SNAPSHOT",
|
||||||
|
"private": true,
|
||||||
|
"description": "Description for DataSurvey",
|
||||||
|
"license": "UNLICENSED",
|
||||||
|
"scripts": {
|
||||||
|
"prettier:check": "prettier --check \"{,src/**/,webpack/}*.{md,json,yml,html,js,ts,tsx,css,scss,java}\"",
|
||||||
|
"prettier:format": "prettier --write \"{,src/**/,webpack/}*.{md,json,yml,html,js,ts,tsx,css,scss,java}\"",
|
||||||
|
"lint": "eslint . --ext .js,.ts",
|
||||||
|
"lint:fix": "npm run lint -- --fix",
|
||||||
|
"cleanup": "rimraf target/classes/static/",
|
||||||
|
"clean-www": "rimraf target/classes/static/app/{src,target/}",
|
||||||
|
"jest": "jest --coverage --logHeapUsage --maxWorkers=2 --config jest.conf.js",
|
||||||
|
"start": "ng serve --hmr",
|
||||||
|
"start-tls": "npm run webapp:dev -- --env.tls",
|
||||||
|
"serve": "npm run start",
|
||||||
|
"build": "npm run webapp:prod",
|
||||||
|
"pretest": "npm run lint",
|
||||||
|
"test": "ng test --coverage --log-heap-usage -w=2",
|
||||||
|
"test:watch": "npm run test -- --watch",
|
||||||
|
"watch": "concurrently npm:start npm:backend:start",
|
||||||
|
"webapp:build": "npm run clean-www && npm run webapp:build:dev",
|
||||||
|
"webapp:build:dev": "ng build --configuration development",
|
||||||
|
"webapp:build:prod": "ng build --configuration production",
|
||||||
|
"webapp:dev": "ng serve",
|
||||||
|
"webapp:dev-verbose": "ng serve --verbose",
|
||||||
|
"webapp:prod": "npm run clean-www && npm run webapp:build:prod",
|
||||||
|
"webapp:test": "npm run test",
|
||||||
|
"docker:db:up": "docker-compose -f src/main/docker/mysql.yml up -d",
|
||||||
|
"docker:db:down": "docker-compose -f src/main/docker/mysql.yml down -v --remove-orphans",
|
||||||
|
"docker:others:await": "",
|
||||||
|
"predocker:others:up": "",
|
||||||
|
"docker:others:up": "",
|
||||||
|
"docker:others:down": "",
|
||||||
|
"ci:e2e:prepare:docker": "npm run docker:db:up && npm run docker:others:up && docker ps -a",
|
||||||
|
"ci:e2e:prepare": "npm run ci:e2e:prepare:docker",
|
||||||
|
"ci:e2e:teardown:docker": "npm run docker:db:down --if-present && npm run docker:others:down && docker ps -a",
|
||||||
|
"ci:e2e:teardown": "npm run ci:e2e:teardown:docker",
|
||||||
|
"backend:info": "./mvnw -ntp enforcer:display-info --batch-mode",
|
||||||
|
"backend:doc:test": "./mvnw -ntp javadoc:javadoc --batch-mode",
|
||||||
|
"backend:nohttp:test": "./mvnw -ntp checkstyle:check --batch-mode",
|
||||||
|
"backend:start": "./mvnw -P-webapp",
|
||||||
|
"java:jar": "./mvnw -ntp verify -DskipTests --batch-mode",
|
||||||
|
"java:war": "./mvnw -ntp verify -DskipTests --batch-mode -Pwar",
|
||||||
|
"java:docker": "./mvnw -ntp verify -DskipTests jib:dockerBuild",
|
||||||
|
"backend:unit:test": "./mvnw -ntp -P-webapp verify --batch-mode -Dlogging.level.ROOT=OFF -Dlogging.level.org.zalando=OFF -Dlogging.level.tech.jhipster=OFF -Dlogging.level.org.datasurvey=OFF -Dlogging.level.org.springframework=OFF -Dlogging.level.org.springframework.web=OFF -Dlogging.level.org.springframework.security=OFF",
|
||||||
|
"backend:build-cache": "./mvnw dependency:go-offline",
|
||||||
|
"java:jar:dev": "npm run java:jar -- -Pdev,webapp",
|
||||||
|
"java:jar:prod": "npm run java:jar -- -Pprod",
|
||||||
|
"java:war:dev": "npm run java:war -- -Pdev,webapp",
|
||||||
|
"java:war:prod": "npm run java:war -- -Pprod",
|
||||||
|
"java:docker:dev": "npm run java:docker -- -Pdev,webapp",
|
||||||
|
"java:docker:prod": "npm run java:docker -- -Pprod",
|
||||||
|
"ci:backend:test": "npm run backend:info && npm run backend:doc:test && npm run backend:nohttp:test && npm run backend:unit:test",
|
||||||
|
"ci:server:package": "npm run java:$npm_package_config_packaging:$npm_package_config_default_environment",
|
||||||
|
"ci:e2e:package": "npm run java:$npm_package_config_packaging:$npm_package_config_default_environment -- -Pe2e -Denforcer.skip=true",
|
||||||
|
"preci:e2e:server:start": "npm run docker:db:await --if-present && npm run docker:others:await --if-present",
|
||||||
|
"ci:e2e:server:start": "java -jar target/e2e.$npm_package_config_packaging --spring.profiles.active=$npm_package_config_default_environment -Dlogging.level.ROOT=OFF -Dlogging.level.org.zalando=OFF -Dlogging.level.tech.jhipster=OFF -Dlogging.level.org.datasurvey=OFF -Dlogging.level.org.springframework=OFF -Dlogging.level.org.springframework.web=OFF -Dlogging.level.org.springframework.security=OFF --logging.level.org.springframework.web=ERROR",
|
||||||
|
"ci:frontend:build": "npm run webapp:build:$npm_package_config_default_environment",
|
||||||
|
"ci:frontend:test": "npm run ci:frontend:build && npm test"
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"backend_port": 8080,
|
||||||
|
"default_environment": "prod",
|
||||||
|
"packaging": "jar"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@angular/common": "12.0.5",
|
||||||
|
"@angular/compiler": "12.0.5",
|
||||||
|
"@angular/core": "12.0.5",
|
||||||
|
"@angular/forms": "12.0.5",
|
||||||
|
"@angular/localize": "12.0.5",
|
||||||
|
"@angular/platform-browser": "12.0.5",
|
||||||
|
"@angular/platform-browser-dynamic": "12.0.5",
|
||||||
|
"@angular/router": "12.0.5",
|
||||||
|
"@fortawesome/angular-fontawesome": "0.9.0",
|
||||||
|
"@fortawesome/fontawesome-svg-core": "1.2.35",
|
||||||
|
"@fortawesome/free-solid-svg-icons": "5.15.3",
|
||||||
|
"@ng-bootstrap/ng-bootstrap": "9.1.3",
|
||||||
|
"@ngx-translate/core": "13.0.0",
|
||||||
|
"@ngx-translate/http-loader": "6.0.0",
|
||||||
|
"bootstrap": "4.6.0",
|
||||||
|
"dayjs": "1.10.5",
|
||||||
|
"ngx-infinite-scroll": "10.0.1",
|
||||||
|
"ngx-webstorage": "8.0.0",
|
||||||
|
"rxjs": "6.6.7",
|
||||||
|
"sockjs-client": "1.5.0",
|
||||||
|
"swagger-ui-dist": "3.50.0",
|
||||||
|
"tslib": "2.3.0",
|
||||||
|
"webstomp-client": "1.2.6",
|
||||||
|
"zone.js": "0.11.4"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@angular-builders/custom-webpack": "12.1.0",
|
||||||
|
"@angular-builders/jest": "12.1.0",
|
||||||
|
"@angular-eslint/eslint-plugin": "12.1.0",
|
||||||
|
"@angular/cli": "12.0.4",
|
||||||
|
"@angular/compiler-cli": "12.0.5",
|
||||||
|
"@angular/service-worker": "12.0.5",
|
||||||
|
"@types/jest": "26.0.23",
|
||||||
|
"@types/node": "15.12.2",
|
||||||
|
"@types/sockjs-client": "1.5.0",
|
||||||
|
"@typescript-eslint/eslint-plugin": "4.27.0",
|
||||||
|
"@typescript-eslint/parser": "4.27.0",
|
||||||
|
"browser-sync": "2.26.14",
|
||||||
|
"browser-sync-webpack-plugin": "2.3.0",
|
||||||
|
"concurrently": "6.2.0",
|
||||||
|
"copy-webpack-plugin": "9.0.0",
|
||||||
|
"eslint": "7.28.0",
|
||||||
|
"eslint-config-prettier": "8.3.0",
|
||||||
|
"eslint-webpack-plugin": "2.5.4",
|
||||||
|
"generator-jhipster": "7.1.0",
|
||||||
|
"husky": "4.3.8",
|
||||||
|
"jest": "27.0.4",
|
||||||
|
"jest-date-mock": "1.0.8",
|
||||||
|
"jest-junit": "12.2.0",
|
||||||
|
"jest-sonar-reporter": "2.0.0",
|
||||||
|
"lint-staged": "11.0.0",
|
||||||
|
"merge-jsons-webpack-plugin": "1.0.21",
|
||||||
|
"prettier": "2.3.1",
|
||||||
|
"prettier-plugin-java": "1.2.0",
|
||||||
|
"prettier-plugin-packagejson": "2.2.11",
|
||||||
|
"rimraf": "3.0.2",
|
||||||
|
"ts-jest": "27.0.3",
|
||||||
|
"typescript": "4.2.4",
|
||||||
|
"wait-on": "5.3.0",
|
||||||
|
"webpack-bundle-analyzer": "4.4.2",
|
||||||
|
"webpack-merge": "5.8.0",
|
||||||
|
"webpack-notifier": "1.13.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.17.1"
|
||||||
|
},
|
||||||
|
"cacheDirectories": [
|
||||||
|
"node_modules"
|
||||||
|
],
|
||||||
|
"jestSonar": {
|
||||||
|
"reportPath": "target/test-results/jest",
|
||||||
|
"reportFile": "TESTS-results-sonar.xml"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
sonar.projectKey=DataSurvey
|
||||||
|
sonar.projectName=DataSurvey generated by jhipster
|
||||||
|
sonar.projectVersion=1.0
|
||||||
|
|
||||||
|
sonar.sources=src/main/
|
||||||
|
sonar.host.url=http://localhost:9001
|
||||||
|
|
||||||
|
sonar.test.inclusions=src/test/**/*.*, src/main/webapp/app/**/*.spec.ts
|
||||||
|
sonar.coverage.jacoco.xmlReportPaths=target/site/**/jacoco*.xml
|
||||||
|
sonar.java.codeCoveragePlugin=jacoco
|
||||||
|
sonar.junit.reportPaths=target/surefire-reports,target/failsafe-reports
|
||||||
|
sonar.testExecutionReportPaths=target/test-results/jest/TESTS-results-sonar.xml
|
||||||
|
sonar.javascript.lcov.reportPaths=target/test-results/lcov.info
|
||||||
|
|
||||||
|
sonar.sourceEncoding=UTF-8
|
||||||
|
sonar.exclusions=src/main/webapp/content/**/*.*, src/main/webapp/i18n/*.js, target/classes/static/**/*.*
|
||||||
|
|
||||||
|
sonar.issue.ignore.multicriteria=S3437,S4502,S4684,UndocumentedApi
|
||||||
|
# Rule https://rules.sonarsource.com/java/RSPEC-3437 is ignored, as a JPA-managed field cannot be transient
|
||||||
|
sonar.issue.ignore.multicriteria.S3437.resourceKey=src/main/java/**/*
|
||||||
|
sonar.issue.ignore.multicriteria.S3437.ruleKey=squid:S3437
|
||||||
|
# Rule https://rules.sonarsource.com/java/RSPEC-1176 is ignored, as we want to follow "clean code" guidelines and classes, methods and arguments names should be self-explanatory
|
||||||
|
sonar.issue.ignore.multicriteria.UndocumentedApi.resourceKey=src/main/java/**/*
|
||||||
|
sonar.issue.ignore.multicriteria.UndocumentedApi.ruleKey=squid:UndocumentedApi
|
||||||
|
# Rule https://rules.sonarsource.com/java/RSPEC-4502 is ignored, as for JWT tokens we are not subject to CSRF attack
|
||||||
|
sonar.issue.ignore.multicriteria.S4502.resourceKey=src/main/java/**/*
|
||||||
|
sonar.issue.ignore.multicriteria.S4502.ruleKey=squid:S4502
|
||||||
|
# Rule https://rules.sonarsource.com/java/RSPEC-4684
|
||||||
|
sonar.issue.ignore.multicriteria.S4684.resourceKey=src/main/java/**/*
|
||||||
|
sonar.issue.ignore.multicriteria.S4684.ruleKey=java:S4684
|
|
@ -0,0 +1,28 @@
|
||||||
|
# This configuration is intended for development purpose, it's **your** responsibility to harden it for production
|
||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
datasurvey-app:
|
||||||
|
image: datasurvey
|
||||||
|
environment:
|
||||||
|
- _JAVA_OPTIONS=-Xmx512m -Xms256m
|
||||||
|
- SPRING_PROFILES_ACTIVE=prod,api-docs
|
||||||
|
- MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED=true
|
||||||
|
- SPRING_DATASOURCE_URL=jdbc:mysql://datasurvey-mysql:3306/datasurvey?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true
|
||||||
|
- SPRING_LIQUIBASE_URL=jdbc:mysql://datasurvey-mysql:3306/datasurvey?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true
|
||||||
|
- JHIPSTER_SLEEP=30 # gives time for other services to boot before the application
|
||||||
|
# If you want to expose these ports outside your dev PC,
|
||||||
|
# remove the "127.0.0.1:" prefix
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:8080:8080
|
||||||
|
datasurvey-mysql:
|
||||||
|
image: mysql:8.0.25
|
||||||
|
# volumes:
|
||||||
|
# - ~/volumes/jhipster/DataSurvey/mysql/:/var/lib/mysql/
|
||||||
|
environment:
|
||||||
|
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
|
||||||
|
- MYSQL_DATABASE=datasurvey
|
||||||
|
# If you want to expose these ports outside your dev PC,
|
||||||
|
# remove the "127.0.0.1:" prefix
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:3306:3306
|
||||||
|
command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,11 @@
|
||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
providers:
|
||||||
|
- name: 'Prometheus'
|
||||||
|
orgId: 1
|
||||||
|
folder: ''
|
||||||
|
type: file
|
||||||
|
disableDeletion: false
|
||||||
|
editable: true
|
||||||
|
options:
|
||||||
|
path: /etc/grafana/provisioning/dashboards
|
|
@ -0,0 +1,50 @@
|
||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
# list of datasources that should be deleted from the database
|
||||||
|
deleteDatasources:
|
||||||
|
- name: Prometheus
|
||||||
|
orgId: 1
|
||||||
|
|
||||||
|
# list of datasources to insert/update depending
|
||||||
|
# whats available in the database
|
||||||
|
datasources:
|
||||||
|
# <string, required> name of the datasource. Required
|
||||||
|
- name: Prometheus
|
||||||
|
# <string, required> datasource type. Required
|
||||||
|
type: prometheus
|
||||||
|
# <string, required> access mode. direct or proxy. Required
|
||||||
|
access: proxy
|
||||||
|
# <int> org id. will default to orgId 1 if not specified
|
||||||
|
orgId: 1
|
||||||
|
# <string> url
|
||||||
|
# On MacOS, replace localhost by host.docker.internal
|
||||||
|
url: http://localhost:9090
|
||||||
|
# <string> database password, if used
|
||||||
|
password:
|
||||||
|
# <string> database user, if used
|
||||||
|
user:
|
||||||
|
# <string> database name, if used
|
||||||
|
database:
|
||||||
|
# <bool> enable/disable basic auth
|
||||||
|
basicAuth: false
|
||||||
|
# <string> basic auth username
|
||||||
|
basicAuthUser: admin
|
||||||
|
# <string> basic auth password
|
||||||
|
basicAuthPassword: admin
|
||||||
|
# <bool> enable/disable with credentials headers
|
||||||
|
withCredentials:
|
||||||
|
# <bool> mark as default datasource. Max one per org
|
||||||
|
isDefault: true
|
||||||
|
# <map> fields that will be converted to json and stored in json_data
|
||||||
|
jsonData:
|
||||||
|
graphiteVersion: '1.1'
|
||||||
|
tlsAuth: false
|
||||||
|
tlsAuthWithCACert: false
|
||||||
|
# <string> json object of data that will be encrypted.
|
||||||
|
secureJsonData:
|
||||||
|
tlsCACert: '...'
|
||||||
|
tlsClientCert: '...'
|
||||||
|
tlsClientKey: '...'
|
||||||
|
version: 1
|
||||||
|
# <bool> allow users to edit datasources from the UI.
|
||||||
|
editable: true
|
|
@ -0,0 +1,52 @@
|
||||||
|
## How to use JHCC docker compose
|
||||||
|
# To allow JHCC to reach JHipster application from a docker container note that we set the host as host.docker.internal
|
||||||
|
# To reach the application from a browser, you need to add '127.0.0.1 host.docker.internal' to your hosts file.
|
||||||
|
### Discovery mode
|
||||||
|
# JHCC support 3 kinds of discovery mode: Consul, Eureka and static
|
||||||
|
# In order to use one, please set SPRING_PROFILES_ACTIVE to one (and only one) of this values: consul,eureka,static
|
||||||
|
### Discovery properties
|
||||||
|
# According to the discovery mode choose as Spring profile, you have to set the right properties
|
||||||
|
# please note that current properties are set to run JHCC with default values, personalize them if needed
|
||||||
|
# and remove those from other modes. You can only have one mode active.
|
||||||
|
#### Eureka
|
||||||
|
# - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://admin:admin@host.docker.internal:8761/eureka/
|
||||||
|
#### Consul
|
||||||
|
# - SPRING_CLOUD_CONSUL_HOST=host.docker.internal
|
||||||
|
# - SPRING_CLOUD_CONSUL_PORT=8500
|
||||||
|
#### Static
|
||||||
|
# Add instances to "MyApp"
|
||||||
|
# - SPRING_CLOUD_DISCOVERY_CLIENT_SIMPLE_INSTANCES_MYAPP_0_URI=http://host.docker.internal:8081
|
||||||
|
# - SPRING_CLOUD_DISCOVERY_CLIENT_SIMPLE_INSTANCES_MYAPP_1_URI=http://host.docker.internal:8082
|
||||||
|
# Or add a new application named MyNewApp
|
||||||
|
# - SPRING_CLOUD_DISCOVERY_CLIENT_SIMPLE_INSTANCES_MYNEWAPP_0_URI=http://host.docker.internal:8080
|
||||||
|
# This configuration is intended for development purpose, it's **your** responsibility to harden it for production
|
||||||
|
|
||||||
|
#### IMPORTANT
|
||||||
|
# If you choose Consul or Eureka mode:
|
||||||
|
# Do not forget to remove the prefix "127.0.0.1" in front of their port in order to expose them.
|
||||||
|
# This is required because JHCC need to communicate with Consul or Eureka.
|
||||||
|
# - In Consul mode, the ports are in the consul.yml file.
|
||||||
|
# - In Eureka mode, the ports are in the jhipster-registry.yml file.
|
||||||
|
|
||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
jhipster-control-center:
|
||||||
|
image: 'jhipster/jhipster-control-center:v0.5.0'
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
# Patch /etc/hosts to support resolving host.docker.internal to the internal IP address used by the host in all OSes
|
||||||
|
- echo "`ip route | grep default | cut -d ' ' -f3` host.docker.internal" | tee -a /etc/hosts > /dev/null && java -jar /jhipster-control-center.jar
|
||||||
|
environment:
|
||||||
|
- _JAVA_OPTIONS=-Xmx512m -Xms256m
|
||||||
|
- SPRING_PROFILES_ACTIVE=prod,api-docs,static
|
||||||
|
- JHIPSTER_SLEEP=30 # gives time for other services to boot before the application
|
||||||
|
- SPRING_SECURITY_USER_PASSWORD=admin
|
||||||
|
# The token should have the same value than the one declared in you Spring configuration under the jhipster.security.authentication.jwt.base64-secret configuration's entry
|
||||||
|
- JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64_SECRET=ZjRmZGRhNzFhNDI5OTRmYjkzZmQ0NzI5Yzc3YTYyODBkMjFjZGY1OWMwNzY5YTJkOTA1ZDY3YzE1MWEwMGRkYzg4ZTNlOGUwNTAzMzdiMWVjNDA4NjFiY2JhNTNhYzhkZjQ3N2MyMmY5YzA5ZTFiNzIzMjJjMTg4MmFlNTUyOTY=
|
||||||
|
- SPRING_CLOUD_DISCOVERY_CLIENT_SIMPLE_INSTANCES_DATASURVEY_0_URI=http://host.docker.internal:8080
|
||||||
|
- LOGGING_FILE_NAME=/tmp/jhipster-control-center.log
|
||||||
|
# If you want to expose these ports outside your dev PC,
|
||||||
|
# remove the "127.0.0.1:" prefix
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:7419:7419
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "The application will start in ${JHIPSTER_SLEEP}s..." && sleep ${JHIPSTER_SLEEP}
|
||||||
|
exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "org.datasurvey.DataSurveyApp" "$@"
|
|
@ -0,0 +1,31 @@
|
||||||
|
# This configuration is intended for development purpose, it's **your** responsibility to harden it for production
|
||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
datasurvey-prometheus:
|
||||||
|
image: prom/prometheus:v2.27.1
|
||||||
|
volumes:
|
||||||
|
- ./prometheus/:/etc/prometheus/
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
# If you want to expose these ports outside your dev PC,
|
||||||
|
# remove the "127.0.0.1:" prefix
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:9090:9090
|
||||||
|
# On MacOS, remove next line and replace localhost by host.docker.internal in prometheus/prometheus.yml and
|
||||||
|
# grafana/provisioning/datasources/datasource.yml
|
||||||
|
network_mode: 'host' # to test locally running service
|
||||||
|
datasurvey-grafana:
|
||||||
|
image: grafana/grafana:8.0.1
|
||||||
|
volumes:
|
||||||
|
- ./grafana/provisioning/:/etc/grafana/provisioning/
|
||||||
|
environment:
|
||||||
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
||||||
|
- GF_USERS_ALLOW_SIGN_UP=false
|
||||||
|
- GF_INSTALL_PLUGINS=grafana-piechart-panel
|
||||||
|
# If you want to expose these ports outside your dev PC,
|
||||||
|
# remove the "127.0.0.1:" prefix
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:3000:3000
|
||||||
|
# On MacOS, remove next line and replace localhost by host.docker.internal in prometheus/prometheus.yml and
|
||||||
|
# grafana/provisioning/datasources/datasource.yml
|
||||||
|
network_mode: 'host' # to test locally running service
|
|
@ -0,0 +1,15 @@
|
||||||
|
# This configuration is intended for development purpose, it's **your** responsibility to harden it for production
|
||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
datasurvey-mysql:
|
||||||
|
image: mysql:8.0.25
|
||||||
|
# volumes:
|
||||||
|
# - ~/volumes/jhipster/DataSurvey/mysql/:/var/lib/mysql/
|
||||||
|
environment:
|
||||||
|
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
|
||||||
|
- MYSQL_DATABASE=datasurvey
|
||||||
|
# If you want to expose these ports outside your dev PC,
|
||||||
|
# remove the "127.0.0.1:" prefix
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:3306:3306
|
||||||
|
command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Sample global config for monitoring JHipster applications
|
||||||
|
global:
|
||||||
|
scrape_interval: 15s # By default, scrape targets every 15 seconds.
|
||||||
|
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
|
||||||
|
# scrape_timeout is set to the global default (10s).
|
||||||
|
|
||||||
|
# Attach these labels to any time series or alerts when communicating with
|
||||||
|
# external systems (federation, remote storage, Alertmanager).
|
||||||
|
external_labels:
|
||||||
|
monitor: 'jhipster'
|
||||||
|
|
||||||
|
# A scrape configuration containing exactly one endpoint to scrape:
|
||||||
|
# Here it's Prometheus itself.
|
||||||
|
scrape_configs:
|
||||||
|
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
|
||||||
|
- job_name: 'prometheus'
|
||||||
|
|
||||||
|
# Override the global default and scrape targets from this job every 5 seconds.
|
||||||
|
scrape_interval: 5s
|
||||||
|
|
||||||
|
# scheme defaults to 'http' enable https in case your application is server via https
|
||||||
|
#scheme: https
|
||||||
|
# basic auth is not needed by default. See https://www.jhipster.tech/monitoring/#configuring-metrics-forwarding for details
|
||||||
|
#basic_auth:
|
||||||
|
# username: admin
|
||||||
|
# password: admin
|
||||||
|
metrics_path: /management/prometheus
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
# On MacOS, replace localhost by host.docker.internal
|
||||||
|
- localhost:8080
|
|
@ -0,0 +1,13 @@
|
||||||
|
# This configuration is intended for development purpose, it's **your** responsibility to harden it for production
|
||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
datasurvey-sonar:
|
||||||
|
image: sonarqube:8.9.1-community
|
||||||
|
# Authentication is turned off for out of the box experience while trying out SonarQube
|
||||||
|
# For real use cases delete sonar.forceAuthentication variable or set sonar.forceAuthentication=true
|
||||||
|
environment:
|
||||||
|
- sonar.forceAuthentication=false
|
||||||
|
# If you want to expose these ports outside your dev PC,
|
||||||
|
# remove the "127.0.0.1:" prefix
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:9001:9000
|
|
@ -0,0 +1,19 @@
|
||||||
|
package org.datasurvey;
|
||||||
|
|
||||||
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||||
|
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||||
|
import tech.jhipster.config.DefaultProfileUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a helper Java class that provides an alternative to creating a {@code web.xml}.
|
||||||
|
* This will be invoked only when the application is deployed to a Servlet container like Tomcat, JBoss etc.
|
||||||
|
*/
|
||||||
|
public class ApplicationWebXml extends SpringBootServletInitializer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||||
|
// set a default to use when no profile is configured.
|
||||||
|
DefaultProfileUtil.addDefaultProfile(application.application());
|
||||||
|
return application.sources(DataSurveyApp.class);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,103 @@
|
||||||
|
package org.datasurvey;
|
||||||
|
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Optional;
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.datasurvey.config.ApplicationProperties;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
|
||||||
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
import tech.jhipster.config.DefaultProfileUtil;
|
||||||
|
import tech.jhipster.config.JHipsterConstants;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
@EnableConfigurationProperties({ LiquibaseProperties.class, ApplicationProperties.class })
|
||||||
|
public class DataSurveyApp {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(DataSurveyApp.class);
|
||||||
|
|
||||||
|
private final Environment env;
|
||||||
|
|
||||||
|
public DataSurveyApp(Environment env) {
|
||||||
|
this.env = env;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes DataSurvey.
|
||||||
|
* <p>
|
||||||
|
* Spring profiles can be configured with a program argument --spring.profiles.active=your-active-profile
|
||||||
|
* <p>
|
||||||
|
* You can find more information on how profiles work with JHipster on <a href="https://www.jhipster.tech/profiles/">https://www.jhipster.tech/profiles/</a>.
|
||||||
|
*/
|
||||||
|
@PostConstruct
|
||||||
|
public void initApplication() {
|
||||||
|
Collection<String> activeProfiles = Arrays.asList(env.getActiveProfiles());
|
||||||
|
if (
|
||||||
|
activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT) &&
|
||||||
|
activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_PRODUCTION)
|
||||||
|
) {
|
||||||
|
log.error(
|
||||||
|
"You have misconfigured your application! It should not run " + "with both the 'dev' and 'prod' profiles at the same time."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT) &&
|
||||||
|
activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_CLOUD)
|
||||||
|
) {
|
||||||
|
log.error(
|
||||||
|
"You have misconfigured your application! It should not " + "run with both the 'dev' and 'cloud' profiles at the same time."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main method, used to run the application.
|
||||||
|
*
|
||||||
|
* @param args the command line arguments.
|
||||||
|
*/
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication app = new SpringApplication(DataSurveyApp.class);
|
||||||
|
DefaultProfileUtil.addDefaultProfile(app);
|
||||||
|
Environment env = app.run(args).getEnvironment();
|
||||||
|
logApplicationStartup(env);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void logApplicationStartup(Environment env) {
|
||||||
|
String protocol = Optional.ofNullable(env.getProperty("server.ssl.key-store")).map(key -> "https").orElse("http");
|
||||||
|
String serverPort = env.getProperty("server.port");
|
||||||
|
String contextPath = Optional
|
||||||
|
.ofNullable(env.getProperty("server.servlet.context-path"))
|
||||||
|
.filter(StringUtils::isNotBlank)
|
||||||
|
.orElse("/");
|
||||||
|
String hostAddress = "localhost";
|
||||||
|
try {
|
||||||
|
hostAddress = InetAddress.getLocalHost().getHostAddress();
|
||||||
|
} catch (UnknownHostException e) {
|
||||||
|
log.warn("The host name could not be determined, using `localhost` as fallback");
|
||||||
|
}
|
||||||
|
log.info(
|
||||||
|
"\n----------------------------------------------------------\n\t" +
|
||||||
|
"Application '{}' is running! Access URLs:\n\t" +
|
||||||
|
"Local: \t\t{}://localhost:{}{}\n\t" +
|
||||||
|
"External: \t{}://{}:{}{}\n\t" +
|
||||||
|
"Profile(s): \t{}\n----------------------------------------------------------",
|
||||||
|
env.getProperty("spring.application.name"),
|
||||||
|
protocol,
|
||||||
|
serverPort,
|
||||||
|
contextPath,
|
||||||
|
protocol,
|
||||||
|
hostAddress,
|
||||||
|
serverPort,
|
||||||
|
contextPath,
|
||||||
|
env.getActiveProfiles()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package org.datasurvey;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
import javax.annotation.Generated;
|
||||||
|
|
||||||
|
@Generated(value = "JHipster", comments = "Generated by JHipster 7.1.0")
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
@Target({ ElementType.TYPE })
|
||||||
|
public @interface GeneratedByJHipster {
|
||||||
|
}
|
|
@ -0,0 +1,111 @@
|
||||||
|
package org.datasurvey.aop.logging;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import org.aspectj.lang.JoinPoint;
|
||||||
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.AfterThrowing;
|
||||||
|
import org.aspectj.lang.annotation.Around;
|
||||||
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.Pointcut;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
import org.springframework.core.env.Profiles;
|
||||||
|
import tech.jhipster.config.JHipsterConstants;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Aspect for logging execution of service and repository Spring components.
|
||||||
|
*
|
||||||
|
* By default, it only runs with the "dev" profile.
|
||||||
|
*/
|
||||||
|
@Aspect
|
||||||
|
public class LoggingAspect {
|
||||||
|
|
||||||
|
private final Environment env;
|
||||||
|
|
||||||
|
public LoggingAspect(Environment env) {
|
||||||
|
this.env = env;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pointcut that matches all repositories, services and Web REST endpoints.
|
||||||
|
*/
|
||||||
|
@Pointcut(
|
||||||
|
"within(@org.springframework.stereotype.Repository *)" +
|
||||||
|
" || within(@org.springframework.stereotype.Service *)" +
|
||||||
|
" || within(@org.springframework.web.bind.annotation.RestController *)"
|
||||||
|
)
|
||||||
|
public void springBeanPointcut() {
|
||||||
|
// Method is empty as this is just a Pointcut, the implementations are in the advices.
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pointcut that matches all Spring beans in the application's main packages.
|
||||||
|
*/
|
||||||
|
@Pointcut("within(org.datasurvey.repository..*)" + " || within(org.datasurvey.service..*)" + " || within(org.datasurvey.web.rest..*)")
|
||||||
|
public void applicationPackagePointcut() {
|
||||||
|
// Method is empty as this is just a Pointcut, the implementations are in the advices.
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the {@link Logger} associated to the given {@link JoinPoint}.
|
||||||
|
*
|
||||||
|
* @param joinPoint join point we want the logger for.
|
||||||
|
* @return {@link Logger} associated to the given {@link JoinPoint}.
|
||||||
|
*/
|
||||||
|
private Logger logger(JoinPoint joinPoint) {
|
||||||
|
return LoggerFactory.getLogger(joinPoint.getSignature().getDeclaringTypeName());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Advice that logs methods throwing exceptions.
|
||||||
|
*
|
||||||
|
* @param joinPoint join point for advice.
|
||||||
|
* @param e exception.
|
||||||
|
*/
|
||||||
|
@AfterThrowing(pointcut = "applicationPackagePointcut() && springBeanPointcut()", throwing = "e")
|
||||||
|
public void logAfterThrowing(JoinPoint joinPoint, Throwable e) {
|
||||||
|
if (env.acceptsProfiles(Profiles.of(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT))) {
|
||||||
|
logger(joinPoint)
|
||||||
|
.error(
|
||||||
|
"Exception in {}() with cause = \'{}\' and exception = \'{}\'",
|
||||||
|
joinPoint.getSignature().getName(),
|
||||||
|
e.getCause() != null ? e.getCause() : "NULL",
|
||||||
|
e.getMessage(),
|
||||||
|
e
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
logger(joinPoint)
|
||||||
|
.error(
|
||||||
|
"Exception in {}() with cause = {}",
|
||||||
|
joinPoint.getSignature().getName(),
|
||||||
|
e.getCause() != null ? e.getCause() : "NULL"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Advice that logs when a method is entered and exited.
|
||||||
|
*
|
||||||
|
* @param joinPoint join point for advice.
|
||||||
|
* @return result.
|
||||||
|
* @throws Throwable throws {@link IllegalArgumentException}.
|
||||||
|
*/
|
||||||
|
@Around("applicationPackagePointcut() && springBeanPointcut()")
|
||||||
|
public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||||
|
Logger log = logger(joinPoint);
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Enter: {}() with argument[s] = {}", joinPoint.getSignature().getName(), Arrays.toString(joinPoint.getArgs()));
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Object result = joinPoint.proceed();
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Exit: {}() with result = {}", joinPoint.getSignature().getName(), result);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
log.error("Illegal argument: {} in {}()", Arrays.toString(joinPoint.getArgs()), joinPoint.getSignature().getName());
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Properties specific to Data Survey.
|
||||||
|
* <p>
|
||||||
|
* Properties are configured in the {@code application.yml} file.
|
||||||
|
* See {@link tech.jhipster.config.JHipsterProperties} for a good example.
|
||||||
|
*/
|
||||||
|
@ConfigurationProperties(prefix = "application", ignoreUnknownFields = false)
|
||||||
|
public class ApplicationProperties {}
|
|
@ -0,0 +1,46 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
|
||||||
|
import org.springframework.aop.interceptor.SimpleAsyncUncaughtExceptionHandler;
|
||||||
|
import org.springframework.boot.autoconfigure.task.TaskExecutionProperties;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.scheduling.annotation.AsyncConfigurer;
|
||||||
|
import org.springframework.scheduling.annotation.EnableAsync;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||||
|
import tech.jhipster.async.ExceptionHandlingAsyncTaskExecutor;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableAsync
|
||||||
|
@EnableScheduling
|
||||||
|
public class AsyncConfiguration implements AsyncConfigurer {
|
||||||
|
|
||||||
|
private final Logger log = LoggerFactory.getLogger(AsyncConfiguration.class);
|
||||||
|
|
||||||
|
private final TaskExecutionProperties taskExecutionProperties;
|
||||||
|
|
||||||
|
public AsyncConfiguration(TaskExecutionProperties taskExecutionProperties) {
|
||||||
|
this.taskExecutionProperties = taskExecutionProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Bean(name = "taskExecutor")
|
||||||
|
public Executor getAsyncExecutor() {
|
||||||
|
log.debug("Creating Async Task Executor");
|
||||||
|
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
||||||
|
executor.setCorePoolSize(taskExecutionProperties.getPool().getCoreSize());
|
||||||
|
executor.setMaxPoolSize(taskExecutionProperties.getPool().getMaxSize());
|
||||||
|
executor.setQueueCapacity(taskExecutionProperties.getPool().getQueueCapacity());
|
||||||
|
executor.setThreadNamePrefix(taskExecutionProperties.getThreadNamePrefix());
|
||||||
|
return new ExceptionHandlingAsyncTaskExecutor(executor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
|
||||||
|
return new SimpleAsyncUncaughtExceptionHandler();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,106 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import org.ehcache.config.builders.*;
|
||||||
|
import org.ehcache.jsr107.Eh107Configuration;
|
||||||
|
import org.hibernate.cache.jcache.ConfigSettings;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.autoconfigure.cache.JCacheManagerCustomizer;
|
||||||
|
import org.springframework.boot.autoconfigure.orm.jpa.HibernatePropertiesCustomizer;
|
||||||
|
import org.springframework.boot.info.BuildProperties;
|
||||||
|
import org.springframework.boot.info.GitProperties;
|
||||||
|
import org.springframework.cache.annotation.EnableCaching;
|
||||||
|
import org.springframework.cache.interceptor.KeyGenerator;
|
||||||
|
import org.springframework.context.annotation.*;
|
||||||
|
import tech.jhipster.config.JHipsterProperties;
|
||||||
|
import tech.jhipster.config.cache.PrefixedKeyGenerator;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableCaching
|
||||||
|
public class CacheConfiguration {
|
||||||
|
|
||||||
|
private GitProperties gitProperties;
|
||||||
|
private BuildProperties buildProperties;
|
||||||
|
private final javax.cache.configuration.Configuration<Object, Object> jcacheConfiguration;
|
||||||
|
|
||||||
|
public CacheConfiguration(JHipsterProperties jHipsterProperties) {
|
||||||
|
JHipsterProperties.Cache.Ehcache ehcache = jHipsterProperties.getCache().getEhcache();
|
||||||
|
|
||||||
|
jcacheConfiguration =
|
||||||
|
Eh107Configuration.fromEhcacheCacheConfiguration(
|
||||||
|
CacheConfigurationBuilder
|
||||||
|
.newCacheConfigurationBuilder(Object.class, Object.class, ResourcePoolsBuilder.heap(ehcache.getMaxEntries()))
|
||||||
|
.withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(ehcache.getTimeToLiveSeconds())))
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public HibernatePropertiesCustomizer hibernatePropertiesCustomizer(javax.cache.CacheManager cacheManager) {
|
||||||
|
return hibernateProperties -> hibernateProperties.put(ConfigSettings.CACHE_MANAGER, cacheManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public JCacheManagerCustomizer cacheManagerCustomizer() {
|
||||||
|
return cm -> {
|
||||||
|
createCache(cm, org.datasurvey.repository.UserRepository.USERS_BY_LOGIN_CACHE);
|
||||||
|
createCache(cm, org.datasurvey.repository.UserRepository.USERS_BY_EMAIL_CACHE);
|
||||||
|
createCache(cm, org.datasurvey.domain.User.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.Authority.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.User.class.getName() + ".authorities");
|
||||||
|
createCache(cm, org.datasurvey.domain.ParametroAplicacion.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.UsuarioExtra.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.UsuarioExtra.class.getName() + ".encuestas");
|
||||||
|
createCache(cm, org.datasurvey.domain.UsuarioExtra.class.getName() + ".usuarioEncuestas");
|
||||||
|
createCache(cm, org.datasurvey.domain.UsuarioExtra.class.getName() + ".plantillas");
|
||||||
|
createCache(cm, org.datasurvey.domain.Encuesta.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.Encuesta.class.getName() + ".usuarioEncuestas");
|
||||||
|
createCache(cm, org.datasurvey.domain.Encuesta.class.getName() + ".ePreguntaAbiertas");
|
||||||
|
createCache(cm, org.datasurvey.domain.Encuesta.class.getName() + ".ePreguntaCerradas");
|
||||||
|
createCache(cm, org.datasurvey.domain.EPreguntaAbierta.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.EPreguntaAbierta.class.getName() + ".ePreguntaAbiertaRespuestas");
|
||||||
|
createCache(cm, org.datasurvey.domain.EPreguntaAbiertaRespuesta.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.EPreguntaCerrada.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.EPreguntaCerrada.class.getName() + ".ePreguntaCerradaOpcions");
|
||||||
|
createCache(cm, org.datasurvey.domain.EPreguntaCerradaOpcion.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.UsuarioEncuesta.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.Categoria.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.Categoria.class.getName() + ".encuestas");
|
||||||
|
createCache(cm, org.datasurvey.domain.Categoria.class.getName() + ".plantillas");
|
||||||
|
createCache(cm, org.datasurvey.domain.Factura.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.Plantilla.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.Plantilla.class.getName() + ".pPreguntaCerradas");
|
||||||
|
createCache(cm, org.datasurvey.domain.Plantilla.class.getName() + ".pPreguntaAbiertas");
|
||||||
|
createCache(cm, org.datasurvey.domain.Plantilla.class.getName() + ".usuarioExtras");
|
||||||
|
createCache(cm, org.datasurvey.domain.PPreguntaAbierta.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.PPreguntaCerrada.class.getName());
|
||||||
|
createCache(cm, org.datasurvey.domain.PPreguntaCerrada.class.getName() + ".pPreguntaCerradaOpcions");
|
||||||
|
createCache(cm, org.datasurvey.domain.PPreguntaCerradaOpcion.class.getName());
|
||||||
|
// jhipster-needle-ehcache-add-entry
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCache(javax.cache.CacheManager cm, String cacheName) {
|
||||||
|
javax.cache.Cache<Object, Object> cache = cm.getCache(cacheName);
|
||||||
|
if (cache != null) {
|
||||||
|
cache.clear();
|
||||||
|
} else {
|
||||||
|
cm.createCache(cacheName, jcacheConfiguration);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Autowired(required = false)
|
||||||
|
public void setGitProperties(GitProperties gitProperties) {
|
||||||
|
this.gitProperties = gitProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Autowired(required = false)
|
||||||
|
public void setBuildProperties(BuildProperties buildProperties) {
|
||||||
|
this.buildProperties = buildProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public KeyGenerator keyGenerator() {
|
||||||
|
return new PrefixedKeyGenerator(this.gitProperties, this.buildProperties);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Application constants.
|
||||||
|
*/
|
||||||
|
public final class Constants {
|
||||||
|
|
||||||
|
// Regex for acceptable logins
|
||||||
|
public static final String LOGIN_REGEX = "^(?>[a-zA-Z0-9!$&*+=?^_`{|}~.-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)|(?>[_.@A-Za-z0-9-]+)$";
|
||||||
|
|
||||||
|
public static final String SYSTEM = "system";
|
||||||
|
public static final String DEFAULT_LANGUAGE = "es";
|
||||||
|
|
||||||
|
private Constants() {}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
|
||||||
|
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||||
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
import tech.jhipster.config.JHipsterConstants;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableJpaRepositories("org.datasurvey.repository")
|
||||||
|
@EnableJpaAuditing(auditorAwareRef = "springSecurityAuditorAware")
|
||||||
|
@EnableTransactionManagement
|
||||||
|
public class DatabaseConfiguration {}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.format.FormatterRegistry;
|
||||||
|
import org.springframework.format.datetime.standard.DateTimeFormatterRegistrar;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the converters to use the ISO format for dates by default.
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class DateTimeFormatConfiguration implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addFormatters(FormatterRegistry registry) {
|
||||||
|
DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar();
|
||||||
|
registrar.setUseIsoFormat(true);
|
||||||
|
registrar.registerFormatters(registry);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module;
|
||||||
|
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.zalando.problem.ProblemModule;
|
||||||
|
import org.zalando.problem.violations.ConstraintViolationProblemModule;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class JacksonConfiguration {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Support for Java date and time API.
|
||||||
|
* @return the corresponding Jackson module.
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public JavaTimeModule javaTimeModule() {
|
||||||
|
return new JavaTimeModule();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Jdk8Module jdk8TimeModule() {
|
||||||
|
return new Jdk8Module();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Support for Hibernate types in Jackson.
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public Hibernate5Module hibernate5Module() {
|
||||||
|
return new Hibernate5Module();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Module for serialization/deserialization of RFC7807 Problem.
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public ProblemModule problemModule() {
|
||||||
|
return new ProblemModule();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Module for serialization/deserialization of ConstraintViolationProblem.
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public ConstraintViolationProblemModule constraintViolationProblemModule() {
|
||||||
|
return new ConstraintViolationProblemModule();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import liquibase.integration.spring.SpringLiquibase;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.ObjectProvider;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
|
||||||
|
import org.springframework.boot.autoconfigure.liquibase.LiquibaseDataSource;
|
||||||
|
import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
import org.springframework.core.env.Profiles;
|
||||||
|
import tech.jhipster.config.JHipsterConstants;
|
||||||
|
import tech.jhipster.config.liquibase.SpringLiquibaseUtil;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class LiquibaseConfiguration {
|
||||||
|
|
||||||
|
private final Logger log = LoggerFactory.getLogger(LiquibaseConfiguration.class);
|
||||||
|
|
||||||
|
private final Environment env;
|
||||||
|
|
||||||
|
public LiquibaseConfiguration(Environment env) {
|
||||||
|
this.env = env;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public SpringLiquibase liquibase(
|
||||||
|
@Qualifier("taskExecutor") Executor executor,
|
||||||
|
@LiquibaseDataSource ObjectProvider<DataSource> liquibaseDataSource,
|
||||||
|
LiquibaseProperties liquibaseProperties,
|
||||||
|
ObjectProvider<DataSource> dataSource,
|
||||||
|
DataSourceProperties dataSourceProperties
|
||||||
|
) {
|
||||||
|
// If you don't want Liquibase to start asynchronously, substitute by this:
|
||||||
|
// SpringLiquibase liquibase = SpringLiquibaseUtil.createSpringLiquibase(liquibaseDataSource.getIfAvailable(), liquibaseProperties, dataSource.getIfUnique(), dataSourceProperties);
|
||||||
|
SpringLiquibase liquibase = SpringLiquibaseUtil.createAsyncSpringLiquibase(
|
||||||
|
this.env,
|
||||||
|
executor,
|
||||||
|
liquibaseDataSource.getIfAvailable(),
|
||||||
|
liquibaseProperties,
|
||||||
|
dataSource.getIfUnique(),
|
||||||
|
dataSourceProperties
|
||||||
|
);
|
||||||
|
liquibase.setChangeLog("classpath:config/liquibase/master.xml");
|
||||||
|
liquibase.setContexts(liquibaseProperties.getContexts());
|
||||||
|
liquibase.setDefaultSchema(liquibaseProperties.getDefaultSchema());
|
||||||
|
liquibase.setLiquibaseSchema(liquibaseProperties.getLiquibaseSchema());
|
||||||
|
liquibase.setLiquibaseTablespace(liquibaseProperties.getLiquibaseTablespace());
|
||||||
|
liquibase.setDatabaseChangeLogLockTable(liquibaseProperties.getDatabaseChangeLogLockTable());
|
||||||
|
liquibase.setDatabaseChangeLogTable(liquibaseProperties.getDatabaseChangeLogTable());
|
||||||
|
liquibase.setDropFirst(liquibaseProperties.isDropFirst());
|
||||||
|
liquibase.setLabels(liquibaseProperties.getLabels());
|
||||||
|
liquibase.setChangeLogParameters(liquibaseProperties.getParameters());
|
||||||
|
liquibase.setRollbackFile(liquibaseProperties.getRollbackFile());
|
||||||
|
liquibase.setTestRollbackOnUpdate(liquibaseProperties.isTestRollbackOnUpdate());
|
||||||
|
if (env.acceptsProfiles(Profiles.of(JHipsterConstants.SPRING_PROFILE_NO_LIQUIBASE))) {
|
||||||
|
liquibase.setShouldRun(false);
|
||||||
|
} else {
|
||||||
|
liquibase.setShouldRun(liquibaseProperties.isEnabled());
|
||||||
|
log.debug("Configuring Liquibase");
|
||||||
|
}
|
||||||
|
return liquibase;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.LocaleResolver;
|
||||||
|
import org.springframework.web.servlet.config.annotation.*;
|
||||||
|
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
|
||||||
|
import tech.jhipster.config.locale.AngularCookieLocaleResolver;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class LocaleConfiguration implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public LocaleResolver localeResolver() {
|
||||||
|
AngularCookieLocaleResolver cookieLocaleResolver = new AngularCookieLocaleResolver();
|
||||||
|
cookieLocaleResolver.setCookieName("NG_TRANSLATE_LANG_KEY");
|
||||||
|
return cookieLocaleResolver;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addInterceptors(InterceptorRegistry registry) {
|
||||||
|
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
|
||||||
|
localeChangeInterceptor.setParamName("language");
|
||||||
|
registry.addInterceptor(localeChangeInterceptor);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import org.datasurvey.aop.logging.LoggingAspect;
|
||||||
|
import org.springframework.context.annotation.*;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
import tech.jhipster.config.JHipsterConstants;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableAspectJAutoProxy
|
||||||
|
public class LoggingAspectConfiguration {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Profile(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT)
|
||||||
|
public LoggingAspect loggingAspect(Environment env) {
|
||||||
|
return new LoggingAspect(env);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import static tech.jhipster.config.logging.LoggingUtils.*;
|
||||||
|
|
||||||
|
import ch.qos.logback.classic.LoggerContext;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import tech.jhipster.config.JHipsterProperties;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Configures the console and Logstash log appenders from the app properties
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class LoggingConfiguration {
|
||||||
|
|
||||||
|
public LoggingConfiguration(
|
||||||
|
@Value("${spring.application.name}") String appName,
|
||||||
|
@Value("${server.port}") String serverPort,
|
||||||
|
JHipsterProperties jHipsterProperties,
|
||||||
|
ObjectMapper mapper
|
||||||
|
) throws JsonProcessingException {
|
||||||
|
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
|
||||||
|
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
map.put("app_name", appName);
|
||||||
|
map.put("app_port", serverPort);
|
||||||
|
String customFields = mapper.writeValueAsString(map);
|
||||||
|
|
||||||
|
JHipsterProperties.Logging loggingProperties = jHipsterProperties.getLogging();
|
||||||
|
JHipsterProperties.Logging.Logstash logstashProperties = loggingProperties.getLogstash();
|
||||||
|
|
||||||
|
if (loggingProperties.isUseJsonFormat()) {
|
||||||
|
addJsonConsoleAppender(context, customFields);
|
||||||
|
}
|
||||||
|
if (logstashProperties.isEnabled()) {
|
||||||
|
addLogstashTcpSocketAppender(context, customFields, logstashProperties);
|
||||||
|
}
|
||||||
|
if (loggingProperties.isUseJsonFormat() || logstashProperties.isEnabled()) {
|
||||||
|
addContextListener(context, customFields, loggingProperties);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,111 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import org.datasurvey.security.*;
|
||||||
|
import org.datasurvey.security.jwt.*;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.builders.WebSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||||
|
import org.springframework.security.config.http.SessionCreationPolicy;
|
||||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
|
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
||||||
|
import org.springframework.security.web.header.writers.ReferrerPolicyHeaderWriter;
|
||||||
|
import org.springframework.web.filter.CorsFilter;
|
||||||
|
import org.zalando.problem.spring.web.advice.security.SecurityProblemSupport;
|
||||||
|
import tech.jhipster.config.JHipsterProperties;
|
||||||
|
|
||||||
|
@EnableWebSecurity
|
||||||
|
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
|
||||||
|
@Import(SecurityProblemSupport.class)
|
||||||
|
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
|
||||||
|
|
||||||
|
private final JHipsterProperties jHipsterProperties;
|
||||||
|
|
||||||
|
private final TokenProvider tokenProvider;
|
||||||
|
|
||||||
|
private final CorsFilter corsFilter;
|
||||||
|
private final SecurityProblemSupport problemSupport;
|
||||||
|
|
||||||
|
public SecurityConfiguration(
|
||||||
|
TokenProvider tokenProvider,
|
||||||
|
CorsFilter corsFilter,
|
||||||
|
JHipsterProperties jHipsterProperties,
|
||||||
|
SecurityProblemSupport problemSupport
|
||||||
|
) {
|
||||||
|
this.tokenProvider = tokenProvider;
|
||||||
|
this.corsFilter = corsFilter;
|
||||||
|
this.problemSupport = problemSupport;
|
||||||
|
this.jHipsterProperties = jHipsterProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public PasswordEncoder passwordEncoder() {
|
||||||
|
return new BCryptPasswordEncoder();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configure(WebSecurity web) {
|
||||||
|
web
|
||||||
|
.ignoring()
|
||||||
|
.antMatchers(HttpMethod.OPTIONS, "/**")
|
||||||
|
.antMatchers("/app/**/*.{js,html}")
|
||||||
|
.antMatchers("/i18n/**")
|
||||||
|
.antMatchers("/content/**")
|
||||||
|
.antMatchers("/swagger-ui/**")
|
||||||
|
.antMatchers("/test/**");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configure(HttpSecurity http) throws Exception {
|
||||||
|
// @formatter:off
|
||||||
|
http
|
||||||
|
.csrf()
|
||||||
|
.disable()
|
||||||
|
.addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter.class)
|
||||||
|
.exceptionHandling()
|
||||||
|
.authenticationEntryPoint(problemSupport)
|
||||||
|
.accessDeniedHandler(problemSupport)
|
||||||
|
.and()
|
||||||
|
.headers()
|
||||||
|
.contentSecurityPolicy(jHipsterProperties.getSecurity().getContentSecurityPolicy())
|
||||||
|
.and()
|
||||||
|
.referrerPolicy(ReferrerPolicyHeaderWriter.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN)
|
||||||
|
.and()
|
||||||
|
.featurePolicy("geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'self'; payment 'none'")
|
||||||
|
.and()
|
||||||
|
.frameOptions()
|
||||||
|
.deny()
|
||||||
|
.and()
|
||||||
|
.sessionManagement()
|
||||||
|
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
|
||||||
|
.and()
|
||||||
|
.authorizeRequests()
|
||||||
|
.antMatchers("/api/authenticate").permitAll()
|
||||||
|
.antMatchers("/api/register").permitAll()
|
||||||
|
.antMatchers("/api/activate").permitAll()
|
||||||
|
.antMatchers("/api/account/reset-password/init").permitAll()
|
||||||
|
.antMatchers("/api/account/reset-password/finish").permitAll()
|
||||||
|
.antMatchers("/api/admin/**").hasAuthority(AuthoritiesConstants.ADMIN)
|
||||||
|
.antMatchers("/api/**").authenticated()
|
||||||
|
.antMatchers("/websocket/**").authenticated()
|
||||||
|
.antMatchers("/management/health").permitAll()
|
||||||
|
.antMatchers("/management/health/**").permitAll()
|
||||||
|
.antMatchers("/management/info").permitAll()
|
||||||
|
.antMatchers("/management/prometheus").permitAll()
|
||||||
|
.antMatchers("/management/**").hasAuthority(AuthoritiesConstants.ADMIN)
|
||||||
|
.and()
|
||||||
|
.httpBasic()
|
||||||
|
.and()
|
||||||
|
.apply(securityConfigurerAdapter());
|
||||||
|
// @formatter:on
|
||||||
|
}
|
||||||
|
|
||||||
|
private JWTConfigurer securityConfigurerAdapter() {
|
||||||
|
return new JWTConfigurer(tokenProvider);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Profile;
|
||||||
|
import org.springframework.http.CacheControl;
|
||||||
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
import tech.jhipster.config.JHipsterConstants;
|
||||||
|
import tech.jhipster.config.JHipsterProperties;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@Profile({ JHipsterConstants.SPRING_PROFILE_PRODUCTION })
|
||||||
|
public class StaticResourcesWebConfiguration implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
protected static final String[] RESOURCE_LOCATIONS = new String[] {
|
||||||
|
"classpath:/static/",
|
||||||
|
"classpath:/static/content/",
|
||||||
|
"classpath:/static/i18n/",
|
||||||
|
};
|
||||||
|
protected static final String[] RESOURCE_PATHS = new String[] {
|
||||||
|
"/*.js",
|
||||||
|
"/*.css",
|
||||||
|
"/*.svg",
|
||||||
|
"/*.png",
|
||||||
|
"*.ico",
|
||||||
|
"/content/**",
|
||||||
|
"/i18n/*",
|
||||||
|
};
|
||||||
|
|
||||||
|
private final JHipsterProperties jhipsterProperties;
|
||||||
|
|
||||||
|
public StaticResourcesWebConfiguration(JHipsterProperties jHipsterProperties) {
|
||||||
|
this.jhipsterProperties = jHipsterProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||||
|
ResourceHandlerRegistration resourceHandlerRegistration = appendResourceHandler(registry);
|
||||||
|
initializeResourceHandler(resourceHandlerRegistration);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected ResourceHandlerRegistration appendResourceHandler(ResourceHandlerRegistry registry) {
|
||||||
|
return registry.addResourceHandler(RESOURCE_PATHS);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void initializeResourceHandler(ResourceHandlerRegistration resourceHandlerRegistration) {
|
||||||
|
resourceHandlerRegistration.addResourceLocations(RESOURCE_LOCATIONS).setCacheControl(getCacheControl());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected CacheControl getCacheControl() {
|
||||||
|
return CacheControl.maxAge(getJHipsterHttpCacheProperty(), TimeUnit.DAYS).cachePublic();
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getJHipsterHttpCacheProperty() {
|
||||||
|
return jhipsterProperties.getHttp().getCache().getTimeToLiveInDays();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import static java.net.URLDecoder.decode;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.*;
|
||||||
|
import javax.servlet.*;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.boot.web.server.*;
|
||||||
|
import org.springframework.boot.web.servlet.ServletContextInitializer;
|
||||||
|
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
import org.springframework.core.env.Profiles;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.web.cors.CorsConfiguration;
|
||||||
|
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||||
|
import org.springframework.web.filter.CorsFilter;
|
||||||
|
import tech.jhipster.config.JHipsterConstants;
|
||||||
|
import tech.jhipster.config.JHipsterProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration of web application with Servlet 3.0 APIs.
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class WebConfigurer implements ServletContextInitializer, WebServerFactoryCustomizer<WebServerFactory> {
|
||||||
|
|
||||||
|
private final Logger log = LoggerFactory.getLogger(WebConfigurer.class);
|
||||||
|
|
||||||
|
private final Environment env;
|
||||||
|
|
||||||
|
private final JHipsterProperties jHipsterProperties;
|
||||||
|
|
||||||
|
public WebConfigurer(Environment env, JHipsterProperties jHipsterProperties) {
|
||||||
|
this.env = env;
|
||||||
|
this.jHipsterProperties = jHipsterProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStartup(ServletContext servletContext) throws ServletException {
|
||||||
|
if (env.getActiveProfiles().length != 0) {
|
||||||
|
log.info("Web application configuration, using profiles: {}", (Object[]) env.getActiveProfiles());
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("Web application fully configured");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Customize the Servlet engine: Mime types, the document root, the cache.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void customize(WebServerFactory server) {
|
||||||
|
// When running in an IDE or with ./mvnw spring-boot:run, set location of the static web assets.
|
||||||
|
setLocationForStaticAssets(server);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setLocationForStaticAssets(WebServerFactory server) {
|
||||||
|
if (server instanceof ConfigurableServletWebServerFactory) {
|
||||||
|
ConfigurableServletWebServerFactory servletWebServer = (ConfigurableServletWebServerFactory) server;
|
||||||
|
File root;
|
||||||
|
String prefixPath = resolvePathPrefix();
|
||||||
|
root = new File(prefixPath + "target/classes/static/");
|
||||||
|
if (root.exists() && root.isDirectory()) {
|
||||||
|
servletWebServer.setDocumentRoot(root);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolve path prefix to static resources.
|
||||||
|
*/
|
||||||
|
private String resolvePathPrefix() {
|
||||||
|
String fullExecutablePath;
|
||||||
|
try {
|
||||||
|
fullExecutablePath = decode(this.getClass().getResource("").getPath(), StandardCharsets.UTF_8.name());
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
/* try without decoding if this ever happens */
|
||||||
|
fullExecutablePath = this.getClass().getResource("").getPath();
|
||||||
|
}
|
||||||
|
String rootPath = Paths.get(".").toUri().normalize().getPath();
|
||||||
|
String extractedPath = fullExecutablePath.replace(rootPath, "");
|
||||||
|
int extractionEndIndex = extractedPath.indexOf("target/");
|
||||||
|
if (extractionEndIndex <= 0) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return extractedPath.substring(0, extractionEndIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public CorsFilter corsFilter() {
|
||||||
|
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||||
|
CorsConfiguration config = jHipsterProperties.getCors();
|
||||||
|
if (!CollectionUtils.isEmpty(config.getAllowedOrigins()) || !CollectionUtils.isEmpty(config.getAllowedOriginPatterns())) {
|
||||||
|
log.debug("Registering CORS filter");
|
||||||
|
source.registerCorsConfiguration("/api/**", config);
|
||||||
|
source.registerCorsConfiguration("/management/**", config);
|
||||||
|
source.registerCorsConfiguration("/v2/api-docs", config);
|
||||||
|
source.registerCorsConfiguration("/v3/api-docs", config);
|
||||||
|
source.registerCorsConfiguration("/swagger-resources", config);
|
||||||
|
source.registerCorsConfiguration("/swagger-ui/**", config);
|
||||||
|
}
|
||||||
|
return new CorsFilter(source);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,90 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import java.security.Principal;
|
||||||
|
import java.util.*;
|
||||||
|
import org.datasurvey.security.AuthoritiesConstants;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.http.server.*;
|
||||||
|
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
|
||||||
|
import org.springframework.security.authentication.AnonymousAuthenticationToken;
|
||||||
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||||
|
import org.springframework.web.socket.WebSocketHandler;
|
||||||
|
import org.springframework.web.socket.config.annotation.*;
|
||||||
|
import org.springframework.web.socket.server.HandshakeInterceptor;
|
||||||
|
import org.springframework.web.socket.server.support.DefaultHandshakeHandler;
|
||||||
|
import tech.jhipster.config.JHipsterProperties;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableWebSocketMessageBroker
|
||||||
|
public class WebsocketConfiguration implements WebSocketMessageBrokerConfigurer {
|
||||||
|
|
||||||
|
public static final String IP_ADDRESS = "IP_ADDRESS";
|
||||||
|
|
||||||
|
private final JHipsterProperties jHipsterProperties;
|
||||||
|
|
||||||
|
public WebsocketConfiguration(JHipsterProperties jHipsterProperties) {
|
||||||
|
this.jHipsterProperties = jHipsterProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configureMessageBroker(MessageBrokerRegistry config) {
|
||||||
|
config.enableSimpleBroker("/topic");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerStompEndpoints(StompEndpointRegistry registry) {
|
||||||
|
String[] allowedOrigins = Optional
|
||||||
|
.ofNullable(jHipsterProperties.getCors().getAllowedOrigins())
|
||||||
|
.map(origins -> origins.toArray(new String[0]))
|
||||||
|
.orElse(new String[0]);
|
||||||
|
registry
|
||||||
|
.addEndpoint("/websocket/tracker")
|
||||||
|
.setHandshakeHandler(defaultHandshakeHandler())
|
||||||
|
.setAllowedOrigins(allowedOrigins)
|
||||||
|
.withSockJS()
|
||||||
|
.setInterceptors(httpSessionHandshakeInterceptor());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public HandshakeInterceptor httpSessionHandshakeInterceptor() {
|
||||||
|
return new HandshakeInterceptor() {
|
||||||
|
@Override
|
||||||
|
public boolean beforeHandshake(
|
||||||
|
ServerHttpRequest request,
|
||||||
|
ServerHttpResponse response,
|
||||||
|
WebSocketHandler wsHandler,
|
||||||
|
Map<String, Object> attributes
|
||||||
|
) throws Exception {
|
||||||
|
if (request instanceof ServletServerHttpRequest) {
|
||||||
|
ServletServerHttpRequest servletRequest = (ServletServerHttpRequest) request;
|
||||||
|
attributes.put(IP_ADDRESS, servletRequest.getRemoteAddress());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterHandshake(
|
||||||
|
ServerHttpRequest request,
|
||||||
|
ServerHttpResponse response,
|
||||||
|
WebSocketHandler wsHandler,
|
||||||
|
Exception exception
|
||||||
|
) {}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private DefaultHandshakeHandler defaultHandshakeHandler() {
|
||||||
|
return new DefaultHandshakeHandler() {
|
||||||
|
@Override
|
||||||
|
protected Principal determineUser(ServerHttpRequest request, WebSocketHandler wsHandler, Map<String, Object> attributes) {
|
||||||
|
Principal principal = request.getPrincipal();
|
||||||
|
if (principal == null) {
|
||||||
|
Collection<SimpleGrantedAuthority> authorities = new ArrayList<>();
|
||||||
|
authorities.add(new SimpleGrantedAuthority(AuthoritiesConstants.ANONYMOUS));
|
||||||
|
principal = new AnonymousAuthenticationToken("WebsocketConfiguration", "anonymous", authorities);
|
||||||
|
}
|
||||||
|
return principal;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
package org.datasurvey.config;
|
||||||
|
|
||||||
|
import org.datasurvey.security.AuthoritiesConstants;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.messaging.simp.SimpMessageType;
|
||||||
|
import org.springframework.security.config.annotation.web.messaging.MessageSecurityMetadataSourceRegistry;
|
||||||
|
import org.springframework.security.config.annotation.web.socket.AbstractSecurityWebSocketMessageBrokerConfigurer;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class WebsocketSecurityConfiguration extends AbstractSecurityWebSocketMessageBrokerConfigurer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configureInbound(MessageSecurityMetadataSourceRegistry messages) {
|
||||||
|
messages
|
||||||
|
.nullDestMatcher()
|
||||||
|
.authenticated()
|
||||||
|
.simpDestMatchers("/topic/tracker")
|
||||||
|
.hasAuthority(AuthoritiesConstants.ADMIN)
|
||||||
|
// matches any destination that starts with /topic/
|
||||||
|
// (i.e. cannot send messages directly to /topic/)
|
||||||
|
// (i.e. cannot subscribe to /topic/messages/* to get messages sent to
|
||||||
|
// /topic/messages-user<id>)
|
||||||
|
.simpDestMatchers("/topic/**")
|
||||||
|
.authenticated()
|
||||||
|
// message types other than MESSAGE and SUBSCRIBE
|
||||||
|
.simpTypeMatchers(SimpMessageType.MESSAGE, SimpMessageType.SUBSCRIBE)
|
||||||
|
.denyAll()
|
||||||
|
// catch all
|
||||||
|
.anyMessage()
|
||||||
|
.denyAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disables CSRF for Websockets.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected boolean sameOriginDisabled() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
/**
|
||||||
|
* Spring Framework configuration files.
|
||||||
|
*/
|
||||||
|
package org.datasurvey.config;
|
|
@ -0,0 +1,76 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.Instant;
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.EntityListeners;
|
||||||
|
import javax.persistence.MappedSuperclass;
|
||||||
|
import org.springframework.data.annotation.CreatedBy;
|
||||||
|
import org.springframework.data.annotation.CreatedDate;
|
||||||
|
import org.springframework.data.annotation.LastModifiedBy;
|
||||||
|
import org.springframework.data.annotation.LastModifiedDate;
|
||||||
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base abstract class for entities which will hold definitions for created, last modified, created by,
|
||||||
|
* last modified by attributes.
|
||||||
|
*/
|
||||||
|
@MappedSuperclass
|
||||||
|
@EntityListeners(AuditingEntityListener.class)
|
||||||
|
public abstract class AbstractAuditingEntity implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@CreatedBy
|
||||||
|
@Column(name = "created_by", nullable = false, length = 50, updatable = false)
|
||||||
|
@JsonIgnore
|
||||||
|
private String createdBy;
|
||||||
|
|
||||||
|
@CreatedDate
|
||||||
|
@Column(name = "created_date", updatable = false)
|
||||||
|
@JsonIgnore
|
||||||
|
private Instant createdDate = Instant.now();
|
||||||
|
|
||||||
|
@LastModifiedBy
|
||||||
|
@Column(name = "last_modified_by", length = 50)
|
||||||
|
@JsonIgnore
|
||||||
|
private String lastModifiedBy;
|
||||||
|
|
||||||
|
@LastModifiedDate
|
||||||
|
@Column(name = "last_modified_date")
|
||||||
|
@JsonIgnore
|
||||||
|
private Instant lastModifiedDate = Instant.now();
|
||||||
|
|
||||||
|
public String getCreatedBy() {
|
||||||
|
return createdBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreatedBy(String createdBy) {
|
||||||
|
this.createdBy = createdBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Instant getCreatedDate() {
|
||||||
|
return createdDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreatedDate(Instant createdDate) {
|
||||||
|
this.createdDate = createdDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastModifiedBy() {
|
||||||
|
return lastModifiedBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastModifiedBy(String lastModifiedBy) {
|
||||||
|
this.lastModifiedBy = lastModifiedBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Instant getLastModifiedDate() {
|
||||||
|
return lastModifiedDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastModifiedDate(Instant lastModifiedDate) {
|
||||||
|
this.lastModifiedDate = lastModifiedDate;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Objects;
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An authority (a security role) used by Spring Security.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "jhi_authority")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
|
||||||
|
public class Authority implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Size(max = 50)
|
||||||
|
@Id
|
||||||
|
@Column(length = 50)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof Authority)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Objects.equals(name, ((Authority) o).name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hashCode(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Authority{" +
|
||||||
|
"name='" + name + '\'' +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,179 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.datasurvey.domain.enumeration.EstadoCategoria;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Categoria.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "categoria")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class Categoria implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "nombre", nullable = false)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "estado", nullable = false)
|
||||||
|
private EstadoCategoria estado;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "categoria")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(
|
||||||
|
value = { "usuarioEncuestas", "ePreguntaAbiertas", "ePreguntaCerradas", "categoria", "usuarioExtra" },
|
||||||
|
allowSetters = true
|
||||||
|
)
|
||||||
|
private Set<Encuesta> encuestas = new HashSet<>();
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "categoria")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "pPreguntaCerradas", "pPreguntaAbiertas", "categoria", "usuarioExtras" }, allowSetters = true)
|
||||||
|
private Set<Plantilla> plantillas = new HashSet<>();
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EstadoCategoria getEstado() {
|
||||||
|
return this.estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria estado(EstadoCategoria estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstado(EstadoCategoria estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Encuesta> getEncuestas() {
|
||||||
|
return this.encuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria encuestas(Set<Encuesta> encuestas) {
|
||||||
|
this.setEncuestas(encuestas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria addEncuesta(Encuesta encuesta) {
|
||||||
|
this.encuestas.add(encuesta);
|
||||||
|
encuesta.setCategoria(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria removeEncuesta(Encuesta encuesta) {
|
||||||
|
this.encuestas.remove(encuesta);
|
||||||
|
encuesta.setCategoria(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEncuestas(Set<Encuesta> encuestas) {
|
||||||
|
if (this.encuestas != null) {
|
||||||
|
this.encuestas.forEach(i -> i.setCategoria(null));
|
||||||
|
}
|
||||||
|
if (encuestas != null) {
|
||||||
|
encuestas.forEach(i -> i.setCategoria(this));
|
||||||
|
}
|
||||||
|
this.encuestas = encuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Plantilla> getPlantillas() {
|
||||||
|
return this.plantillas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria plantillas(Set<Plantilla> plantillas) {
|
||||||
|
this.setPlantillas(plantillas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria addPlantilla(Plantilla plantilla) {
|
||||||
|
this.plantillas.add(plantilla);
|
||||||
|
plantilla.setCategoria(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria removePlantilla(Plantilla plantilla) {
|
||||||
|
this.plantillas.remove(plantilla);
|
||||||
|
plantilla.setCategoria(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlantillas(Set<Plantilla> plantillas) {
|
||||||
|
if (this.plantillas != null) {
|
||||||
|
this.plantillas.forEach(i -> i.setCategoria(null));
|
||||||
|
}
|
||||||
|
if (plantillas != null) {
|
||||||
|
plantillas.forEach(i -> i.setCategoria(this));
|
||||||
|
}
|
||||||
|
this.plantillas = plantillas;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof Categoria)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((Categoria) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Categoria{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", estado='" + getEstado() + "'" +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,177 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A EPreguntaAbierta.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "e_pregunta_abierta")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class EPreguntaAbierta implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Size(min = 1, max = 500)
|
||||||
|
@Column(name = "nombre", length = 500, nullable = false)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "opcional", nullable = false)
|
||||||
|
private Boolean opcional;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "orden", nullable = false)
|
||||||
|
private Integer orden;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "ePreguntaAbierta")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "ePreguntaAbierta" }, allowSetters = true)
|
||||||
|
private Set<EPreguntaAbiertaRespuesta> ePreguntaAbiertaRespuestas = new HashSet<>();
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(
|
||||||
|
value = { "usuarioEncuestas", "ePreguntaAbiertas", "ePreguntaCerradas", "categoria", "usuarioExtra" },
|
||||||
|
allowSetters = true
|
||||||
|
)
|
||||||
|
private Encuesta encuesta;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbierta id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbierta nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getOpcional() {
|
||||||
|
return this.opcional;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbierta opcional(Boolean opcional) {
|
||||||
|
this.opcional = opcional;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOpcional(Boolean opcional) {
|
||||||
|
this.opcional = opcional;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getOrden() {
|
||||||
|
return this.orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbierta orden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<EPreguntaAbiertaRespuesta> getEPreguntaAbiertaRespuestas() {
|
||||||
|
return this.ePreguntaAbiertaRespuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbierta ePreguntaAbiertaRespuestas(Set<EPreguntaAbiertaRespuesta> ePreguntaAbiertaRespuestas) {
|
||||||
|
this.setEPreguntaAbiertaRespuestas(ePreguntaAbiertaRespuestas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbierta addEPreguntaAbiertaRespuesta(EPreguntaAbiertaRespuesta ePreguntaAbiertaRespuesta) {
|
||||||
|
this.ePreguntaAbiertaRespuestas.add(ePreguntaAbiertaRespuesta);
|
||||||
|
ePreguntaAbiertaRespuesta.setEPreguntaAbierta(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbierta removeEPreguntaAbiertaRespuesta(EPreguntaAbiertaRespuesta ePreguntaAbiertaRespuesta) {
|
||||||
|
this.ePreguntaAbiertaRespuestas.remove(ePreguntaAbiertaRespuesta);
|
||||||
|
ePreguntaAbiertaRespuesta.setEPreguntaAbierta(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEPreguntaAbiertaRespuestas(Set<EPreguntaAbiertaRespuesta> ePreguntaAbiertaRespuestas) {
|
||||||
|
if (this.ePreguntaAbiertaRespuestas != null) {
|
||||||
|
this.ePreguntaAbiertaRespuestas.forEach(i -> i.setEPreguntaAbierta(null));
|
||||||
|
}
|
||||||
|
if (ePreguntaAbiertaRespuestas != null) {
|
||||||
|
ePreguntaAbiertaRespuestas.forEach(i -> i.setEPreguntaAbierta(this));
|
||||||
|
}
|
||||||
|
this.ePreguntaAbiertaRespuestas = ePreguntaAbiertaRespuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta getEncuesta() {
|
||||||
|
return this.encuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbierta encuesta(Encuesta encuesta) {
|
||||||
|
this.setEncuesta(encuesta);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEncuesta(Encuesta encuesta) {
|
||||||
|
this.encuesta = encuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof EPreguntaAbierta)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((EPreguntaAbierta) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "EPreguntaAbierta{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", opcional='" + getOpcional() + "'" +
|
||||||
|
", orden=" + getOrden() +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,99 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A EPreguntaAbiertaRespuesta.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "e_pregunta_abierta_respuesta")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class EPreguntaAbiertaRespuesta implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "respuesta", nullable = false)
|
||||||
|
private String respuesta;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(value = { "ePreguntaAbiertaRespuestas", "encuesta" }, allowSetters = true)
|
||||||
|
private EPreguntaAbierta ePreguntaAbierta;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbiertaRespuesta id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRespuesta() {
|
||||||
|
return this.respuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbiertaRespuesta respuesta(String respuesta) {
|
||||||
|
this.respuesta = respuesta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRespuesta(String respuesta) {
|
||||||
|
this.respuesta = respuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbierta getEPreguntaAbierta() {
|
||||||
|
return this.ePreguntaAbierta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaAbiertaRespuesta ePreguntaAbierta(EPreguntaAbierta ePreguntaAbierta) {
|
||||||
|
this.setEPreguntaAbierta(ePreguntaAbierta);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEPreguntaAbierta(EPreguntaAbierta ePreguntaAbierta) {
|
||||||
|
this.ePreguntaAbierta = ePreguntaAbierta;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof EPreguntaAbiertaRespuesta)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((EPreguntaAbiertaRespuesta) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "EPreguntaAbiertaRespuesta{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", respuesta='" + getRespuesta() + "'" +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,197 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.datasurvey.domain.enumeration.PreguntaCerradaTipo;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A EPreguntaCerrada.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "e_pregunta_cerrada")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class EPreguntaCerrada implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Size(min = 1, max = 500)
|
||||||
|
@Column(name = "nombre", length = 500, nullable = false)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "tipo", nullable = false)
|
||||||
|
private PreguntaCerradaTipo tipo;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "opcional", nullable = false)
|
||||||
|
private Boolean opcional;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "orden", nullable = false)
|
||||||
|
private Integer orden;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "ePreguntaCerrada")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "ePreguntaCerrada" }, allowSetters = true)
|
||||||
|
private Set<EPreguntaCerradaOpcion> ePreguntaCerradaOpcions = new HashSet<>();
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(
|
||||||
|
value = { "usuarioEncuestas", "ePreguntaAbiertas", "ePreguntaCerradas", "categoria", "usuarioExtra" },
|
||||||
|
allowSetters = true
|
||||||
|
)
|
||||||
|
private Encuesta encuesta;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PreguntaCerradaTipo getTipo() {
|
||||||
|
return this.tipo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada tipo(PreguntaCerradaTipo tipo) {
|
||||||
|
this.tipo = tipo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTipo(PreguntaCerradaTipo tipo) {
|
||||||
|
this.tipo = tipo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getOpcional() {
|
||||||
|
return this.opcional;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada opcional(Boolean opcional) {
|
||||||
|
this.opcional = opcional;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOpcional(Boolean opcional) {
|
||||||
|
this.opcional = opcional;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getOrden() {
|
||||||
|
return this.orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada orden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<EPreguntaCerradaOpcion> getEPreguntaCerradaOpcions() {
|
||||||
|
return this.ePreguntaCerradaOpcions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada ePreguntaCerradaOpcions(Set<EPreguntaCerradaOpcion> ePreguntaCerradaOpcions) {
|
||||||
|
this.setEPreguntaCerradaOpcions(ePreguntaCerradaOpcions);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada addEPreguntaCerradaOpcion(EPreguntaCerradaOpcion ePreguntaCerradaOpcion) {
|
||||||
|
this.ePreguntaCerradaOpcions.add(ePreguntaCerradaOpcion);
|
||||||
|
ePreguntaCerradaOpcion.setEPreguntaCerrada(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada removeEPreguntaCerradaOpcion(EPreguntaCerradaOpcion ePreguntaCerradaOpcion) {
|
||||||
|
this.ePreguntaCerradaOpcions.remove(ePreguntaCerradaOpcion);
|
||||||
|
ePreguntaCerradaOpcion.setEPreguntaCerrada(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEPreguntaCerradaOpcions(Set<EPreguntaCerradaOpcion> ePreguntaCerradaOpcions) {
|
||||||
|
if (this.ePreguntaCerradaOpcions != null) {
|
||||||
|
this.ePreguntaCerradaOpcions.forEach(i -> i.setEPreguntaCerrada(null));
|
||||||
|
}
|
||||||
|
if (ePreguntaCerradaOpcions != null) {
|
||||||
|
ePreguntaCerradaOpcions.forEach(i -> i.setEPreguntaCerrada(this));
|
||||||
|
}
|
||||||
|
this.ePreguntaCerradaOpcions = ePreguntaCerradaOpcions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta getEncuesta() {
|
||||||
|
return this.encuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada encuesta(Encuesta encuesta) {
|
||||||
|
this.setEncuesta(encuesta);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEncuesta(Encuesta encuesta) {
|
||||||
|
this.encuesta = encuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof EPreguntaCerrada)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((EPreguntaCerrada) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "EPreguntaCerrada{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", tipo='" + getTipo() + "'" +
|
||||||
|
", opcional='" + getOpcional() + "'" +
|
||||||
|
", orden=" + getOrden() +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,136 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A EPreguntaCerradaOpcion.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "e_pregunta_cerrada_opcion")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class EPreguntaCerradaOpcion implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Size(min = 1, max = 500)
|
||||||
|
@Column(name = "nombre", length = 500, nullable = false)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "orden", nullable = false)
|
||||||
|
private Integer orden;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "cantidad", nullable = false)
|
||||||
|
private Integer cantidad;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(value = { "ePreguntaCerradaOpcions", "encuesta" }, allowSetters = true)
|
||||||
|
private EPreguntaCerrada ePreguntaCerrada;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerradaOpcion id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerradaOpcion nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getOrden() {
|
||||||
|
return this.orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerradaOpcion orden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCantidad() {
|
||||||
|
return this.cantidad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerradaOpcion cantidad(Integer cantidad) {
|
||||||
|
this.cantidad = cantidad;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCantidad(Integer cantidad) {
|
||||||
|
this.cantidad = cantidad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerrada getEPreguntaCerrada() {
|
||||||
|
return this.ePreguntaCerrada;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EPreguntaCerradaOpcion ePreguntaCerrada(EPreguntaCerrada ePreguntaCerrada) {
|
||||||
|
this.setEPreguntaCerrada(ePreguntaCerrada);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEPreguntaCerrada(EPreguntaCerrada ePreguntaCerrada) {
|
||||||
|
this.ePreguntaCerrada = ePreguntaCerrada;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof EPreguntaCerradaOpcion)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((EPreguntaCerradaOpcion) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "EPreguntaCerradaOpcion{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", orden=" + getOrden() +
|
||||||
|
", cantidad=" + getCantidad() +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,389 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.datasurvey.domain.enumeration.AccesoEncuesta;
|
||||||
|
import org.datasurvey.domain.enumeration.EstadoEncuesta;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Encuesta.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "encuesta")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class Encuesta implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Size(min = 1, max = 50)
|
||||||
|
@Column(name = "nombre", length = 50, nullable = false)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@Column(name = "descripcion")
|
||||||
|
private String descripcion;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "fecha_creacion", nullable = false)
|
||||||
|
private ZonedDateTime fechaCreacion;
|
||||||
|
|
||||||
|
@Column(name = "fecha_publicacion")
|
||||||
|
private ZonedDateTime fechaPublicacion;
|
||||||
|
|
||||||
|
@Column(name = "fecha_finalizar")
|
||||||
|
private ZonedDateTime fechaFinalizar;
|
||||||
|
|
||||||
|
@Column(name = "fecha_finalizada")
|
||||||
|
private ZonedDateTime fechaFinalizada;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "calificacion", nullable = false)
|
||||||
|
private Double calificacion;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "acceso", nullable = false)
|
||||||
|
private AccesoEncuesta acceso;
|
||||||
|
|
||||||
|
@Column(name = "contrasenna")
|
||||||
|
private String contrasenna;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "estado", nullable = false)
|
||||||
|
private EstadoEncuesta estado;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "encuesta")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "usuarioExtra", "encuesta" }, allowSetters = true)
|
||||||
|
private Set<UsuarioEncuesta> usuarioEncuestas = new HashSet<>();
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "encuesta")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "ePreguntaAbiertaRespuestas", "encuesta" }, allowSetters = true)
|
||||||
|
private Set<EPreguntaAbierta> ePreguntaAbiertas = new HashSet<>();
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "encuesta")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "ePreguntaCerradaOpcions", "encuesta" }, allowSetters = true)
|
||||||
|
private Set<EPreguntaCerrada> ePreguntaCerradas = new HashSet<>();
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(value = { "encuestas", "plantillas" }, allowSetters = true)
|
||||||
|
private Categoria categoria;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(value = { "user", "encuestas", "usuarioEncuestas", "plantillas" }, allowSetters = true)
|
||||||
|
private UsuarioExtra usuarioExtra;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescripcion() {
|
||||||
|
return this.descripcion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta descripcion(String descripcion) {
|
||||||
|
this.descripcion = descripcion;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescripcion(String descripcion) {
|
||||||
|
this.descripcion = descripcion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZonedDateTime getFechaCreacion() {
|
||||||
|
return this.fechaCreacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta fechaCreacion(ZonedDateTime fechaCreacion) {
|
||||||
|
this.fechaCreacion = fechaCreacion;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFechaCreacion(ZonedDateTime fechaCreacion) {
|
||||||
|
this.fechaCreacion = fechaCreacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZonedDateTime getFechaPublicacion() {
|
||||||
|
return this.fechaPublicacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta fechaPublicacion(ZonedDateTime fechaPublicacion) {
|
||||||
|
this.fechaPublicacion = fechaPublicacion;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFechaPublicacion(ZonedDateTime fechaPublicacion) {
|
||||||
|
this.fechaPublicacion = fechaPublicacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZonedDateTime getFechaFinalizar() {
|
||||||
|
return this.fechaFinalizar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta fechaFinalizar(ZonedDateTime fechaFinalizar) {
|
||||||
|
this.fechaFinalizar = fechaFinalizar;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFechaFinalizar(ZonedDateTime fechaFinalizar) {
|
||||||
|
this.fechaFinalizar = fechaFinalizar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZonedDateTime getFechaFinalizada() {
|
||||||
|
return this.fechaFinalizada;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta fechaFinalizada(ZonedDateTime fechaFinalizada) {
|
||||||
|
this.fechaFinalizada = fechaFinalizada;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFechaFinalizada(ZonedDateTime fechaFinalizada) {
|
||||||
|
this.fechaFinalizada = fechaFinalizada;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Double getCalificacion() {
|
||||||
|
return this.calificacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta calificacion(Double calificacion) {
|
||||||
|
this.calificacion = calificacion;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCalificacion(Double calificacion) {
|
||||||
|
this.calificacion = calificacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AccesoEncuesta getAcceso() {
|
||||||
|
return this.acceso;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta acceso(AccesoEncuesta acceso) {
|
||||||
|
this.acceso = acceso;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAcceso(AccesoEncuesta acceso) {
|
||||||
|
this.acceso = acceso;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContrasenna() {
|
||||||
|
return this.contrasenna;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta contrasenna(String contrasenna) {
|
||||||
|
this.contrasenna = contrasenna;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContrasenna(String contrasenna) {
|
||||||
|
this.contrasenna = contrasenna;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EstadoEncuesta getEstado() {
|
||||||
|
return this.estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta estado(EstadoEncuesta estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstado(EstadoEncuesta estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<UsuarioEncuesta> getUsuarioEncuestas() {
|
||||||
|
return this.usuarioEncuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta usuarioEncuestas(Set<UsuarioEncuesta> usuarioEncuestas) {
|
||||||
|
this.setUsuarioEncuestas(usuarioEncuestas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta addUsuarioEncuesta(UsuarioEncuesta usuarioEncuesta) {
|
||||||
|
this.usuarioEncuestas.add(usuarioEncuesta);
|
||||||
|
usuarioEncuesta.setEncuesta(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta removeUsuarioEncuesta(UsuarioEncuesta usuarioEncuesta) {
|
||||||
|
this.usuarioEncuestas.remove(usuarioEncuesta);
|
||||||
|
usuarioEncuesta.setEncuesta(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsuarioEncuestas(Set<UsuarioEncuesta> usuarioEncuestas) {
|
||||||
|
if (this.usuarioEncuestas != null) {
|
||||||
|
this.usuarioEncuestas.forEach(i -> i.setEncuesta(null));
|
||||||
|
}
|
||||||
|
if (usuarioEncuestas != null) {
|
||||||
|
usuarioEncuestas.forEach(i -> i.setEncuesta(this));
|
||||||
|
}
|
||||||
|
this.usuarioEncuestas = usuarioEncuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<EPreguntaAbierta> getEPreguntaAbiertas() {
|
||||||
|
return this.ePreguntaAbiertas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta ePreguntaAbiertas(Set<EPreguntaAbierta> ePreguntaAbiertas) {
|
||||||
|
this.setEPreguntaAbiertas(ePreguntaAbiertas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta addEPreguntaAbierta(EPreguntaAbierta ePreguntaAbierta) {
|
||||||
|
this.ePreguntaAbiertas.add(ePreguntaAbierta);
|
||||||
|
ePreguntaAbierta.setEncuesta(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta removeEPreguntaAbierta(EPreguntaAbierta ePreguntaAbierta) {
|
||||||
|
this.ePreguntaAbiertas.remove(ePreguntaAbierta);
|
||||||
|
ePreguntaAbierta.setEncuesta(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEPreguntaAbiertas(Set<EPreguntaAbierta> ePreguntaAbiertas) {
|
||||||
|
if (this.ePreguntaAbiertas != null) {
|
||||||
|
this.ePreguntaAbiertas.forEach(i -> i.setEncuesta(null));
|
||||||
|
}
|
||||||
|
if (ePreguntaAbiertas != null) {
|
||||||
|
ePreguntaAbiertas.forEach(i -> i.setEncuesta(this));
|
||||||
|
}
|
||||||
|
this.ePreguntaAbiertas = ePreguntaAbiertas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<EPreguntaCerrada> getEPreguntaCerradas() {
|
||||||
|
return this.ePreguntaCerradas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta ePreguntaCerradas(Set<EPreguntaCerrada> ePreguntaCerradas) {
|
||||||
|
this.setEPreguntaCerradas(ePreguntaCerradas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta addEPreguntaCerrada(EPreguntaCerrada ePreguntaCerrada) {
|
||||||
|
this.ePreguntaCerradas.add(ePreguntaCerrada);
|
||||||
|
ePreguntaCerrada.setEncuesta(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta removeEPreguntaCerrada(EPreguntaCerrada ePreguntaCerrada) {
|
||||||
|
this.ePreguntaCerradas.remove(ePreguntaCerrada);
|
||||||
|
ePreguntaCerrada.setEncuesta(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEPreguntaCerradas(Set<EPreguntaCerrada> ePreguntaCerradas) {
|
||||||
|
if (this.ePreguntaCerradas != null) {
|
||||||
|
this.ePreguntaCerradas.forEach(i -> i.setEncuesta(null));
|
||||||
|
}
|
||||||
|
if (ePreguntaCerradas != null) {
|
||||||
|
ePreguntaCerradas.forEach(i -> i.setEncuesta(this));
|
||||||
|
}
|
||||||
|
this.ePreguntaCerradas = ePreguntaCerradas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria getCategoria() {
|
||||||
|
return this.categoria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta categoria(Categoria categoria) {
|
||||||
|
this.setCategoria(categoria);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCategoria(Categoria categoria) {
|
||||||
|
this.categoria = categoria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra getUsuarioExtra() {
|
||||||
|
return this.usuarioExtra;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta usuarioExtra(UsuarioExtra usuarioExtra) {
|
||||||
|
this.setUsuarioExtra(usuarioExtra);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsuarioExtra(UsuarioExtra usuarioExtra) {
|
||||||
|
this.usuarioExtra = usuarioExtra;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof Encuesta)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((Encuesta) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Encuesta{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", descripcion='" + getDescripcion() + "'" +
|
||||||
|
", fechaCreacion='" + getFechaCreacion() + "'" +
|
||||||
|
", fechaPublicacion='" + getFechaPublicacion() + "'" +
|
||||||
|
", fechaFinalizar='" + getFechaFinalizar() + "'" +
|
||||||
|
", fechaFinalizada='" + getFechaFinalizada() + "'" +
|
||||||
|
", calificacion=" + getCalificacion() +
|
||||||
|
", acceso='" + getAcceso() + "'" +
|
||||||
|
", contrasenna='" + getContrasenna() + "'" +
|
||||||
|
", estado='" + getEstado() + "'" +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,136 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Factura.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "factura")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class Factura implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "nombre_usuario", nullable = false)
|
||||||
|
private String nombreUsuario;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "nombre_plantilla", nullable = false)
|
||||||
|
private String nombrePlantilla;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "costo", nullable = false)
|
||||||
|
private Double costo;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "fecha", nullable = false)
|
||||||
|
private ZonedDateTime fecha;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Factura id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombreUsuario() {
|
||||||
|
return this.nombreUsuario;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Factura nombreUsuario(String nombreUsuario) {
|
||||||
|
this.nombreUsuario = nombreUsuario;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombreUsuario(String nombreUsuario) {
|
||||||
|
this.nombreUsuario = nombreUsuario;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombrePlantilla() {
|
||||||
|
return this.nombrePlantilla;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Factura nombrePlantilla(String nombrePlantilla) {
|
||||||
|
this.nombrePlantilla = nombrePlantilla;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombrePlantilla(String nombrePlantilla) {
|
||||||
|
this.nombrePlantilla = nombrePlantilla;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Double getCosto() {
|
||||||
|
return this.costo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Factura costo(Double costo) {
|
||||||
|
this.costo = costo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCosto(Double costo) {
|
||||||
|
this.costo = costo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZonedDateTime getFecha() {
|
||||||
|
return this.fecha;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Factura fecha(ZonedDateTime fecha) {
|
||||||
|
this.fecha = fecha;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFecha(ZonedDateTime fecha) {
|
||||||
|
this.fecha = fecha;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof Factura)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((Factura) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Factura{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombreUsuario='" + getNombreUsuario() + "'" +
|
||||||
|
", nombrePlantilla='" + getNombrePlantilla() + "'" +
|
||||||
|
", costo=" + getCosto() +
|
||||||
|
", fecha='" + getFecha() + "'" +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,136 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A PPreguntaAbierta.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "p_pregunta_abierta")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class PPreguntaAbierta implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Size(min = 1, max = 500)
|
||||||
|
@Column(name = "nombre", length = 500, nullable = false)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "opcional", nullable = false)
|
||||||
|
private Boolean opcional;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "orden", nullable = false)
|
||||||
|
private Integer orden;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(value = { "pPreguntaCerradas", "pPreguntaAbiertas", "categoria", "usuarioExtras" }, allowSetters = true)
|
||||||
|
private Plantilla plantilla;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaAbierta id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaAbierta nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getOpcional() {
|
||||||
|
return this.opcional;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaAbierta opcional(Boolean opcional) {
|
||||||
|
this.opcional = opcional;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOpcional(Boolean opcional) {
|
||||||
|
this.opcional = opcional;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getOrden() {
|
||||||
|
return this.orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaAbierta orden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla getPlantilla() {
|
||||||
|
return this.plantilla;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaAbierta plantilla(Plantilla plantilla) {
|
||||||
|
this.setPlantilla(plantilla);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlantilla(Plantilla plantilla) {
|
||||||
|
this.plantilla = plantilla;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof PPreguntaAbierta)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((PPreguntaAbierta) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "PPreguntaAbierta{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", opcional='" + getOpcional() + "'" +
|
||||||
|
", orden=" + getOrden() +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,194 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.datasurvey.domain.enumeration.PreguntaCerradaTipo;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A PPreguntaCerrada.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "p_pregunta_cerrada")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class PPreguntaCerrada implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Size(min = 1, max = 500)
|
||||||
|
@Column(name = "nombre", length = 500, nullable = false)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "tipo", nullable = false)
|
||||||
|
private PreguntaCerradaTipo tipo;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "opcional", nullable = false)
|
||||||
|
private Boolean opcional;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "orden", nullable = false)
|
||||||
|
private Integer orden;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "pPreguntaCerrada")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "pPreguntaCerrada" }, allowSetters = true)
|
||||||
|
private Set<PPreguntaCerradaOpcion> pPreguntaCerradaOpcions = new HashSet<>();
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(value = { "pPreguntaCerradas", "pPreguntaAbiertas", "categoria", "usuarioExtras" }, allowSetters = true)
|
||||||
|
private Plantilla plantilla;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PreguntaCerradaTipo getTipo() {
|
||||||
|
return this.tipo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada tipo(PreguntaCerradaTipo tipo) {
|
||||||
|
this.tipo = tipo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTipo(PreguntaCerradaTipo tipo) {
|
||||||
|
this.tipo = tipo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getOpcional() {
|
||||||
|
return this.opcional;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada opcional(Boolean opcional) {
|
||||||
|
this.opcional = opcional;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOpcional(Boolean opcional) {
|
||||||
|
this.opcional = opcional;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getOrden() {
|
||||||
|
return this.orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada orden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<PPreguntaCerradaOpcion> getPPreguntaCerradaOpcions() {
|
||||||
|
return this.pPreguntaCerradaOpcions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada pPreguntaCerradaOpcions(Set<PPreguntaCerradaOpcion> pPreguntaCerradaOpcions) {
|
||||||
|
this.setPPreguntaCerradaOpcions(pPreguntaCerradaOpcions);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada addPPreguntaCerradaOpcion(PPreguntaCerradaOpcion pPreguntaCerradaOpcion) {
|
||||||
|
this.pPreguntaCerradaOpcions.add(pPreguntaCerradaOpcion);
|
||||||
|
pPreguntaCerradaOpcion.setPPreguntaCerrada(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada removePPreguntaCerradaOpcion(PPreguntaCerradaOpcion pPreguntaCerradaOpcion) {
|
||||||
|
this.pPreguntaCerradaOpcions.remove(pPreguntaCerradaOpcion);
|
||||||
|
pPreguntaCerradaOpcion.setPPreguntaCerrada(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPPreguntaCerradaOpcions(Set<PPreguntaCerradaOpcion> pPreguntaCerradaOpcions) {
|
||||||
|
if (this.pPreguntaCerradaOpcions != null) {
|
||||||
|
this.pPreguntaCerradaOpcions.forEach(i -> i.setPPreguntaCerrada(null));
|
||||||
|
}
|
||||||
|
if (pPreguntaCerradaOpcions != null) {
|
||||||
|
pPreguntaCerradaOpcions.forEach(i -> i.setPPreguntaCerrada(this));
|
||||||
|
}
|
||||||
|
this.pPreguntaCerradaOpcions = pPreguntaCerradaOpcions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla getPlantilla() {
|
||||||
|
return this.plantilla;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada plantilla(Plantilla plantilla) {
|
||||||
|
this.setPlantilla(plantilla);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlantilla(Plantilla plantilla) {
|
||||||
|
this.plantilla = plantilla;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof PPreguntaCerrada)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((PPreguntaCerrada) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "PPreguntaCerrada{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", tipo='" + getTipo() + "'" +
|
||||||
|
", opcional='" + getOpcional() + "'" +
|
||||||
|
", orden=" + getOrden() +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,118 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A PPreguntaCerradaOpcion.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "p_pregunta_cerrada_opcion")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class PPreguntaCerradaOpcion implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Size(min = 1, max = 500)
|
||||||
|
@Column(name = "nombre", length = 500, nullable = false)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "orden", nullable = false)
|
||||||
|
private Integer orden;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(value = { "pPreguntaCerradaOpcions", "plantilla" }, allowSetters = true)
|
||||||
|
private PPreguntaCerrada pPreguntaCerrada;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerradaOpcion id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerradaOpcion nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getOrden() {
|
||||||
|
return this.orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerradaOpcion orden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrden(Integer orden) {
|
||||||
|
this.orden = orden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerrada getPPreguntaCerrada() {
|
||||||
|
return this.pPreguntaCerrada;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PPreguntaCerradaOpcion pPreguntaCerrada(PPreguntaCerrada pPreguntaCerrada) {
|
||||||
|
this.setPPreguntaCerrada(pPreguntaCerrada);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPPreguntaCerrada(PPreguntaCerrada pPreguntaCerrada) {
|
||||||
|
this.pPreguntaCerrada = pPreguntaCerrada;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof PPreguntaCerradaOpcion)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((PPreguntaCerradaOpcion) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "PPreguntaCerradaOpcion{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", orden=" + getOrden() +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,135 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A ParametroAplicacion.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "parametro_aplicacion")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class ParametroAplicacion implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "max_dias_encuesta", nullable = false)
|
||||||
|
private Integer maxDiasEncuesta;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "min_dias_encuesta", nullable = false)
|
||||||
|
private Integer minDiasEncuesta;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "max_cantidad_preguntas", nullable = false)
|
||||||
|
private Integer maxCantidadPreguntas;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "min_cantidad_preguntas", nullable = false)
|
||||||
|
private Integer minCantidadPreguntas;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ParametroAplicacion id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getMaxDiasEncuesta() {
|
||||||
|
return this.maxDiasEncuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ParametroAplicacion maxDiasEncuesta(Integer maxDiasEncuesta) {
|
||||||
|
this.maxDiasEncuesta = maxDiasEncuesta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxDiasEncuesta(Integer maxDiasEncuesta) {
|
||||||
|
this.maxDiasEncuesta = maxDiasEncuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getMinDiasEncuesta() {
|
||||||
|
return this.minDiasEncuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ParametroAplicacion minDiasEncuesta(Integer minDiasEncuesta) {
|
||||||
|
this.minDiasEncuesta = minDiasEncuesta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMinDiasEncuesta(Integer minDiasEncuesta) {
|
||||||
|
this.minDiasEncuesta = minDiasEncuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getMaxCantidadPreguntas() {
|
||||||
|
return this.maxCantidadPreguntas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ParametroAplicacion maxCantidadPreguntas(Integer maxCantidadPreguntas) {
|
||||||
|
this.maxCantidadPreguntas = maxCantidadPreguntas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxCantidadPreguntas(Integer maxCantidadPreguntas) {
|
||||||
|
this.maxCantidadPreguntas = maxCantidadPreguntas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getMinCantidadPreguntas() {
|
||||||
|
return this.minCantidadPreguntas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ParametroAplicacion minCantidadPreguntas(Integer minCantidadPreguntas) {
|
||||||
|
this.minCantidadPreguntas = minCantidadPreguntas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMinCantidadPreguntas(Integer minCantidadPreguntas) {
|
||||||
|
this.minCantidadPreguntas = minCantidadPreguntas;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof ParametroAplicacion)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((ParametroAplicacion) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ParametroAplicacion{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", maxDiasEncuesta=" + getMaxDiasEncuesta() +
|
||||||
|
", minDiasEncuesta=" + getMinDiasEncuesta() +
|
||||||
|
", maxCantidadPreguntas=" + getMaxCantidadPreguntas() +
|
||||||
|
", minCantidadPreguntas=" + getMinCantidadPreguntas() +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,300 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.datasurvey.domain.enumeration.EstadoPlantilla;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Plantilla.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "plantilla")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class Plantilla implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Size(min = 1, max = 50)
|
||||||
|
@Column(name = "nombre", length = 50)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@Column(name = "descripcion")
|
||||||
|
private String descripcion;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "fecha_creacion", nullable = false)
|
||||||
|
private ZonedDateTime fechaCreacion;
|
||||||
|
|
||||||
|
@Column(name = "fecha_publicacion_tienda")
|
||||||
|
private ZonedDateTime fechaPublicacionTienda;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "estado", nullable = false)
|
||||||
|
private EstadoPlantilla estado;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "precio", nullable = false)
|
||||||
|
private Double precio;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "plantilla")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "pPreguntaCerradaOpcions", "plantilla" }, allowSetters = true)
|
||||||
|
private Set<PPreguntaCerrada> pPreguntaCerradas = new HashSet<>();
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "plantilla")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "plantilla" }, allowSetters = true)
|
||||||
|
private Set<PPreguntaAbierta> pPreguntaAbiertas = new HashSet<>();
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(value = { "encuestas", "plantillas" }, allowSetters = true)
|
||||||
|
private Categoria categoria;
|
||||||
|
|
||||||
|
@ManyToMany(mappedBy = "plantillas")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "user", "encuestas", "usuarioEncuestas", "plantillas" }, allowSetters = true)
|
||||||
|
private Set<UsuarioExtra> usuarioExtras = new HashSet<>();
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescripcion() {
|
||||||
|
return this.descripcion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla descripcion(String descripcion) {
|
||||||
|
this.descripcion = descripcion;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescripcion(String descripcion) {
|
||||||
|
this.descripcion = descripcion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZonedDateTime getFechaCreacion() {
|
||||||
|
return this.fechaCreacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla fechaCreacion(ZonedDateTime fechaCreacion) {
|
||||||
|
this.fechaCreacion = fechaCreacion;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFechaCreacion(ZonedDateTime fechaCreacion) {
|
||||||
|
this.fechaCreacion = fechaCreacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZonedDateTime getFechaPublicacionTienda() {
|
||||||
|
return this.fechaPublicacionTienda;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla fechaPublicacionTienda(ZonedDateTime fechaPublicacionTienda) {
|
||||||
|
this.fechaPublicacionTienda = fechaPublicacionTienda;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFechaPublicacionTienda(ZonedDateTime fechaPublicacionTienda) {
|
||||||
|
this.fechaPublicacionTienda = fechaPublicacionTienda;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EstadoPlantilla getEstado() {
|
||||||
|
return this.estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla estado(EstadoPlantilla estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstado(EstadoPlantilla estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Double getPrecio() {
|
||||||
|
return this.precio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla precio(Double precio) {
|
||||||
|
this.precio = precio;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrecio(Double precio) {
|
||||||
|
this.precio = precio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<PPreguntaCerrada> getPPreguntaCerradas() {
|
||||||
|
return this.pPreguntaCerradas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla pPreguntaCerradas(Set<PPreguntaCerrada> pPreguntaCerradas) {
|
||||||
|
this.setPPreguntaCerradas(pPreguntaCerradas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla addPPreguntaCerrada(PPreguntaCerrada pPreguntaCerrada) {
|
||||||
|
this.pPreguntaCerradas.add(pPreguntaCerrada);
|
||||||
|
pPreguntaCerrada.setPlantilla(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla removePPreguntaCerrada(PPreguntaCerrada pPreguntaCerrada) {
|
||||||
|
this.pPreguntaCerradas.remove(pPreguntaCerrada);
|
||||||
|
pPreguntaCerrada.setPlantilla(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPPreguntaCerradas(Set<PPreguntaCerrada> pPreguntaCerradas) {
|
||||||
|
if (this.pPreguntaCerradas != null) {
|
||||||
|
this.pPreguntaCerradas.forEach(i -> i.setPlantilla(null));
|
||||||
|
}
|
||||||
|
if (pPreguntaCerradas != null) {
|
||||||
|
pPreguntaCerradas.forEach(i -> i.setPlantilla(this));
|
||||||
|
}
|
||||||
|
this.pPreguntaCerradas = pPreguntaCerradas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<PPreguntaAbierta> getPPreguntaAbiertas() {
|
||||||
|
return this.pPreguntaAbiertas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla pPreguntaAbiertas(Set<PPreguntaAbierta> pPreguntaAbiertas) {
|
||||||
|
this.setPPreguntaAbiertas(pPreguntaAbiertas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla addPPreguntaAbierta(PPreguntaAbierta pPreguntaAbierta) {
|
||||||
|
this.pPreguntaAbiertas.add(pPreguntaAbierta);
|
||||||
|
pPreguntaAbierta.setPlantilla(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla removePPreguntaAbierta(PPreguntaAbierta pPreguntaAbierta) {
|
||||||
|
this.pPreguntaAbiertas.remove(pPreguntaAbierta);
|
||||||
|
pPreguntaAbierta.setPlantilla(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPPreguntaAbiertas(Set<PPreguntaAbierta> pPreguntaAbiertas) {
|
||||||
|
if (this.pPreguntaAbiertas != null) {
|
||||||
|
this.pPreguntaAbiertas.forEach(i -> i.setPlantilla(null));
|
||||||
|
}
|
||||||
|
if (pPreguntaAbiertas != null) {
|
||||||
|
pPreguntaAbiertas.forEach(i -> i.setPlantilla(this));
|
||||||
|
}
|
||||||
|
this.pPreguntaAbiertas = pPreguntaAbiertas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Categoria getCategoria() {
|
||||||
|
return this.categoria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla categoria(Categoria categoria) {
|
||||||
|
this.setCategoria(categoria);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCategoria(Categoria categoria) {
|
||||||
|
this.categoria = categoria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<UsuarioExtra> getUsuarioExtras() {
|
||||||
|
return this.usuarioExtras;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla usuarioExtras(Set<UsuarioExtra> usuarioExtras) {
|
||||||
|
this.setUsuarioExtras(usuarioExtras);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla addUsuarioExtra(UsuarioExtra usuarioExtra) {
|
||||||
|
this.usuarioExtras.add(usuarioExtra);
|
||||||
|
usuarioExtra.getPlantillas().add(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plantilla removeUsuarioExtra(UsuarioExtra usuarioExtra) {
|
||||||
|
this.usuarioExtras.remove(usuarioExtra);
|
||||||
|
usuarioExtra.getPlantillas().remove(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsuarioExtras(Set<UsuarioExtra> usuarioExtras) {
|
||||||
|
if (this.usuarioExtras != null) {
|
||||||
|
this.usuarioExtras.forEach(i -> i.removePlantilla(this));
|
||||||
|
}
|
||||||
|
if (usuarioExtras != null) {
|
||||||
|
usuarioExtras.forEach(i -> i.addPlantilla(this));
|
||||||
|
}
|
||||||
|
this.usuarioExtras = usuarioExtras;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof Plantilla)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((Plantilla) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Plantilla{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", descripcion='" + getDescripcion() + "'" +
|
||||||
|
", fechaCreacion='" + getFechaCreacion() + "'" +
|
||||||
|
", fechaPublicacionTienda='" + getFechaPublicacionTienda() + "'" +
|
||||||
|
", estado='" + getEstado() + "'" +
|
||||||
|
", precio=" + getPrecio() +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,231 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.Email;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import javax.validation.constraints.Pattern;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.datasurvey.config.Constants;
|
||||||
|
import org.hibernate.annotations.BatchSize;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A user.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "jhi_user")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
|
||||||
|
public class User extends AbstractAuditingEntity implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Pattern(regexp = Constants.LOGIN_REGEX)
|
||||||
|
@Size(min = 1, max = 50)
|
||||||
|
@Column(length = 50, unique = true, nullable = false)
|
||||||
|
private String login;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
@NotNull
|
||||||
|
@Size(min = 60, max = 60)
|
||||||
|
@Column(name = "password_hash", length = 60, nullable = false)
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@Size(max = 50)
|
||||||
|
@Column(name = "first_name", length = 50)
|
||||||
|
private String firstName;
|
||||||
|
|
||||||
|
@Size(max = 50)
|
||||||
|
@Column(name = "last_name", length = 50)
|
||||||
|
private String lastName;
|
||||||
|
|
||||||
|
@Email
|
||||||
|
@Size(min = 5, max = 254)
|
||||||
|
@Column(length = 254, unique = true)
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(nullable = false)
|
||||||
|
private boolean activated = false;
|
||||||
|
|
||||||
|
@Size(min = 2, max = 10)
|
||||||
|
@Column(name = "lang_key", length = 10)
|
||||||
|
private String langKey;
|
||||||
|
|
||||||
|
@Size(max = 256)
|
||||||
|
@Column(name = "image_url", length = 256)
|
||||||
|
private String imageUrl;
|
||||||
|
|
||||||
|
@Size(max = 20)
|
||||||
|
@Column(name = "activation_key", length = 20)
|
||||||
|
@JsonIgnore
|
||||||
|
private String activationKey;
|
||||||
|
|
||||||
|
@Size(max = 20)
|
||||||
|
@Column(name = "reset_key", length = 20)
|
||||||
|
@JsonIgnore
|
||||||
|
private String resetKey;
|
||||||
|
|
||||||
|
@Column(name = "reset_date")
|
||||||
|
private Instant resetDate = null;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
@ManyToMany
|
||||||
|
@JoinTable(
|
||||||
|
name = "jhi_user_authority",
|
||||||
|
joinColumns = { @JoinColumn(name = "user_id", referencedColumnName = "id") },
|
||||||
|
inverseJoinColumns = { @JoinColumn(name = "authority_name", referencedColumnName = "name") }
|
||||||
|
)
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
|
||||||
|
@BatchSize(size = 20)
|
||||||
|
private Set<Authority> authorities = new HashSet<>();
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLogin() {
|
||||||
|
return login;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lowercase the login before saving it in database
|
||||||
|
public void setLogin(String login) {
|
||||||
|
this.login = StringUtils.lowerCase(login, Locale.ENGLISH);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstName() {
|
||||||
|
return firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstName(String firstName) {
|
||||||
|
this.firstName = firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastName() {
|
||||||
|
return lastName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastName(String lastName) {
|
||||||
|
this.lastName = lastName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmail() {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getImageUrl() {
|
||||||
|
return imageUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setImageUrl(String imageUrl) {
|
||||||
|
this.imageUrl = imageUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isActivated() {
|
||||||
|
return activated;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setActivated(boolean activated) {
|
||||||
|
this.activated = activated;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getActivationKey() {
|
||||||
|
return activationKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setActivationKey(String activationKey) {
|
||||||
|
this.activationKey = activationKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getResetKey() {
|
||||||
|
return resetKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResetKey(String resetKey) {
|
||||||
|
this.resetKey = resetKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Instant getResetDate() {
|
||||||
|
return resetDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResetDate(Instant resetDate) {
|
||||||
|
this.resetDate = resetDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLangKey() {
|
||||||
|
return langKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLangKey(String langKey) {
|
||||||
|
this.langKey = langKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Authority> getAuthorities() {
|
||||||
|
return authorities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAuthorities(Set<Authority> authorities) {
|
||||||
|
this.authorities = authorities;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof User)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((User) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "User{" +
|
||||||
|
"login='" + login + '\'' +
|
||||||
|
", firstName='" + firstName + '\'' +
|
||||||
|
", lastName='" + lastName + '\'' +
|
||||||
|
", email='" + email + '\'' +
|
||||||
|
", imageUrl='" + imageUrl + '\'' +
|
||||||
|
", activated='" + activated + '\'' +
|
||||||
|
", langKey='" + langKey + '\'' +
|
||||||
|
", activationKey='" + activationKey + '\'' +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,160 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.datasurvey.domain.enumeration.EstadoColaborador;
|
||||||
|
import org.datasurvey.domain.enumeration.RolColaborador;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A UsuarioEncuesta.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "usuario_encuesta")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class UsuarioEncuesta implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "rol", nullable = false)
|
||||||
|
private RolColaborador rol;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "estado", nullable = false)
|
||||||
|
private EstadoColaborador estado;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "fecha_agregado", nullable = false)
|
||||||
|
private ZonedDateTime fechaAgregado;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(value = { "user", "encuestas", "usuarioEncuestas", "plantillas" }, allowSetters = true)
|
||||||
|
private UsuarioExtra usuarioExtra;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JsonIgnoreProperties(
|
||||||
|
value = { "usuarioEncuestas", "ePreguntaAbiertas", "ePreguntaCerradas", "categoria", "usuarioExtra" },
|
||||||
|
allowSetters = true
|
||||||
|
)
|
||||||
|
private Encuesta encuesta;
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioEncuesta id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RolColaborador getRol() {
|
||||||
|
return this.rol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioEncuesta rol(RolColaborador rol) {
|
||||||
|
this.rol = rol;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRol(RolColaborador rol) {
|
||||||
|
this.rol = rol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EstadoColaborador getEstado() {
|
||||||
|
return this.estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioEncuesta estado(EstadoColaborador estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstado(EstadoColaborador estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZonedDateTime getFechaAgregado() {
|
||||||
|
return this.fechaAgregado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioEncuesta fechaAgregado(ZonedDateTime fechaAgregado) {
|
||||||
|
this.fechaAgregado = fechaAgregado;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFechaAgregado(ZonedDateTime fechaAgregado) {
|
||||||
|
this.fechaAgregado = fechaAgregado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra getUsuarioExtra() {
|
||||||
|
return this.usuarioExtra;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioEncuesta usuarioExtra(UsuarioExtra usuarioExtra) {
|
||||||
|
this.setUsuarioExtra(usuarioExtra);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsuarioExtra(UsuarioExtra usuarioExtra) {
|
||||||
|
this.usuarioExtra = usuarioExtra;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Encuesta getEncuesta() {
|
||||||
|
return this.encuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioEncuesta encuesta(Encuesta encuesta) {
|
||||||
|
this.setEncuesta(encuesta);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEncuesta(Encuesta encuesta) {
|
||||||
|
this.encuesta = encuesta;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof UsuarioEncuesta)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((UsuarioEncuesta) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "UsuarioEncuesta{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", rol='" + getRol() + "'" +
|
||||||
|
", estado='" + getEstado() + "'" +
|
||||||
|
", fechaAgregado='" + getFechaAgregado() + "'" +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,266 @@
|
||||||
|
package org.datasurvey.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import org.datasurvey.domain.enumeration.EstadoUsuario;
|
||||||
|
import org.hibernate.annotations.Cache;
|
||||||
|
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A UsuarioExtra.
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "usuario_extra")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
public class UsuarioExtra implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(name = "nombre", nullable = false)
|
||||||
|
private String nombre;
|
||||||
|
|
||||||
|
@Column(name = "icono_perfil")
|
||||||
|
private String iconoPerfil;
|
||||||
|
|
||||||
|
@Column(name = "fecha_nacimiento")
|
||||||
|
private ZonedDateTime fechaNacimiento;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "estado", nullable = false)
|
||||||
|
private EstadoUsuario estado;
|
||||||
|
|
||||||
|
@OneToOne
|
||||||
|
@JoinColumn(unique = true)
|
||||||
|
private User user;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "usuarioExtra")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(
|
||||||
|
value = { "usuarioEncuestas", "ePreguntaAbiertas", "ePreguntaCerradas", "categoria", "usuarioExtra" },
|
||||||
|
allowSetters = true
|
||||||
|
)
|
||||||
|
private Set<Encuesta> encuestas = new HashSet<>();
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "usuarioExtra")
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JsonIgnoreProperties(value = { "usuarioExtra", "encuesta" }, allowSetters = true)
|
||||||
|
private Set<UsuarioEncuesta> usuarioEncuestas = new HashSet<>();
|
||||||
|
|
||||||
|
@ManyToMany
|
||||||
|
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||||
|
@JoinTable(
|
||||||
|
name = "rel_usuario_extra__plantilla",
|
||||||
|
joinColumns = @JoinColumn(name = "usuario_extra_id"),
|
||||||
|
inverseJoinColumns = @JoinColumn(name = "plantilla_id")
|
||||||
|
)
|
||||||
|
@JsonIgnoreProperties(value = { "pPreguntaCerradas", "pPreguntaAbiertas", "categoria", "usuarioExtras" }, allowSetters = true)
|
||||||
|
private Set<Plantilla> plantillas = new HashSet<>();
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-field - JHipster will add fields here
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return this.nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra nombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIconoPerfil() {
|
||||||
|
return this.iconoPerfil;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra iconoPerfil(String iconoPerfil) {
|
||||||
|
this.iconoPerfil = iconoPerfil;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIconoPerfil(String iconoPerfil) {
|
||||||
|
this.iconoPerfil = iconoPerfil;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZonedDateTime getFechaNacimiento() {
|
||||||
|
return this.fechaNacimiento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra fechaNacimiento(ZonedDateTime fechaNacimiento) {
|
||||||
|
this.fechaNacimiento = fechaNacimiento;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFechaNacimiento(ZonedDateTime fechaNacimiento) {
|
||||||
|
this.fechaNacimiento = fechaNacimiento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EstadoUsuario getEstado() {
|
||||||
|
return this.estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra estado(EstadoUsuario estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstado(EstadoUsuario estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public User getUser() {
|
||||||
|
return this.user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra user(User user) {
|
||||||
|
this.setUser(user);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUser(User user) {
|
||||||
|
this.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Encuesta> getEncuestas() {
|
||||||
|
return this.encuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra encuestas(Set<Encuesta> encuestas) {
|
||||||
|
this.setEncuestas(encuestas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra addEncuesta(Encuesta encuesta) {
|
||||||
|
this.encuestas.add(encuesta);
|
||||||
|
encuesta.setUsuarioExtra(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra removeEncuesta(Encuesta encuesta) {
|
||||||
|
this.encuestas.remove(encuesta);
|
||||||
|
encuesta.setUsuarioExtra(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEncuestas(Set<Encuesta> encuestas) {
|
||||||
|
if (this.encuestas != null) {
|
||||||
|
this.encuestas.forEach(i -> i.setUsuarioExtra(null));
|
||||||
|
}
|
||||||
|
if (encuestas != null) {
|
||||||
|
encuestas.forEach(i -> i.setUsuarioExtra(this));
|
||||||
|
}
|
||||||
|
this.encuestas = encuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<UsuarioEncuesta> getUsuarioEncuestas() {
|
||||||
|
return this.usuarioEncuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra usuarioEncuestas(Set<UsuarioEncuesta> usuarioEncuestas) {
|
||||||
|
this.setUsuarioEncuestas(usuarioEncuestas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra addUsuarioEncuesta(UsuarioEncuesta usuarioEncuesta) {
|
||||||
|
this.usuarioEncuestas.add(usuarioEncuesta);
|
||||||
|
usuarioEncuesta.setUsuarioExtra(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra removeUsuarioEncuesta(UsuarioEncuesta usuarioEncuesta) {
|
||||||
|
this.usuarioEncuestas.remove(usuarioEncuesta);
|
||||||
|
usuarioEncuesta.setUsuarioExtra(null);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsuarioEncuestas(Set<UsuarioEncuesta> usuarioEncuestas) {
|
||||||
|
if (this.usuarioEncuestas != null) {
|
||||||
|
this.usuarioEncuestas.forEach(i -> i.setUsuarioExtra(null));
|
||||||
|
}
|
||||||
|
if (usuarioEncuestas != null) {
|
||||||
|
usuarioEncuestas.forEach(i -> i.setUsuarioExtra(this));
|
||||||
|
}
|
||||||
|
this.usuarioEncuestas = usuarioEncuestas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Plantilla> getPlantillas() {
|
||||||
|
return this.plantillas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra plantillas(Set<Plantilla> plantillas) {
|
||||||
|
this.setPlantillas(plantillas);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra addPlantilla(Plantilla plantilla) {
|
||||||
|
this.plantillas.add(plantilla);
|
||||||
|
plantilla.getUsuarioExtras().add(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UsuarioExtra removePlantilla(Plantilla plantilla) {
|
||||||
|
this.plantillas.remove(plantilla);
|
||||||
|
plantilla.getUsuarioExtras().remove(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlantillas(Set<Plantilla> plantillas) {
|
||||||
|
this.plantillas = plantillas;
|
||||||
|
}
|
||||||
|
|
||||||
|
// jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof UsuarioExtra)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((UsuarioExtra) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
// see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/
|
||||||
|
return getClass().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "UsuarioExtra{" +
|
||||||
|
"id=" + getId() +
|
||||||
|
", nombre='" + getNombre() + "'" +
|
||||||
|
", iconoPerfil='" + getIconoPerfil() + "'" +
|
||||||
|
", fechaNacimiento='" + getFechaNacimiento() + "'" +
|
||||||
|
", estado='" + getEstado() + "'" +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package org.datasurvey.domain.enumeration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The AccesoEncuesta enumeration.
|
||||||
|
*/
|
||||||
|
public enum AccesoEncuesta {
|
||||||
|
PUBLIC,
|
||||||
|
PRIVATE,
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package org.datasurvey.domain.enumeration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The EstadoCategoria enumeration.
|
||||||
|
*/
|
||||||
|
public enum EstadoCategoria {
|
||||||
|
ACTIVE,
|
||||||
|
INACTIVE,
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package org.datasurvey.domain.enumeration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The EstadoColaborador enumeration.
|
||||||
|
*/
|
||||||
|
public enum EstadoColaborador {
|
||||||
|
PENDING,
|
||||||
|
ACTIVE,
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package org.datasurvey.domain.enumeration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The EstadoEncuesta enumeration.
|
||||||
|
*/
|
||||||
|
public enum EstadoEncuesta {
|
||||||
|
DRAFT,
|
||||||
|
ACTIVE,
|
||||||
|
FINISHED,
|
||||||
|
DELETED,
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package org.datasurvey.domain.enumeration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The EstadoPlantilla enumeration.
|
||||||
|
*/
|
||||||
|
public enum EstadoPlantilla {
|
||||||
|
DRAFT,
|
||||||
|
ACTIVE,
|
||||||
|
DELETED,
|
||||||
|
DISABLED,
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package org.datasurvey.domain.enumeration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The EstadoUsuario enumeration.
|
||||||
|
*/
|
||||||
|
public enum EstadoUsuario {
|
||||||
|
ACTIVE,
|
||||||
|
SUSPENDED,
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package org.datasurvey.domain.enumeration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The PreguntaCerradaTipo enumeration.
|
||||||
|
*/
|
||||||
|
public enum PreguntaCerradaTipo {
|
||||||
|
SINGLE,
|
||||||
|
MULTIPLE,
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package org.datasurvey.domain.enumeration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The RolColaborador enumeration.
|
||||||
|
*/
|
||||||
|
public enum RolColaborador {
|
||||||
|
READ,
|
||||||
|
WRITE,
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue