Merge branch 'develop' of https://github.com/Kitzanos/GEPAFIN-BE into develop
This commit is contained in:
@@ -48,10 +48,10 @@ public class ApplicationDao {
|
||||
@Autowired
|
||||
private FormService formService;
|
||||
|
||||
public ApplicationResponseBean createApplication(ApplicationRequestBean applicationRequestBean, UserEntity userEntity, Long formId) {
|
||||
public ApplicationResponseBean createApplication(ApplicationRequestBean applicationRequestBean, UserEntity userEntity, Long formId,Long applicationId) {
|
||||
FormEntity formEntity = formService.validateForm(formId);
|
||||
CallEntity call = callService.validateCall(formEntity.getCall().getId());
|
||||
ApplicationEntity applicationEntity = getApplicationOrCreate(userEntity, call, formEntity);
|
||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||
formService.validateFormField(applicationRequestBean.getFormFields(),applicationEntity,formEntity);
|
||||
ApplicationFormEntity applicationFormEntity = getApplicationFormOrCreate(formEntity, applicationEntity);
|
||||
createOrUpdateMultipleFormFields(applicationRequestBean.getFormFields(), applicationFormEntity);
|
||||
@@ -90,16 +90,14 @@ public class ApplicationDao {
|
||||
log.info("Fetching application with ID: {}", id);
|
||||
|
||||
ApplicationEntity applicationEntity = validateApplication(id);
|
||||
List<ApplicationFormEntity> applicationFormEntities = applicationFormRepository.findByApplicationId(applicationEntity.getId());
|
||||
ApplicationFormEntity applicationFormEntity = applicationFormRepository.findByApplicationIdAndFormId(applicationEntity.getId(),formId);
|
||||
List<ApplicationFormFieldResponseBean> applicationFormFieldResponseBeans=new ArrayList<>();
|
||||
ApplicationFormFieldResponseBean applicationFormFieldResponseBeans1=null;
|
||||
for (ApplicationFormEntity applicationFormEntity:applicationFormEntities){
|
||||
List<ApplicationFormFieldEntity> applicationFormFieldEntities = applicationFormFieldRepository.findByApplicationFormId(applicationFormEntity.getId());
|
||||
for(ApplicationFormFieldEntity applicationFormFieldEntity:applicationFormFieldEntities) {
|
||||
applicationFormFieldResponseBeans1 = convertApplicationFormFieldEntityToApplicationFormFieldResponseBean(applicationFormFieldEntity, applicationFormEntity.getId());
|
||||
applicationFormFieldResponseBeans.add(applicationFormFieldResponseBeans1);
|
||||
}
|
||||
}
|
||||
ApplicationResponseBean applicationResponseBean= convertApplicationEntityToApplicationResponseBean(applicationEntity);
|
||||
applicationResponseBean.setFormFields(applicationFormFieldResponseBeans);
|
||||
return applicationResponseBean;
|
||||
@@ -179,15 +177,6 @@ public class ApplicationDao {
|
||||
return response;
|
||||
}
|
||||
|
||||
public ApplicationEntity getApplicationOrCreate(UserEntity userEntity, CallEntity callEntity, FormEntity formEntity) {
|
||||
ApplicationEntity applicationEntity = applicationRepository.findByUserIdAndCallIdAndIsDeletedFalse(userEntity.getId(), callEntity.getId()).orElse(null);
|
||||
if (applicationEntity == null) {
|
||||
validateFormId(formEntity, callEntity);
|
||||
applicationEntity = createApplicationEntity(userEntity, callEntity);
|
||||
applicationEntity=saveApplicationEntity(applicationEntity);
|
||||
}
|
||||
return applicationEntity;
|
||||
}
|
||||
private ApplicationFormEntity getApplicationFormOrCreate(FormEntity formEntity, ApplicationEntity applicationEntity) {
|
||||
ApplicationFormEntity applicationFormEntity = applicationFormRepository.findByApplicationIdAndFormId(applicationEntity.getId(), formEntity.getId());
|
||||
if(applicationFormEntity == null){
|
||||
@@ -197,19 +186,30 @@ public class ApplicationDao {
|
||||
}
|
||||
|
||||
public List<ApplicationFormFieldEntity> createOrUpdateMultipleFormFields(List<ApplicationFormFieldRequestBean> formFieldResponseBeans, ApplicationFormEntity applicationFormEntity) {
|
||||
List<ApplicationFormFieldEntity> existingFields = applicationFormFieldRepository.findByApplicationFormId(applicationFormEntity.getId());
|
||||
|
||||
List<ApplicationFormFieldEntity> applicationFormFieldEntity = formFieldResponseBeans.stream()
|
||||
.map(requestBean -> createOrUpdateApplicationFormField(requestBean, applicationFormEntity))
|
||||
.map(requestBean -> createOrUpdateApplicationFormField(requestBean, applicationFormEntity,existingFields))
|
||||
.collect(Collectors.toList());
|
||||
return applicationFormFieldEntity;
|
||||
}
|
||||
|
||||
public ApplicationFormFieldEntity createOrUpdateApplicationFormField(ApplicationFormFieldRequestBean applicationFormFieldRequestBean, ApplicationFormEntity applicationFormEntity) {
|
||||
ApplicationFormFieldEntity applicationFormFieldEntity;
|
||||
if (applicationFormFieldRequestBean.getId() == null || applicationFormFieldRequestBean.getId() == 0) {
|
||||
public ApplicationFormFieldEntity createOrUpdateApplicationFormField(ApplicationFormFieldRequestBean applicationFormFieldRequestBean, ApplicationFormEntity applicationFormEntity,List<ApplicationFormFieldEntity> applicationFormFieldEntities ) {
|
||||
|
||||
ApplicationFormFieldEntity applicationFormFieldEntity=null;
|
||||
if(applicationFormFieldEntities==null || applicationFormFieldEntities.isEmpty()){
|
||||
applicationFormFieldEntity = new ApplicationFormFieldEntity();
|
||||
applicationFormFieldEntity.setApplicationForm(applicationFormEntity);
|
||||
}else {
|
||||
applicationFormFieldEntity = validateApplicationFormField(applicationFormFieldRequestBean.getId());
|
||||
for (ApplicationFormFieldEntity applicationFormFieldEntity1 : applicationFormFieldEntities) {
|
||||
if (applicationFormFieldEntity1.getFieldId().equals(applicationFormFieldRequestBean.getFieldId())) {
|
||||
applicationFormFieldEntity = applicationFormFieldEntity1;
|
||||
break;
|
||||
} else {
|
||||
applicationFormFieldEntity = new ApplicationFormFieldEntity();
|
||||
applicationFormFieldEntity.setApplicationForm(applicationFormEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
Utils.setIfUpdated(applicationFormFieldEntity::getFieldId, applicationFormFieldEntity::setFieldId, applicationFormFieldRequestBean.getFieldId());
|
||||
Utils.setIfUpdated(applicationFormFieldEntity::getFieldValue, applicationFormFieldEntity::setFieldValue, applicationFormFieldRequestBean.getFieldValue());
|
||||
|
||||
@@ -15,7 +15,7 @@ import java.util.List;
|
||||
|
||||
public interface ApplicationService {
|
||||
|
||||
public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId);
|
||||
public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean,Long applicationId, Long formId);
|
||||
|
||||
ApplicationGetResponseBean getApplicationByFormId(HttpServletRequest request, Long applicationId,Long formId);
|
||||
|
||||
|
||||
@@ -35,9 +35,9 @@ public class ApplicationServiceImpl implements ApplicationService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId) {
|
||||
public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean,Long applicationId, Long formId) {
|
||||
UserEntity userEntity = validator.validateUser(request);
|
||||
return applicationDao.createApplication(applicationRequestBean,userEntity,formId);
|
||||
return applicationDao.createApplication(applicationRequestBean,userEntity,formId,applicationId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -37,11 +37,12 @@ public interface ApplicationApi {
|
||||
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })),
|
||||
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
||||
@PutMapping(value = "/form/{formId}",
|
||||
@PutMapping(value = "/{applicationId}",
|
||||
produces = { "application/json" })
|
||||
ResponseEntity<Response<ApplicationResponseBean>> createApplication(HttpServletRequest request,
|
||||
@Parameter(description = " Flow request object", required = true) @Valid @RequestBody ApplicationRequestBean applicationRequestBean,
|
||||
@Parameter(description = "The form ID", required = true) @PathVariable("formId") Long formId);
|
||||
@Parameter(description = "The application id", required = true) @PathVariable(value = "applicationId", required = true) Long applicationId,
|
||||
@Parameter(description = "The form ID", required = true) @RequestParam("formId") Long formId);
|
||||
|
||||
@Operation(summary = "Api to get an application by id",
|
||||
responses = {
|
||||
|
||||
@@ -36,8 +36,8 @@ public class ApplicationApiController implements ApplicationApi {
|
||||
private ApplicationService applicationService;
|
||||
|
||||
@Override
|
||||
public ResponseEntity<Response<ApplicationResponseBean>> createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId) {
|
||||
ApplicationResponseBean applicationResponseBean= applicationService.createApplication(request,applicationRequestBean,formId);
|
||||
public ResponseEntity<Response<ApplicationResponseBean>> createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean,Long applicationId, Long formId) {
|
||||
ApplicationResponseBean applicationResponseBean= applicationService.createApplication(request,applicationRequestBean,applicationId,formId);
|
||||
return ResponseEntity.status(HttpStatus.CREATED)
|
||||
.body(new Response<>(applicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_CREATED_SUCCESS_MSG))); }
|
||||
|
||||
|
||||
@@ -702,4 +702,12 @@
|
||||
<column name="tracking_id" type="VARCHAR(255)"></column>
|
||||
</addColumn>
|
||||
</changeSet>
|
||||
<changeSet id="16-09-2024_1" author="Harish Bagora">
|
||||
<sql>
|
||||
TRUNCATE TABLE FORM_FIELD RESTART IDENTITY;
|
||||
</sql>
|
||||
|
||||
<sqlFile dbms="postgresql"
|
||||
path="classpath:db/dump/updated_form_field_data_16-09-2024.sql" />
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
INSERT INTO FORM_FIELD (SORT_ORDER, NAME, LABEL, DESCRIPTION, SETTINGS, VALIDATORS, CREATED_DATE, UPDATED_DATE)
|
||||
VALUES
|
||||
(1, 'textinput', 'Testo Breve', 'Per risposte concise (nomi, titoli, brevi descrizioni)',
|
||||
'{"label": "Testo Breve", "placeholder": ""}',
|
||||
'{"isRequired": false, "minLength": null, "maxLength": null, "pattern": null, "custom": null}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(2, 'textarea', 'Testo Lungo', 'Campo di testo esteso per paragrafi, descrizioni, proposte',
|
||||
'{"label": "Testo Lungo", "placeholder": ""}',
|
||||
'{"isRequired": false, "minLength": null, "maxLength": null, "pattern": null, "custom": null}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(3, 'wysiwyg', 'Campo di Testo Formattato', 'Editor avanzato per testo con formattazione',
|
||||
'{"label": "Testo Formattato", "placeholder": ""}',
|
||||
'{"isRequired": false, "minLength": null, "maxLength": null, "pattern": null, "custom": null}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(4, 'numberinput', 'Campo Numerico', 'Per l''inserimento di valori numerici (quantità, importi, percentuali)',
|
||||
'{"label": "Numero", "placeholder": 0, "step": 0}',
|
||||
'{"isRequired": false, "min": null, "max": null, "pattern": null, "custom": null}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(5, 'radio', 'Scelta Singola', 'Gruppo di opzioni per selezione singola',
|
||||
'{"label": "Scelta Singola", "options": []}',
|
||||
'{"isRequired": false, "custom": null}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(6, 'select', 'Menu a Tendina', 'Selezione da opzioni predefinite',
|
||||
'{"label": "Menu a Tendina", "options": []}',
|
||||
'{"isRequired": false, "custom": null}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(7, 'checkboxes', 'Scelta Multipla', 'Gruppo di opzioni per selezione singola o multipla',
|
||||
'{"label": "Scelta Multipla", "options": []}',
|
||||
'{"isRequired": false, "min": null, "max": null, "custom": null}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(8, 'switch', 'Casella di Spunta', 'Per selezioni binarie, accettazioni, conferme',
|
||||
'{"label": "Casella di Spunta"}',
|
||||
'{"isRequired": false}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(9, 'datepicker', 'Data', 'Selezione di data',
|
||||
'{"label": "Data"}',
|
||||
'{"isRequired": false, "custom": null}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(10, 'fileupload', 'Caricamento File', 'Per l''upload di documenti o immagini',
|
||||
'{"label": "Caricamento File", "mime": []}',
|
||||
'{"isRequired": false, "maxSize": 100000, "custom": null}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(11, 'textinput', 'Campo Partita IVA', 'Specifico per l''inserimento del numero di Partita IVA',
|
||||
'{"label": "Partita IVA", "placeholder": ""}',
|
||||
'{"isRequired": true, "minLength": 11, "maxLength": 11, "custom": "isPIVA"}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(12, 'textinput', 'Campo Codice Fiscale', 'Specifico per l''inserimento del Codice Fiscale italiano per persone fisiche e giuridiche',
|
||||
'{"label": "Codice Fiscale", "placeholder": ""}',
|
||||
'{"isRequired": true, "minLength": 11, "maxLength": 16, "custom": "isCodiceFiscale"}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(13, 'numberinput', 'Campo CAP', 'Per l''inserimento del Codice di Avviamento Postale',
|
||||
'{"label": "CAP", "placeholder": ""}',
|
||||
'{"isRequired": true, "custom": "isCAP"}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(14, 'textinput', 'Campo IBAN', 'Per l''inserimento del codice IBAN',
|
||||
'{"label": "IBAN", "placeholder": ""}',
|
||||
'{"isRequired": true, "custom": "isIBAN"}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(15, 'textinput', 'Campo Email', 'Per l''inserimento di indirizzi email standard (non PEC)',
|
||||
'{"label": "Campo Email", "placeholder": "nome@esempio.it"}',
|
||||
'{"isRequired": false, "custom": "isEmail"}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(16, 'textinput', 'Campo PEC', 'Specifico per l''inserimento di un indirizzo di Posta Elettronica Certificata',
|
||||
'{"label": "Campo PEC", "placeholder": "nome@pec.it"}',
|
||||
'{"isRequired": false, "custom": "isEmailPEC"}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(17, 'textinput', 'Campo URL', 'Per l''inserimento di indirizzi web',
|
||||
'{"label": "Indirizzo URL", "placeholder": ""}',
|
||||
'{"isRequired": false, "custom": "isUrl"}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
||||
(18, 'textinput', 'Marca da bollo', 'Per inserire codice di marca da bollo',
|
||||
'{"label": "Marca da bollo", "placeholder": "Numero identificativo"}',
|
||||
'{"isRequired": false, "custom": "isMarcaDaBollo"}',
|
||||
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
|
||||
Reference in New Issue
Block a user