ShowInvoices.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.example;
  2. import javax.annotation.security.RolesAllowed;
  3. import javax.ws.rs.GET;
  4. import javax.ws.rs.Path;
  5. import javax.ws.rs.Produces;
  6. import javax.ws.rs.core.MediaType;
  7. import org.json.simple.JSONArray;
  8. import org.json.simple.parser.JSONParser;
  9. import org.json.simple.parser.ParseException;
  10. import static java.util.Objects.requireNonNull;
  11. import java.io.File;
  12. import java.io.FileNotFoundException;
  13. import java.io.FileReader;
  14. import java.io.IOException;
  15. import java.net.URISyntaxException;
  16. import java.net.URL;
  17. import io.quarkus.qute.Template;
  18. import io.quarkus.qute.TemplateInstance;
  19. @Path("/showinvoices")
  20. @RolesAllowed("finance-user")
  21. public class ShowInvoices {
  22. private final Template showInvoices;
  23. JSONArray invoices = new JSONArray();
  24. String jsonFileName = "invoices.json";
  25. public ShowInvoices(Template showInvoices) {
  26. this.showInvoices = requireNonNull(showInvoices, "page is required");
  27. }
  28. public Object read_invoices() throws FileNotFoundException, IOException, URISyntaxException, ParseException {
  29. URL fileResource = this.getClass().getClassLoader().getResource( jsonFileName );
  30. File jsonResourceFile = new File( fileResource.toURI() );
  31. return new JSONParser().parse( new FileReader( jsonResourceFile) );
  32. }
  33. @GET
  34. @Produces(MediaType.APPLICATION_JSON)
  35. public TemplateInstance get() {
  36. // Get invoice data from Json file
  37. try{
  38. invoices = (JSONArray) read_invoices();
  39. }catch(IOException|URISyntaxException|ParseException excp){
  40. System.out.println("ERROR: "+excp);
  41. excp.printStackTrace();
  42. invoices = new JSONArray();
  43. //invoices.put("error", excp.toString());
  44. }
  45. TemplateInstance invoiceListTemplate=showInvoices.data("invoices", invoices);
  46. return invoiceListTemplate;
  47. }
  48. }