Salvatore La Manna
4 anni fa
91 ha cambiato i file con 2063 aggiunte e 2515 eliminazioni
File diff suppressed because one or more lines are too long
File binario non mostrato.
@ -0,0 +1,33 @@
|
||||
package it.mwg.sicilia.sue.api.v1.bean; |
||||
|
||||
public class Attachment { |
||||
|
||||
private final long attachmentId; |
||||
private final String code; |
||||
private final String name; |
||||
private final String sha256; |
||||
|
||||
public Attachment(long attachmentId, String code, String name, String sha256) { |
||||
|
||||
this.attachmentId = attachmentId; |
||||
this.code = code; |
||||
this.name = name; |
||||
this.sha256 = sha256; |
||||
} |
||||
|
||||
public long getAttachmentId() { |
||||
return attachmentId; |
||||
} |
||||
|
||||
public String getCode() { |
||||
return code; |
||||
} |
||||
|
||||
public String getName() { |
||||
return name; |
||||
} |
||||
|
||||
public String getSha256() { |
||||
return sha256; |
||||
} |
||||
} |
@ -0,0 +1,86 @@
|
||||
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.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; |
||||
import it.tref.liferay.portos.bo.model.DocPratica; |
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
import com.liferay.portal.kernel.util.MapUtil; |
||||
import com.liferay.portal.kernel.util.Validator; |
||||
|
||||
public class DeleteAttachment extends Command { |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> INPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
add(new Parameter(Parameters.APPLICATION_ID, TYPES.INT, "Id dell'istanza")); |
||||
add(new Parameter(Parameters.ATTACHMENT_ID, TYPES.INT, "Id dell'allegato")); |
||||
} |
||||
}; |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> OUTPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
addAll(BASE_OUTPUT_PARAMETERS); |
||||
add(new Parameter(Parameters.ADDITIONAL_INFO, TYPES.STRING, |
||||
"Eventuali informazioni aggiuntive sull'operazione o sugli errori incontrati", false)); |
||||
} |
||||
}; |
||||
|
||||
public DeleteAttachment(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<>(); |
||||
try { |
||||
if (!parameters.containsKey(Parameters.ATTACHMENT_ID)) { |
||||
additionalInfo.add("Parametro " + Parameters.ATTACHMENT_ID + " mancante"); |
||||
Response.write(response, Status.MALFORMED_REQUEST, additionalInfo); |
||||
return; |
||||
} |
||||
IntPratica intPratica = getSecureIntPratica(response); |
||||
if (Validator.isNotNull(intPratica)) { |
||||
long attachmentId = MapUtil.getLong(parameters, Parameters.ATTACHMENT_ID); |
||||
DocPratica docPratica = DocPraticaLocalServiceUtil.getDocPratica(attachmentId); |
||||
if (intPratica.getIntPraticaId() != docPratica.getIntPraticaId()) { |
||||
additionalInfo.add("L'allegato " + attachmentId + " non appartiene all'istanza " |
||||
+ intPratica.getIntPraticaId()); |
||||
Response.write(response, Status.INVALID_INPUT, additionalInfo); |
||||
return; |
||||
} |
||||
DocPraticaLocalServiceUtil.deleteDocPratica(docPratica); |
||||
Response.write(response, Status.OK, additionalInfo); |
||||
} |
||||
} catch (Exception e) { |
||||
additionalInfo.add("Errore durante l'esecuzione: " + e.getMessage()); |
||||
Response.write(response, Status.SERVER_ERROR, additionalInfo); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getInputParameters() { |
||||
return INPUT_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getOutputParameters() { |
||||
return OUTPUT_PARAMETERS; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,83 @@
|
||||
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.Attachment; |
||||
import it.mwg.sicilia.sue.api.v1.command.Command; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; |
||||
import it.tref.liferay.portos.bo.model.DocPratica; |
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; |
||||
|
||||
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.util.Validator; |
||||
|
||||
public class GetAttachments extends Command { |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> INPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
add(new Parameter(Parameters.APPLICATION_ID, TYPES.INT, "Id dell'istanza")); |
||||
} |
||||
}; |
||||
|
||||
private static final List<Parameter> OUTPUT_PARAMETERS = new ArrayList<Parameter>(); |
||||
static { |
||||
OUTPUT_PARAMETERS.addAll(BASE_OUTPUT_PARAMETERS); |
||||
Parameter p = new Parameter(Parameters.ATTACHMENTS, TYPES.ARRAY, "Elenco di allegati dell'istanza"); |
||||
p.addSubParameter(new Parameter(Parameters.APPLICATION_ID, TYPES.INT, "Identificatore dell'allegato")); |
||||
p.addSubParameter(new Parameter(Parameters.CODE, TYPES.STRING, "Codice dell'allegato")); |
||||
p.addSubParameter(new Parameter(Parameters.SHA256, TYPES.STRING, "Hash SHA256 dell'allegato")); |
||||
OUTPUT_PARAMETERS.add(p); |
||||
}; |
||||
|
||||
public GetAttachments(String description, String... methods) { |
||||
super(description, methods); |
||||
} |
||||
|
||||
@Override |
||||
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { |
||||
|
||||
if (verifyAccessToken(request, response)) { |
||||
IntPratica intPratica = getSecureIntPratica(response); |
||||
if (Validator.isNotNull(intPratica)) { |
||||
try { |
||||
List<Attachment> attachments = new ArrayList<>(); |
||||
for (DocPratica docPratica : DocPraticaLocalServiceUtil.getValidByIntPratica(intPratica |
||||
.getIntPraticaId())) { |
||||
attachments.add(new Attachment(docPratica.getDocPraticaId(), docPratica.getTipologia(), |
||||
docPratica.getDescLong(), docPratica.getSha256())); |
||||
} |
||||
Map<String, Serializable> result = new HashMap<>(); |
||||
result.put(Parameters.ATTACHMENTS, (Serializable) attachments); |
||||
Response.write(response, Status.OK, result); |
||||
} catch (Exception e) { |
||||
List<String> additionalInfo = new ArrayList<>(); |
||||
additionalInfo.add("Errore durante l'esecuzione: " + e.getMessage()); |
||||
Response.write(response, Status.SERVER_ERROR, additionalInfo); |
||||
return; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getInputParameters() { |
||||
return INPUT_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getOutputParameters() { |
||||
return OUTPUT_PARAMETERS; |
||||
} |
||||
} |
@ -0,0 +1,409 @@
|
||||
package it.mwg.sicilia.sue.api.v1.command.impl; |
||||
|
||||
import it.mwg.sicilia.sue.api.v1.Parameters; |
||||
import it.mwg.sicilia.sue.api.v1.Status; |
||||
import it.mwg.sicilia.sue.api.v1.command.Command; |
||||
import it.mwg.sicilia.sue.api.v1.command.CommandList; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter; |
||||
import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; |
||||
import it.mwg.sicilia.sue.api.v1.util.ApiUtil; |
||||
|
||||
import java.io.BufferedReader; |
||||
import java.io.File; |
||||
import java.io.FileReader; |
||||
import java.lang.reflect.Field; |
||||
import java.lang.reflect.Modifier; |
||||
import java.net.URI; |
||||
import java.nio.file.Files; |
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.regex.Matcher; |
||||
import java.util.regex.Pattern; |
||||
|
||||
import javax.servlet.ServletContext; |
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
import org.apache.commons.io.FileUtils; |
||||
|
||||
import com.liferay.portal.kernel.servlet.HttpHeaders; |
||||
import com.liferay.portal.kernel.servlet.ServletResponseUtil; |
||||
import com.liferay.portal.kernel.util.ContentTypes; |
||||
import com.liferay.portal.kernel.util.StringPool; |
||||
import com.liferay.portal.kernel.zip.ZipWriter; |
||||
import com.liferay.portal.kernel.zip.ZipWriterFactoryUtil; |
||||
|
||||
public class GetSourceCode extends Command { |
||||
|
||||
private static final String INDENT = StringPool.FOUR_SPACES; |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> OUTPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
add(new Parameter(StringPool.BLANK, TYPES.APPLICATION_ZIP, "Il codice sorgente PHP generato per il client")); |
||||
} |
||||
}; |
||||
|
||||
private static Map<String, String> PARAMETER_NAMES = new HashMap<String, String>(); |
||||
static { |
||||
for (Field field : Arrays.asList(Parameters.class.getDeclaredFields())) { |
||||
int mod = field.getModifiers(); |
||||
if (Modifier.isPublic(mod) && Modifier.isStatic(mod) && Modifier.isFinal(mod)) { |
||||
try { |
||||
PARAMETER_NAMES.put((String) field.get(Parameters.class), field.getName()); |
||||
} catch (IllegalArgumentException | IllegalAccessException e) { |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
public GetSourceCode(String description, String... methods) { |
||||
super(description, methods); |
||||
} |
||||
|
||||
@Override |
||||
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { |
||||
|
||||
ServletContext servletContext = request.getServletContext(); |
||||
String regex = "(\\s*)\\/\\/\\{\\{([^}]*)\\}\\}\\/\\/(.*)"; |
||||
Pattern pattern = Pattern.compile(regex); |
||||
File sourcePath = new File(servletContext.getRealPath("/WEB-INF/src/resource/client/php")); |
||||
URI sourceUri = sourcePath.toURI(); |
||||
ZipWriter zipWriter = ZipWriterFactoryUtil.getZipWriter(); |
||||
for (File inputFile : FileUtils.listFiles(sourcePath, null, true)) { |
||||
BufferedReader reader = new BufferedReader(new FileReader(inputFile)); |
||||
StringBuilder output = new StringBuilder(); |
||||
for (String line = reader.readLine(); null != line; line = reader.readLine()) { |
||||
Matcher matcher = pattern.matcher(line); |
||||
if (matcher.matches()) { |
||||
switch (matcher.group(2)) { |
||||
case "CLIENT_FUNCTIONS": |
||||
line = line.replaceAll(regex, getClientFunctions(matcher.group(1)) + "$3"); |
||||
break; |
||||
case "COMMANDS": |
||||
line = line.replaceAll(regex, getCommands(matcher.group(1)) + "$3"); |
||||
break; |
||||
case "HELP_ARRAY": |
||||
line = line.replaceAll(regex, getHelpArray(matcher.group(1)) + "$3"); |
||||
break; |
||||
case "METHODS": |
||||
line = line.replaceAll(regex, getMethods(matcher.group(1)) + "$3"); |
||||
break; |
||||
case "PARAMETERS": |
||||
line = line.replaceAll(regex, getParameters(matcher.group(1)) + "$3"); |
||||
break; |
||||
case "STATUSES": |
||||
line = line.replaceAll(regex, getStatuses(matcher.group(1)) + "$3"); |
||||
break; |
||||
default: |
||||
System.out.println("################# Unknown match //{{" + matcher.group(2) + "}}//"); |
||||
} |
||||
} |
||||
output.append(line).append(StringPool.NEW_LINE); |
||||
} |
||||
reader.close(); |
||||
String fileName = sourceUri.relativize(inputFile.toURI()).getPath(); |
||||
zipWriter.addEntry(fileName, output); |
||||
} |
||||
byte[] bytes = Files.readAllBytes(zipWriter.getFile().toPath()); |
||||
response.setContentType(ContentTypes.APPLICATION_ZIP); |
||||
response.addHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"sourceCode.zip\""); |
||||
response.setContentLength(bytes.length); |
||||
ServletResponseUtil.write(response, bytes); |
||||
} |
||||
|
||||
private static String getClientFunctions(String prefix) { |
||||
|
||||
StringBuilder sb = new StringBuilder(); |
||||
for (String verb : CommandList.getVerbs()) { |
||||
if (!verb.equals("login")) { |
||||
Command command = CommandList.get(verb); |
||||
sb.append(prefix).append("case '").append(verb).append("':\n"); |
||||
List<Parameter> parameters = command.getInputParameters(); |
||||
int nRequired = 0; |
||||
for (Parameter parameter : parameters) { |
||||
if (parameter.isRequired()) { |
||||
nRequired++; |
||||
} |
||||
} |
||||
if (nRequired > 0) { |
||||
sb.append(prefix).append(INDENT).append("if (\\$argc < ").append(nRequired + 2).append(") {\n"); |
||||
sb.append(prefix).append(INDENT).append(INDENT) |
||||
.append("echo(\"Numero di argomenti insufficiente.\\\\n\\\\n\");\n"); |
||||
sb.append(prefix).append(INDENT).append(INDENT).append("die(\\$api->getHelp(\\$argv[1]));\n"); |
||||
sb.append(prefix).append(INDENT).append("}\n"); |
||||
} |
||||
if (command.isSecure()) { |
||||
sb.append(prefix).append(INDENT).append("\\$api->login();\n"); |
||||
} |
||||
sb.append(prefix).append(INDENT).append("\\$val = \\$api->") |
||||
.append(ApiUtil.underscoreToCamelCase(verb)).append(StringPool.OPEN_PARENTHESIS); |
||||
if (parameters.size() > 0) { |
||||
for (int i = 0; i < nRequired; i++) { |
||||
sb.append("\\$argv[").append(i + 2).append("], "); |
||||
} |
||||
for (int i = nRequired; i < parameters.size(); i++) { |
||||
sb.append("\\$argv[").append(i + 2).append("] ?? null, "); |
||||
} |
||||
sb.setLength(sb.length() - 2); |
||||
} |
||||
sb.append(");\n"); |
||||
sb.append(prefix).append(INDENT); |
||||
Parameter parameter = command.getOutputParameters().get(0); |
||||
switch (parameter.getType()) { |
||||
case TEXT_HTML: |
||||
case TEXT_PLAIN: |
||||
sb.append("echo \\$val;\n"); |
||||
break; |
||||
case APPLICATION_ZIP: |
||||
sb.append("\\$n = 1;\n"); |
||||
sb.append(prefix).append(INDENT).append("while (file_exists(\\$file = \"data\\$n.zip\")) {\n"); |
||||
sb.append(prefix).append(INDENT).append(INDENT).append("\\$n++;\n"); |
||||
sb.append(prefix).append(INDENT).append("}\n"); |
||||
sb.append(prefix).append(INDENT).append("file_put_contents(\\$file, \\$val);\n"); |
||||
sb.append(prefix).append(INDENT).append("echo \"Salvato file \\$file\\\\n\";\n"); |
||||
break; |
||||
default: |
||||
sb.append("print_r(\\$val);\n"); |
||||
} |
||||
sb.append(prefix).append(INDENT).append("break;\n"); |
||||
} |
||||
} |
||||
sb.setLength(sb.length() - 1); |
||||
return sb.toString(); |
||||
} |
||||
|
||||
private static String getHelpArray(String prefix) { |
||||
|
||||
StringBuilder sb = new StringBuilder(); |
||||
sb.append(prefix).append("'' => [\n"); |
||||
for (Command command : CommandList.getList()) { |
||||
if (!command.getVerb().equals("login")) { |
||||
sb.append(prefix).append(INDENT).append(StringPool.APOSTROPHE); |
||||
if (command.isSecure()) { |
||||
sb.append(StringPool.STAR); |
||||
} |
||||
sb.append(command.getVerb().isEmpty() ? "nop" : command.getVerb()).append(": ") |
||||
.append(command.getDescription().replace(StringPool.APOSTROPHE, "\\\\'")).append("',\n"); |
||||
} |
||||
} |
||||
sb.append(prefix).append(INDENT).append("'',\n"); |
||||
sb.append(prefix).append(INDENT).append("'* = richiede nome utente e password',\n"); |
||||
sb.append(prefix).append("],\n"); |
||||
for (String verb : CommandList.getVerbs()) { |
||||
if (!verb.equals("login")) { |
||||
Command command = CommandList.get(verb); |
||||
sb.append(prefix).append(StringPool.APOSTROPHE).append(verb).append("' => [\n"); |
||||
sb.append(prefix).append(INDENT).append("\"Uso: php {\\$argv[0]} ").append(verb); |
||||
for (Parameter parameter : command.getInputParameters()) { |
||||
if (parameter.isRequired()) { |
||||
sb.append(" <").append(parameter.getName()).append(StringPool.GREATER_THAN); |
||||
} |
||||
} |
||||
for (Parameter parameter : command.getInputParameters()) { |
||||
if (!parameter.isRequired()) { |
||||
sb.append(" [").append(parameter.getName()).append(StringPool.CLOSE_BRACKET); |
||||
} |
||||
} |
||||
sb.append("\",\n"); |
||||
sb.append(prefix).append(INDENT).append(StringPool.APOSTROPHE) |
||||
.append(command.getDescription().replace(StringPool.APOSTROPHE, "\\\\'")).append("',\n"); |
||||
if (command.getInputParameters().size() > 0) { |
||||
sb.append(prefix).append(INDENT).append("'',\n"); |
||||
boolean hasRequired = false; |
||||
for (Parameter parameter : command.getInputParameters()) { |
||||
if (parameter.isRequired()) { |
||||
sb.append(prefix).append(INDENT).append("'**").append(parameter.getName()) |
||||
.append(": ") |
||||
.append(parameter.getDescription().replace(StringPool.APOSTROPHE, "\\\\'")) |
||||
.append("',\n"); |
||||
hasRequired = true; |
||||
} |
||||
} |
||||
for (Parameter parameter : command.getInputParameters()) { |
||||
if (!parameter.isRequired()) { |
||||
sb.append(prefix).append(INDENT).append(StringPool.APOSTROPHE).append(parameter.getName()) |
||||
.append(": ") |
||||
.append(parameter.getDescription().replace(StringPool.APOSTROPHE, "\\\\'")) |
||||
.append("',\n"); |
||||
} |
||||
} |
||||
if (hasRequired) { |
||||
sb.append(prefix).append(INDENT).append("'',\n"); |
||||
sb.append(prefix).append(INDENT).append("'** = parametro obbligatorio',\n"); |
||||
} |
||||
} |
||||
sb.append(prefix).append("],\n"); |
||||
} |
||||
} |
||||
sb.setLength(sb.length() - 1); |
||||
return sb.toString(); |
||||
} |
||||
|
||||
private static String getCommands(String prefix) { |
||||
|
||||
StringBuilder sb = new StringBuilder(); |
||||
for (String verb : CommandList.getVerbs()) { |
||||
if (sb.length() > 0) { |
||||
sb.append(StringPool.NEW_LINE); |
||||
} |
||||
Command command = CommandList.get(verb); |
||||
sb.append(prefix).append("public const ").append(verb.toUpperCase()).append(" = '") |
||||
.append(command.getVerb()).append("';"); |
||||
} |
||||
return sb.toString(); |
||||
} |
||||
|
||||
private static String getMethods(String prefix) { |
||||
|
||||
StringBuilder sb = new StringBuilder(); |
||||
for (String verb : CommandList.getVerbs()) { |
||||
if (!verb.equals("login")) { |
||||
sb.append(getMethod(verb, prefix)).append(StringPool.NEW_LINE); |
||||
} |
||||
} |
||||
sb.setLength(sb.length() - 1); |
||||
return sb.toString(); |
||||
} |
||||
|
||||
private static String getMethod(String verb, String prefix) { |
||||
|
||||
StringBuilder sb = new StringBuilder(); |
||||
String name = ApiUtil.underscoreToCamelCase(verb); |
||||
Command command = CommandList.get(verb); |
||||
sb.append(prefix).append("/*\n").append(prefix).append(" * ").append(command.getDescription()) |
||||
.append(StringPool.NEW_LINE).append(prefix).append(" */\n"); |
||||
List<Parameter> parameters = command.getInputParameters(); |
||||
sb.append(prefix).append("public function ").append(name).append(StringPool.OPEN_PARENTHESIS) |
||||
.append(functionParameters(parameters)).append(")\n"); |
||||
sb.append(prefix).append("{\n"); |
||||
if (parameters.size() > 0) { |
||||
boolean allRequired = true; |
||||
for (Parameter parameter : parameters) { |
||||
if (!parameter.isRequired()) { |
||||
allRequired = false; |
||||
break; |
||||
} |
||||
} |
||||
if (allRequired) { |
||||
sb.append(prefix).append(INDENT).append("return \\$this->exec(Commands::").append(verb.toUpperCase()) |
||||
.append(", [\n"); |
||||
for (Parameter parameter : parameters) { |
||||
sb.append(prefix).append(INDENT).append(INDENT).append("Parameters::") |
||||
.append(PARAMETER_NAMES.get(parameter.getName())).append(" => \\$") |
||||
.append(parameter.getName()).append(",\n"); |
||||
} |
||||
sb.append(prefix).append(INDENT).append(StringPool.CLOSE_BRACKET); |
||||
if (!command.isSecure()) { |
||||
sb.append(", false"); |
||||
} |
||||
sb.append(");\n"); |
||||
} else { |
||||
sb.append(prefix).append(INDENT).append("\\$data = [\n"); |
||||
for (Parameter parameter : parameters) { |
||||
if (parameter.isRequired()) { |
||||
sb.append(prefix).append(INDENT).append(INDENT).append("Parameters::") |
||||
.append(PARAMETER_NAMES.get(parameter.getName())).append(" => \\$") |
||||
.append(parameter.getName()).append(",\n"); |
||||
} |
||||
} |
||||
sb.append(prefix).append(INDENT).append("];\n"); |
||||
for (Parameter parameter : parameters) { |
||||
if (!parameter.isRequired()) { |
||||
sb.append(prefix).append(INDENT).append("if (null !== \\$").append(parameter.getName()) |
||||
.append(") {\n"); |
||||
sb.append(prefix).append(INDENT).append(INDENT).append("\\$data[Parameters::") |
||||
.append(PARAMETER_NAMES.get(parameter.getName())).append("] = \\$") |
||||
.append(parameter.getName()).append(";\n"); |
||||
sb.append(prefix).append(INDENT).append("}\n"); |
||||
} |
||||
} |
||||
sb.append(prefix).append(INDENT).append("return \\$this->exec(Commands::").append(verb.toUpperCase()) |
||||
.append(", \\$data"); |
||||
if (!command.isSecure()) { |
||||
sb.append(", false"); |
||||
} |
||||
sb.append(");\n"); |
||||
} |
||||
} else { |
||||
sb.append(prefix).append(INDENT).append("return \\$this->exec(Commands::").append(verb.toUpperCase()); |
||||
if (!command.isSecure()) { |
||||
sb.append(", null, false"); |
||||
} |
||||
sb.append(");\n"); |
||||
} |
||||
sb.append(prefix).append("}\n"); |
||||
return sb.toString(); |
||||
} |
||||
|
||||
private static String functionParameters(List<Parameter> parameters) { |
||||
|
||||
StringBuilder sb = new StringBuilder(); |
||||
if (parameters.size() > 0) { |
||||
for (Parameter parameter : parameters) { |
||||
if (parameter.isRequired()) { |
||||
sb.append(parameter.getType().toString().toLowerCase()).append(" \\$").append(parameter.getName()) |
||||
.append(StringPool.COMMA_AND_SPACE); |
||||
} |
||||
} |
||||
for (Parameter parameter : parameters) { |
||||
if (!parameter.isRequired()) { |
||||
sb.append(StringPool.QUESTION).append(parameter.getType().toString().toLowerCase()).append(" \\$") |
||||
.append(parameter.getName()).append(" = null, "); |
||||
} |
||||
} |
||||
sb.setLength(sb.length() - 2); |
||||
} |
||||
return sb.toString(); |
||||
} |
||||
|
||||
private static String getParameters(String prefix) throws IllegalArgumentException, IllegalAccessException { |
||||
return dumpConstants(Parameters.class, prefix); |
||||
} |
||||
|
||||
private static String getStatuses(String prefix) throws IllegalArgumentException, IllegalAccessException { |
||||
return dumpConstants(Status.class, prefix); |
||||
} |
||||
|
||||
private static String dumpConstants(Class<?> clazz, String prefix) throws IllegalArgumentException, |
||||
IllegalAccessException { |
||||
|
||||
StringBuilder sb = new StringBuilder(); |
||||
for (Field field : Arrays.asList(clazz.getDeclaredFields())) { |
||||
int mod = field.getModifiers(); |
||||
if (Modifier.isPublic(mod) && Modifier.isStatic(mod) && Modifier.isFinal(mod)) { |
||||
if (sb.length() > 0) { |
||||
sb.append(StringPool.NEW_LINE); |
||||
} |
||||
sb.append(prefix).append("public const ").append(field.getName()).append(" = "); |
||||
if (String.class.equals(field.getType())) { |
||||
sb.append(StringPool.APOSTROPHE) |
||||
.append(((String) field.get(clazz)).replace(StringPool.APOSTROPHE, "\\\\'")) |
||||
.append(StringPool.APOSTROPHE); |
||||
} else { |
||||
sb.append(field.get(clazz)); |
||||
} |
||||
sb.append(StringPool.SEMICOLON); |
||||
} |
||||
} |
||||
return sb.toString(); |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getInputParameters() { |
||||
return EMPTY_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getOutputParameters() { |
||||
return OUTPUT_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isSecure() { |
||||
return false; |
||||
} |
||||
} |
@ -1,57 +0,0 @@
|
||||
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.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; |
||||
import it.mwg.sicilia.sue.api.v1.util.DettPraticaUtil; |
||||
|
||||
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; |
||||
|
||||
public class ListUses extends Command { |
||||
|
||||
private static final List<Parameter> OUTPUT_PARAMETERS = new ArrayList<>(); |
||||
static { |
||||
OUTPUT_PARAMETERS.addAll(BASE_OUTPUT_PARAMETERS); |
||||
Parameter p = new Parameter(Parameters.USES, TYPES.ARRAY, "Elenco di destinazioni d'uso"); |
||||
p.addSubParameter(new Parameter(Parameters.CODE, TYPES.STRING, "Codice della destinazione d'uso")); |
||||
p.addSubParameter(new Parameter(Parameters.DESCRIPTION, TYPES.STRING, "Descrizione della destinazione d'uso")); |
||||
OUTPUT_PARAMETERS.add(p); |
||||
}; |
||||
|
||||
public ListUses(String description, String... methods) { |
||||
super(description, methods); |
||||
} |
||||
|
||||
@Override |
||||
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { |
||||
|
||||
Map<String, Serializable> result = new HashMap<>(); |
||||
result.put(Parameters.USES, (Serializable) DettPraticaUtil.getUses()); |
||||
Response.write(response, Status.OK, result); |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getInputParameters() { |
||||
return EMPTY_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getOutputParameters() { |
||||
return OUTPUT_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isSecure() { |
||||
return false; |
||||
} |
||||
} |
@ -0,0 +1,148 @@
|
||||
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.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; |
||||
import it.mwg.sicilia.sue.api.v1.util.ApiUtil; |
||||
import it.tref.liferay.portos.bo.model.DettPratica; |
||||
import it.tref.liferay.portos.bo.model.DocPratica; |
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.util.DocumentiPraticaUtil; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.ArrayList; |
||||
import java.util.Date; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
import org.apache.commons.codec.digest.DigestUtils; |
||||
|
||||
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.service.ServiceContext; |
||||
import com.sun.org.apache.xml.internal.security.exceptions.Base64DecodingException; |
||||
import com.sun.org.apache.xml.internal.security.utils.Base64; |
||||
|
||||
public class UploadAttachment extends Command { |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> INPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
add(new Parameter(Parameters.APPLICATION_ID, TYPES.INT, "Id dell'istanza")); |
||||
add(new Parameter(Parameters.CODE, TYPES.STRING, "Codice del documento")); |
||||
add(new Parameter(Parameters.NAME, TYPES.STRING, "Nome del file completo di estensione")); |
||||
add(new Parameter(Parameters.CONTENT_BASE64, TYPES.STRING, "Contenuto del file in codifica Base64")); |
||||
} |
||||
}; |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<Parameter> OUTPUT_PARAMETERS = new ArrayList<Parameter>() { |
||||
{ |
||||
addAll(BASE_OUTPUT_PARAMETERS); |
||||
add(new Parameter(Parameters.ATTACHMENT_ID, TYPES.INT, "Identificatore dell'allegato appena aggiunto")); |
||||
add(new Parameter(Parameters.ADDITIONAL_INFO, TYPES.STRING, |
||||
"Eventuali informazioni aggiuntive sull'operazione o sugli errori incontrati", false)); |
||||
} |
||||
}; |
||||
|
||||
public UploadAttachment(String description, String... methods) { |
||||
super(description, methods); |
||||
} |
||||
|
||||
@Override |
||||
public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { |
||||
|
||||
if (verifyAccessToken(request, response)) { |
||||
IntPratica intPratica = getSecureIntPratica(response); |
||||
if (Validator.isNotNull(intPratica)) { |
||||
List<String> additionalInfo = new ArrayList<>(); |
||||
if (!parameters.containsKey(Parameters.CODE)) { |
||||
additionalInfo.add("Parametro " + Parameters.CODE + " mancante"); |
||||
Response.write(response, Status.MALFORMED_REQUEST, additionalInfo); |
||||
return; |
||||
} |
||||
String tipologia = MapUtil.getString(parameters, Parameters.CODE); |
||||
if (!DocumentiPraticaUtil.getTipiDocDomanda().containsKey(tipologia)) { |
||||
additionalInfo.add("Valore non valido destinazione = \"" + tipologia + StringPool.QUOTE); |
||||
Response.write(response, Status.MALFORMED_REQUEST, additionalInfo); |
||||
return; |
||||
} |
||||
if (!parameters.containsKey(Parameters.CONTENT_BASE64)) { |
||||
additionalInfo.add("Parametro " + Parameters.CONTENT_BASE64 + " mancante"); |
||||
Response.write(response, Status.MALFORMED_REQUEST, additionalInfo); |
||||
return; |
||||
} |
||||
String base64 = MapUtil.getString(parameters, Parameters.CONTENT_BASE64); |
||||
byte[] dlFileEntry = null; |
||||
try { |
||||
dlFileEntry = Base64.decode(base64); |
||||
} catch (Base64DecodingException e) { |
||||
additionalInfo.add("Errore durante la decodifica base64, formato errato"); |
||||
Response.write(response, Status.MALFORMED_REQUEST, additionalInfo); |
||||
return; |
||||
} |
||||
if (!ApiUtil.isValidPdf(dlFileEntry)) { |
||||
additionalInfo.add("Formato file non valido"); |
||||
Response.write(response, Status.MALFORMED_REQUEST, additionalInfo); |
||||
return; |
||||
} |
||||
try { |
||||
Date date = new Date(); |
||||
long userId = intPratica.getUserId(); |
||||
String className = DettPratica.class.getName(); |
||||
long intPraticaId = intPratica.getIntPraticaId(); |
||||
DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastEditableByIntPratica(intPraticaId); |
||||
long classPk = dettPratica.getDettPraticaId(); |
||||
String fileName = MapUtil.getString(parameters, Parameters.NAME); |
||||
if (Validator.isNull(fileName)) { |
||||
fileName = String.valueOf(date.getTime()); |
||||
} |
||||
String version = "0"; |
||||
boolean praticaValidata = false; |
||||
String descLong = fileName; |
||||
String sha256 = DigestUtils.sha256Hex(dlFileEntry); |
||||
boolean aggiornato = false; |
||||
String jsonFirmatari = StringPool.BLANK; |
||||
long dettPraticaIdRimozione = 0; |
||||
Date dtDataRimozione = null; |
||||
ServiceContext serviceContext = new ServiceContext(); |
||||
serviceContext.setCompanyId(sportello.getCompanyId()); |
||||
serviceContext.setScopeGroupId(sportello.getGroupId()); |
||||
serviceContext.setUserId(userId); |
||||
serviceContext.setCreateDate(date); |
||||
serviceContext.setModifiedDate(date); |
||||
DocPratica docPratica = DocPraticaLocalServiceUtil.addDocPratica(userId, className, classPk, |
||||
intPraticaId, dlFileEntry, fileName, version, praticaValidata, descLong, tipologia, sha256, |
||||
aggiornato, jsonFirmatari, dettPraticaIdRimozione, dtDataRimozione, serviceContext); |
||||
Map<String, Serializable> result = new HashMap<>(); |
||||
result.put(Parameters.APPLICATION_ID, docPratica.getDocPraticaId()); |
||||
Response.write(response, Status.OK, result, additionalInfo); |
||||
} catch (Exception e) { |
||||
additionalInfo.add("Errore durante l'esecuzione: " + e.getMessage()); |
||||
Response.write(response, Status.SERVER_ERROR, additionalInfo); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getInputParameters() { |
||||
return INPUT_PARAMETERS; |
||||
} |
||||
|
||||
@Override |
||||
public List<Parameter> getOutputParameters() { |
||||
return OUTPUT_PARAMETERS; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,7 @@
|
||||
Prima di operare aggiornare il file SueApi/v1/config/api.json con i corretti |
||||
parametri di accesso. |
||||
|
||||
Compatibile con php 7.1+ |
||||
|
||||
Per una breve guida eseguire: |
||||
php client.php help |
@ -0,0 +1,32 @@
|
||||
<?php |
||||
|
||||
namespace SueApi; |
||||
|
||||
class AutoLoader |
||||
{ |
||||
protected static $basePath; |
||||
protected static $namespace; |
||||
protected static $namespaceLen; |
||||
|
||||
public static function staticInit() |
||||
{ |
||||
self::$basePath = dirname(__FILE__) . DIRECTORY_SEPARATOR; |
||||
self::$namespace = __NAMESPACE__ . '\\'; |
||||
self::$namespaceLen = strlen(self::$namespace); |
||||
spl_autoload_register(self::class . '::load'); |
||||
} |
||||
|
||||
public static function load(string $className) |
||||
{ |
||||
if (str_starts_with($className, self::$namespace)) { |
||||
$fileName = self::$basePath |
||||
. str_replace('\\', DIRECTORY_SEPARATOR, substr($className, self::$namespaceLen)) . '.php'; |
||||
if (file_exists($fileName)) { |
||||
require_once($fileName); |
||||
if (is_callable([$className, 'staticInit'])) { |
||||
$className::staticInit(); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
|
||||
<?php |
||||
|
||||
namespace SueApi; |
||||
|
||||
$basePath = dirname(__FILE__) . DIRECTORY_SEPARATOR; |
||||
require_once($basePath . 'polyfill.php'); |
||||
require_once($basePath . 'functions.php'); |
||||
require_once($basePath . 'AutoLoader.php'); |
||||
AutoLoader::staticInit(); |
@ -0,0 +1,22 @@
|
||||
<?php |
||||
|
||||
function parseCommandLine() |
||||
{ |
||||
global $argc, $argv; |
||||
$debug = false; |
||||
for ($i = 1; $i < $argc; $i++) { |
||||
$arg = $argv[$i]; |
||||
if (str_starts_with($arg, '--')) { |
||||
switch ($arg) { |
||||
case '--debug': |
||||
$debug = true; |
||||
break; |
||||
default: |
||||
die("Opzione non valida: $arg\n"); |
||||
} |
||||
unset($argv[$i]); |
||||
} |
||||
} |
||||
define('DEBUG', $debug); |
||||
$argv = array_values($argv); |
||||
} |
@ -0,0 +1,8 @@
|
||||
<?php |
||||
|
||||
if (!function_exists('str_starts_with')) { |
||||
function str_starts_with($haystack, $needle) |
||||
{ |
||||
return strpos($haystack, $needle) === 0; |
||||
} |
||||
} |
@ -0,0 +1,105 @@
|
||||
<?php |
||||
|
||||
namespace SueApi\v1; |
||||
|
||||
use CurlHandle; |
||||
|
||||
class Client |
||||
{ |
||||
private $config = null; |
||||
private $token = null; |
||||
|
||||
public function __construct(Config $config) |
||||
{ |
||||
$this->config = $config; |
||||
} |
||||
|
||||
public function login(?string $username = null, ?string $password = null) |
||||
{ |
||||
$response = $this->exec(Commands::LOGIN, [ |
||||
Parameters::USERNAME => $username ?? $this->config->getUsername(), |
||||
Parameters::PASSWORD => $password ?? $this->config->getPassword(), |
||||
]); |
||||
if (!isset($response[Parameters::TOKEN])) { |
||||
die("Token non ricevuto.\n"); |
||||
} |
||||
$this->token = $response[Parameters::TOKEN]; |
||||
} |
||||
|
||||
public function setLogin(string $username, string $password) |
||||
{ |
||||
$this->config->setUsername($username); |
||||
$this->config->setPassword($password); |
||||
$this->config->save(); |
||||
} |
||||
|
||||
//{{METHODS}}// |
||||
|
||||
public static function getHelp(string $command = '') |
||||
{ |
||||
global $argv; |
||||
$help = [ |
||||
//{{HELP_ARRAY}}// |
||||
][$command] ?? ["Nessun aiuto per $command"]; |
||||
return implode("\n", $help) . "\n"; |
||||
} |
||||
|
||||
private function exec(string $command, ?array $payload = null, bool $secure = true) |
||||
{ |
||||
$data = $this->curlExec($command, $payload, $secure); |
||||
if (is_array($data)) { |
||||
if (!isset($data[Parameters::STATUS_CODE])) { |
||||
die("Risposta del server non corretta.\n$" . json_encode($data) . "\n"); |
||||
} |
||||
if (Status::OK != $data[Parameters::STATUS_CODE]) { |
||||
die("Errore {$data[Parameters::STATUS_CODE]}: {$data[Parameters::STATUS_MESSAGE]}\n" . |
||||
($data[Parameters::ADDITIONAL_INFO] ?? '') . "\n"); |
||||
} |
||||
} |
||||
return $data; |
||||
} |
||||
|
||||
private function curlExec(string $command, ?array $payload = null, bool $secure = true) |
||||
{ |
||||
$url = "{$this->config->getEndpoint()}/$command"; |
||||
$post = (null !== $payload); |
||||
$curl = curl_init($url); |
||||
if ($post) { |
||||
$json = json_encode($payload, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); |
||||
curl_setopt_array($curl, [ |
||||
CURLOPT_HTTPHEADER => ['Content-Type:application/json; charset=UTF-8'], |
||||
CURLOPT_POST => true, |
||||
CURLOPT_POSTFIELDS => $json, |
||||
]); |
||||
if (DEBUG) { |
||||
echo "DEBUG: POST $url > $json\n"; |
||||
} |
||||
} else { |
||||
if (DEBUG) { |
||||
echo "DEBUG: GET $url\n"; |
||||
} |
||||
} |
||||
if ($secure) { |
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, [Parameters::X_AUTH_TOKEN . ': ' . $this->token]); |
||||
} |
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); |
||||
$data = curl_exec($curl); |
||||
if (200 !== ($sc = curl_getinfo($curl, CURLINFO_HTTP_CODE))) { |
||||
if ('' != ($error = curl_error($curl))) { |
||||
die("$error.\n"); |
||||
} else { |
||||
die("Stato $sc\n$data\n"); |
||||
} |
||||
} |
||||
if (DEBUG) { |
||||
echo "DEBUG: < $data\n"; |
||||
} |
||||
switch (explode(';', curl_getinfo($curl, CURLINFO_CONTENT_TYPE))[0]) { |
||||
case 'application/json': |
||||
$data = json_decode($data, true); |
||||
break; |
||||
} |
||||
curl_close($curl); |
||||
return $data; |
||||
} |
||||
} |
@ -0,0 +1,8 @@
|
||||
<?php |
||||
|
||||
namespace SueApi\v1; |
||||
|
||||
class Commands |
||||
{ |
||||
//{{COMMANDS}}// |
||||
} |
@ -0,0 +1,65 @@
|
||||
<?php |
||||
|
||||
namespace SueApi\v1; |
||||
|
||||
abstract class Config |
||||
{ |
||||
protected $endpoint = null; |
||||
protected $username = null; |
||||
protected $password = null; |
||||
|
||||
protected static $apiPath = null; |
||||
protected static $basePath = null; |
||||
protected static $configPath = null; |
||||
|
||||
public static function staticInit(): void |
||||
{ |
||||
self::$apiPath = dirname(__FILE__) . DIRECTORY_SEPARATOR; |
||||
self::$basePath = dirname(self::$apiPath) . DIRECTORY_SEPARATOR; |
||||
self::$configPath = self::$apiPath . 'config' . DIRECTORY_SEPARATOR; |
||||
} |
||||
|
||||
public function __construct(string $endpoint, string $username, string $password) |
||||
{ |
||||
$this->endpoint = $endpoint; |
||||
$this->username = $username; |
||||
$this->password = $password; |
||||
} |
||||
|
||||
public static function getConfigPath(string $configFile = ''): ?string |
||||
{ |
||||
return self::$configPath . $configFile; |
||||
} |
||||
|
||||
public function getEndpoint(): ?string |
||||
{ |
||||
return $this->endpoint; |
||||
} |
||||
|
||||
public function setEndpoint(string $endpoint): void |
||||
{ |
||||
$this->endpoint = $endpoint; |
||||
} |
||||
|
||||
public function getUsername(): ?string |
||||
{ |
||||
return $this->username; |
||||
} |
||||
|
||||
public function setUsername(string $username): void |
||||
{ |
||||
$this->username = $username; |
||||
} |
||||
|
||||
public function getPassword(): ?string |
||||
{ |
||||
return $this->password; |
||||
} |
||||
|
||||
public function setPassword(string $password) |
||||
{ |
||||
$this->password = $password; |
||||
} |
||||
|
||||
abstract public function save(); |
||||
} |
@ -0,0 +1,24 @@
|
||||
<?php |
||||
|
||||
namespace SueApi\v1; |
||||
|
||||
class FileConfig extends Config |
||||
{ |
||||
private $fileName = 'api.json'; |
||||
|
||||
public function __construct(string $fileName = 'api.json') |
||||
{ |
||||
$this->fileName = $fileName; |
||||
$dati = json_decode(file_get_contents($this->getConfigPath($fileName))); |
||||
parent::__construct($dati->endpoint, $dati->username, $dati->password); |
||||
} |
||||
|
||||
public function save() |
||||
{ |
||||
file_put_contents($this->getConfigPath($this->fileName), json_encode([ |
||||
'endpoint' => $this->endpoint, |
||||
'username' => $this->username, |
||||
'password' => $this->password, |
||||
], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); |
||||
} |
||||
} |
@ -0,0 +1,8 @@
|
||||
<?php |
||||
|
||||
namespace SueApi\v1; |
||||
|
||||
class Parameters |
||||
{ |
||||
//{{PARAMETERS}}// |
||||
} |
@ -0,0 +1,8 @@
|
||||
<?php |
||||
|
||||
namespace SueApi\v1; |
||||
|
||||
class Status |
||||
{ |
||||
//{{STATUSES}}// |
||||
} |
@ -0,0 +1,5 @@
|
||||
{ |
||||
"endpoint": "http://paesaggistica:8080/sicilia-sue-connector-portlet/api/v1", |
||||
"username": "", |
||||
"password": "" |
||||
} |
@ -0,0 +1,49 @@
|
||||
<?php |
||||
|
||||
use SueApi\v1\Client; |
||||
use SueApi\v1\FileConfig; |
||||
|
||||
require_once('SueApi/bootstrap.php'); |
||||
|
||||
parseCommandLine(); |
||||
$api = new Client(new FileConfig('api.json')); |
||||
switch ($argv[1] ?? '') { |
||||
//{{CLIENT_FUNCTIONS}}// |
||||
case 'set_login': |
||||
if ($argc < 4) { |
||||
echo ("Numero di argomenti insufficiente.\n\n"); |
||||
echo "Uso: php {$argv[0]} {$argv[2]} <username> <password>\n"; |
||||
echo "Salva le credenziali per l'accesso\n\n"; |
||||
echo "**username: Nome utente\n"; |
||||
echo "**password: Password\n\n"; |
||||
echo "** = parametro obbligatorio\n"; |
||||
die(); |
||||
} |
||||
$api->setLogin($argv[2], $argv[3]); |
||||
echo "Impostazioni salvate\n"; |
||||
break; |
||||
case 'help': |
||||
switch ($argv[2] ?? '') { |
||||
case 'set_login': |
||||
echo "Uso: php {$argv[0]} {$argv[2]} <username> <password>\n"; |
||||
echo "Salva le credenziali per l'accesso\n\n"; |
||||
echo "**username: Nome utente\n"; |
||||
echo "**password: Password\n\n"; |
||||
echo "** = parametro obbligatorio\n"; |
||||
break; |
||||
default: |
||||
echo "set_login: Salva le credenziali per l'accesso\n"; |
||||
echo $api->getHelp($argv[2] ?? ''); |
||||
echo "\nDigitare help <comando> per maggiori informazioni sul comando.\n"; |
||||
echo "L'opzione --debug visualizza a schermo le comunicazioni con il server.\n"; |
||||
echo " Es.: php client.php nop --debug\n"; |
||||
break; |
||||
} |
||||
break; |
||||
default: |
||||
echo "set_login: Salva le credenziali per l'accesso\n"; |
||||
echo $api->getHelp(); |
||||
echo "\nDigitare help <comando> per maggiori informazioni sul comando.\n"; |
||||
echo "L'opzione --debug visualizza a schermo le comunicazioni con il server.\n"; |
||||
echo " Es.: php client.php nop --debug\n"; |
||||
} |
Caricamento…
Reference in new issue