Salvatore La Manna
4 anni fa
24 ha cambiato i file con 463 aggiunte e 78 eliminazioni
File binario non mostrato.
@ -0,0 +1,26 @@
|
||||
package it.mwg.sicilia.sue.api.v1.bean; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
@SuppressWarnings("serial") |
||||
public class ApplicationType implements Serializable { |
||||
|
||||
private String code; |
||||
private String description; |
||||
|
||||
public ApplicationType(String code, String description) { |
||||
|
||||
this.code = code; |
||||
this.description = description; |
||||
} |
||||
|
||||
public String getCode() { |
||||
|
||||
return code; |
||||
} |
||||
|
||||
public String getDescription() { |
||||
|
||||
return description; |
||||
} |
||||
} |
@ -0,0 +1,186 @@
|
||||
package it.mwg.sicilia.sue.api.v1.command.impl; |
||||
|
||||
import it.mwg.sicilia.sue.api.v1.Parameters; |
||||
import it.mwg.sicilia.sue.api.v1.Response; |
||||
import it.mwg.sicilia.sue.api.v1.Status; |
||||
import it.mwg.sicilia.sue.api.v1.command.Command; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter; |
||||
import it.tref.liferay.portos.bo.model.Comune; |
||||
import it.tref.liferay.portos.bo.model.DettPratica; |
||||
import it.tref.liferay.portos.bo.model.Territorio; |
||||
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; |
||||
|
||||
import java.io.Serializable; |
||||
import java.security.SecureRandom; |
||||
import java.util.ArrayList; |
||||
import java.util.Date; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Locale; |
||||
import java.util.Map; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
import com.liferay.portal.kernel.exception.PortalException; |
||||
import com.liferay.portal.kernel.exception.SystemException; |
||||
import com.liferay.portal.kernel.servlet.ServletResponseUtil; |
||||
import com.liferay.portal.kernel.util.MapUtil; |
||||
import com.liferay.portal.kernel.util.StringPool; |
||||
import com.liferay.portal.kernel.util.Validator; |
||||
import com.liferay.portal.model.User; |
||||
import com.liferay.portal.service.ServiceContext; |
||||
import com.liferay.portal.service.UserLocalServiceUtil; |
||||
|
||||
public class AddApplication extends Command { |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> INPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
add(new Parameter(Parameters.VAT_ID, Parameter.TYPES.STRING, "Codice fiscale del titolare digitale")); |
||||
add(new Parameter(Parameters.FIRST_NAME, Parameter.TYPES.STRING, "Nome del titolare digitale", false)); |
||||
add(new Parameter(Parameters.LAST_NAME, Parameter.TYPES.STRING, "Cognome del titolare digitale", false)); |
||||
add(new Parameter(Parameters.TYPE, Parameter.TYPES.STRING, |
||||
"Codice del tipo di istanza, come restituito da /" + getCommandName(Applications.class))); |
||||
add(new Parameter(Parameters.SUE_ID, Parameter.TYPES.STRING, "Estremi pratica SUE/SUAP", false)); |
||||
} |
||||
}; |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> OUTPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
addAll(BASE_OUTPUT_PARAMETERS); |
||||
add(new Parameter(Parameters.APPLICATION_ID, Parameter.TYPES.INTEGER, |
||||
"Identificatore del procedimento creato, da utilizzare nelle successive operazioni")); |
||||
add(new Parameter(Parameters.ADDITIONAL_INFO, Parameter.TYPES.STRING, |
||||
"Eventuali informazioni aggiuntive sull'operazione o sugli errori incontrati")); |
||||
} |
||||
}; |
||||
|
||||
public AddApplication(String description, String... methods) { |
||||
super(description, methods); |
||||
} |
||||
|
||||
@Override |
||||
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { |
||||
|
||||
if (verifyAccessToken(request, response)) { |
||||
List<String> additionalInfo = new ArrayList<>(); |
||||
String screenName = MapUtil.getString(parameters, Parameters.VAT_ID); |
||||
if (Validator.isNull(screenName)) { |
||||
additionalInfo.add("Parametro " + Parameters.VAT_ID + " mancante"); |
||||
ServletResponseUtil.write(response, Response.get(Status.MALFORMED_REQUEST, additionalInfo)); |
||||
return; |
||||
} |
||||
String tipoProcedura = MapUtil.getString(parameters, Parameters.TYPE); |
||||
if (Validator.isNull(tipoProcedura) |
||||
|| !IntPraticaLocalServiceUtil.getTipiProcedure().containsKey(tipoProcedura)) { |
||||
additionalInfo.add("Tipo pratica non specificato o non valido"); |
||||
ServletResponseUtil.write(response, Response.get(Status.MALFORMED_REQUEST, additionalInfo)); |
||||
return; |
||||
} |
||||
String lastName = MapUtil.getString(parameters, Parameters.LAST_NAME, screenName); |
||||
String firstName = MapUtil.getString(parameters, Parameters.FIRST_NAME, lastName); |
||||
Comune comune = null; |
||||
Territorio territorio = null; |
||||
try { |
||||
comune = sportello.getComune(); |
||||
territorio = TerritorioLocalServiceUtil.findByComuneId(comune.getComuneId(), 0, 1).get(0); |
||||
} catch (PortalException | SystemException e) { |
||||
additionalInfo.add("Errore del server durante il caricamento del comune"); |
||||
ServletResponseUtil.write(response, Response.get(Status.INACTIVE_USER, additionalInfo)); |
||||
return; |
||||
} |
||||
Date date = new Date(); |
||||
long companyId = comune.getCompanyId(); |
||||
User user = null; |
||||
try { |
||||
user = UserLocalServiceUtil.fetchUserByScreenName(companyId, screenName); |
||||
if (Validator.isNull(user)) { |
||||
long creatorUserId = UserLocalServiceUtil.getDefaultUserId(companyId); |
||||
boolean autoPassword = true; |
||||
String password = randomPassword(24); |
||||
boolean autoScreenName = false; |
||||
String emailAddress = screenName + "@no-email.regione.sicilia.it"; |
||||
long facebookId = 0; |
||||
String openId = StringPool.BLANK; |
||||
Locale locale = Locale.ITALY; |
||||
String middleName = StringPool.BLANK; |
||||
int prefixId = 0; |
||||
int suffixId = 0; |
||||
boolean male = true; |
||||
int birthdayMonth = 0; |
||||
int birthdayDay = 1; |
||||
int birthdayYear = 1970; |
||||
String jobTitle = StringPool.BLANK; |
||||
long[] groupIds = null; |
||||
long[] organizationIds = null; |
||||
long[] roleIds = null; |
||||
long[] userGroupIds = null; |
||||
boolean sendEmail = false; |
||||
ServiceContext serviceContext = new ServiceContext(); |
||||
user = UserLocalServiceUtil.addUser(creatorUserId, companyId, autoPassword, password, password, |
||||
autoScreenName, screenName, emailAddress, facebookId, openId, locale, firstName, |
||||
middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, |
||||
jobTitle, groupIds, organizationIds, roleIds, userGroupIds, sendEmail, serviceContext); |
||||
user.setPasswordModified(true); |
||||
user.setPasswordModifiedDate(date); |
||||
user.setPasswordReset(false); |
||||
UserLocalServiceUtil.updateUser(user); |
||||
additionalInfo.add("L'utente " + screenName + " è stato creato"); |
||||
} else { |
||||
additionalInfo.add("L'utente " + screenName + " esiste"); |
||||
} |
||||
} catch (PortalException | SystemException e) { |
||||
additionalInfo.add("Errore durante la creazione dell'utente " + screenName); |
||||
ServletResponseUtil.write(response, Response.get(Status.SERVER_ERROR, additionalInfo)); |
||||
return; |
||||
} |
||||
ServiceContext serviceContext = new ServiceContext(); |
||||
serviceContext.setCompanyId(sportello.getCompanyId()); |
||||
serviceContext.setScopeGroupId(sportello.getGroupId()); |
||||
serviceContext.setUserId(user.getUserId()); |
||||
serviceContext.setCreateDate(date); |
||||
serviceContext.setModifiedDate(date); |
||||
DettPratica dettPratica = null; |
||||
try { |
||||
dettPratica = DettPraticaLocalServiceUtil.addDettPratica(territorio.getTerritorioId(), tipoProcedura, |
||||
serviceContext); |
||||
String sueId = MapUtil.getString(parameters, Parameters.SUE_ID); |
||||
if (Validator.isNotNull(sueId)) { |
||||
dettPratica.setEstremiPratCom(sueId); |
||||
DettPraticaLocalServiceUtil.updateDettPratica(dettPratica); |
||||
} |
||||
} catch (PortalException | SystemException e) { |
||||
additionalInfo.add("Errore durante la creazione dell'istanza"); |
||||
ServletResponseUtil.write(response, Response.get(Status.SERVER_ERROR, additionalInfo)); |
||||
return; |
||||
} |
||||
Map<String, Serializable> result = new HashMap<>(); |
||||
result.put(Parameters.APPLICATION_ID, dettPratica.getIntPraticaId()); |
||||
ServletResponseUtil.write(response, Response.get(Status.OK, result, additionalInfo)); |
||||
} |
||||
} |
||||
|
||||
private String randomPassword(int length) { |
||||
|
||||
SecureRandom rnd = new SecureRandom(); |
||||
StringBuilder sb = new StringBuilder(); |
||||
for (int i = 0; i < length; i++) { |
||||
sb.append((char) (32 + rnd.nextInt(95))); |
||||
} |
||||
return sb.toString(); |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getInputParameters() { |
||||
return INPUT_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getOutputParameters() { |
||||
return OUTPUT_PARAMETERS; |
||||
} |
||||
} |
@ -0,0 +1,75 @@
|
||||
package it.mwg.sicilia.sue.api.v1.command.impl; |
||||
|
||||
import it.mwg.sicilia.sue.api.v1.Parameters; |
||||
import it.mwg.sicilia.sue.api.v1.Response; |
||||
import it.mwg.sicilia.sue.api.v1.Status; |
||||
import it.mwg.sicilia.sue.api.v1.bean.Application; |
||||
import it.mwg.sicilia.sue.api.v1.command.Command; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter; |
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.model.Territorio; |
||||
import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
import com.liferay.portal.kernel.dao.orm.QueryUtil; |
||||
import com.liferay.portal.kernel.servlet.ServletResponseUtil; |
||||
import com.liferay.portal.model.User; |
||||
import com.liferay.portal.service.UserLocalServiceUtil; |
||||
|
||||
public class ListApplications extends Command { |
||||
|
||||
private static final List<Parameter> OUTPUT_PARAMETERS = new ArrayList<Parameter>(); |
||||
static { |
||||
OUTPUT_PARAMETERS.addAll(BASE_OUTPUT_PARAMETERS); |
||||
Parameter p = new Parameter(Parameters.APPLICATIONS, Parameter.TYPES.ARRAY, "Elenco di istanze presentate"); |
||||
p.addSubParameter(new Parameter(Parameters.APPLICATION_ID, Parameter.TYPES.INTEGER, |
||||
"Identificatore dell'istanza")); |
||||
p.addSubParameter(new Parameter(Parameters.TYPE, Parameter.TYPES.STRING, "Tipo dell'istanza")); |
||||
p.addSubParameter(new Parameter(Parameters.VAT_ID, Parameter.TYPES.STRING, |
||||
"Codice fiscale del titolare digitale")); |
||||
OUTPUT_PARAMETERS.add(p); |
||||
}; |
||||
|
||||
public ListApplications(String description, String... methods) { |
||||
super(description, methods); |
||||
} |
||||
|
||||
@Override |
||||
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { |
||||
|
||||
if (verifyAccessToken(request, response)) { |
||||
List<Application> applications = new ArrayList<>(); |
||||
for (Territorio territorio : TerritorioLocalServiceUtil.findByComuneId(sportello.getComuneId(), |
||||
QueryUtil.ALL_POS, QueryUtil.ALL_POS)) { |
||||
for (IntPratica intPratica : IntPraticaLocalServiceUtil |
||||
.findByTerritorioId(territorio.getTerritorioId())) { |
||||
User user = UserLocalServiceUtil.getUser(intPratica.getUserId()); |
||||
applications.add(new Application(intPratica.getIntPraticaId(), intPratica.getTipoProcedura(), user |
||||
.getScreenName())); |
||||
} |
||||
} |
||||
Map<String, Serializable> result = new HashMap<>(); |
||||
result.put(Parameters.APPLICATIONS, (Serializable) applications); |
||||
ServletResponseUtil.write(response, Response.get(Status.OK, result)); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getInputParameters() { |
||||
return EMPTY_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getOutputParameters() { |
||||
return OUTPUT_PARAMETERS; |
||||
} |
||||
} |
Caricamento…
Reference in new issue