@@ -84,7 +84,8 @@ public class assessments {
8484 @ Produces (MediaType .APPLICATION_JSON )
8585 @ Path ("/queue" )
8686 public Response getAssessments (
87- @ ApiParam (value = "Authentication Header" , required = true ) @ HeaderParam ("FACTION-API-KEY" ) String apiKey ) {
87+ @ ApiParam (value = "Authentication Header" , required = true ) @ HeaderParam ("FACTION-API-KEY" ) String apiKey ,
88+ @ ApiParam (value = "Include base64-encoded images (default false). When false, returns links to Faction images; when true, converts images to base64 data URLs." , required = false ) @ QueryParam ("includeBase64Images" ) Boolean includeBase64Images ) {
8889
8990 EntityManager em = HibHelper .getInstance ().getEMF ().createEntityManager ();
9091 List <AssessmentDTO > dtos = new ArrayList <>();
@@ -95,7 +96,9 @@ public Response getAssessments(
9596 List <Assessment > asmts = AssessmentQueries .getAssessmentsByUserId (em , u , u .getId (),
9697 AssessmentQueries .OnlyNonCompleted );
9798 for (Assessment a : asmts ) {
98- AssessmentQueries .updateImages (a );
99+ if (Boolean .TRUE .equals (includeBase64Images )) {
100+ AssessmentQueries .updateImages (a );
101+ }
99102 AssessmentDTO dto = AssessmentDTO .fromEntity (a );
100103
101104 // Add custom fields if any
@@ -141,7 +144,8 @@ public Response getAssessments(
141144 @ Path ("/{aid}" )
142145 public Response getAssessment (
143146 @ ApiParam (value = "Authentication Header" , required = true ) @ HeaderParam ("FACTION-API-KEY" ) String apiKey ,
144- @ ApiParam (value = "Assessment ID" , required = true ) @ PathParam ("aid" ) Long aid ) {
147+ @ ApiParam (value = "Assessment ID" , required = true ) @ PathParam ("aid" ) Long aid ,
148+ @ ApiParam (value = "Include base64-encoded images (default false). When false, returns links to Faction images; when true, converts images to base64 data URLs." , required = false ) @ QueryParam ("includeBase64Images" ) Boolean includeBase64Images ) {
145149
146150 EntityManager em = HibHelper .getInstance ().getEMF ().createEntityManager ();
147151 try {
@@ -185,7 +189,9 @@ public Response getAssessment(
185189 }
186190
187191 // Convert to DTO
188- AssessmentQueries .updateImages (assessment );
192+ if (Boolean .TRUE .equals (includeBase64Images )) {
193+ AssessmentQueries .updateImages (assessment );
194+ }
189195 AssessmentDTO dto = AssessmentDTO .fromEntity (assessment );
190196
191197 // Add custom fields from the assessment entity
@@ -585,7 +591,8 @@ public Response updateAssessment(
585591 @ Path ("/vulns/{aid}" )
586592 public Response getVulns (
587593 @ ApiParam (value = "Authentication Header" , required = true ) @ HeaderParam ("FACTION-API-KEY" ) String apiKey ,
588- @ ApiParam (value = "Assessment ID" , required = true ) @ PathParam ("aid" ) Long aid ) {
594+ @ ApiParam (value = "Assessment ID" , required = true ) @ PathParam ("aid" ) Long aid ,
595+ @ ApiParam (value = "Include base64-encoded images (default false). When false, returns links to Faction images; when true, converts images to base64 data URLs." , required = false ) @ QueryParam ("includeBase64Images" ) Boolean includeBase64Images ) {
589596
590597 EntityManager em = HibHelper .getInstance ().getEMF ().createEntityManager ();
591598 List <VulnerabilityDTO > dtos = new ArrayList <>();
@@ -599,8 +606,10 @@ public Response getVulns(
599606 return Response .status (401 ).entity (String .format (Support .ERROR , "No Assessment" )).build ();
600607 for (Assessment a : asmts ) {
601608 for (Vulnerability v : a .getVulns ()) {
602- v .updateRiskLevels ();
603- AssessmentQueries .updateImages (a , v );
609+ if (Boolean .TRUE .equals (includeBase64Images )) {
610+ AssessmentQueries .updateImages (a , v );
611+ }
612+ v .updateRiskLevels ();
604613 v .updateRiskLevels (em );
605614 VulnerabilityDTO dto = VulnerabilityDTO .fromEntity (v );
606615
@@ -643,7 +652,8 @@ public Response getVulns(
643652 @ Path ("/history/{appid}" )
644653 public Response getHistory (
645654 @ ApiParam (value = "Authentication Header" , required = true ) @ HeaderParam ("FACTION-API-KEY" ) String apiKey ,
646- @ ApiParam (value = "Application ID Header" , required = true ) @ PathParam ("appid" ) String appid ) {
655+ @ ApiParam (value = "Application ID Header" , required = true ) @ PathParam ("appid" ) String appid ,
656+ @ ApiParam (value = "Include base64-encoded images (default false). When false, returns links to Faction images; when true, converts images to base64 data URLs." , required = false ) @ QueryParam ("includeBase64Images" ) Boolean includeBase64Images ) {
647657
648658 EntityManager em = HibHelper .getInstance ().getEMF ().createEntityManager ();
649659 List <VulnerabilityDTO > dtos = new ArrayList <>();
@@ -657,7 +667,9 @@ public Response getHistory(
657667 return Response .status (401 ).entity (String .format (Support .ERROR , "No Assessment" )).build ();
658668 for (Assessment a : asmts ) {
659669 for (Vulnerability v : a .getVulns ()) {
660- AssessmentQueries .updateImages (a , v );
670+ if (Boolean .TRUE .equals (includeBase64Images )) {
671+ AssessmentQueries .updateImages (a , v );
672+ }
661673 v .updateRiskLevels (em );
662674 VulnerabilityDTO dto = VulnerabilityDTO .fromEntity (v );
663675
@@ -746,7 +758,8 @@ public Response updateNotes(
746758 @ Path ("/vuln/{vid}" )
747759 public Response getVuln (
748760 @ ApiParam (value = "Authentication Header" , required = true ) @ HeaderParam ("FACTION-API-KEY" ) String apiKey ,
749- @ ApiParam (value = "Vulnerability ID" , required = true ) @ PathParam ("vid" ) Long vid ) {
761+ @ ApiParam (value = "Vulnerability ID" , required = true ) @ PathParam ("vid" ) Long vid ,
762+ @ ApiParam (value = "Include base64-encoded images (default false). When false, returns links to Faction images; when true, converts images to base64 data URLs." , required = false ) @ QueryParam ("includeBase64Images" ) Boolean includeBase64Images ) {
750763
751764 EntityManager em = HibHelper .getInstance ().getEMF ().createEntityManager ();
752765 List <VulnerabilityDTO > dtos = new ArrayList <>();
@@ -778,7 +791,9 @@ public Response getVuln(
778791 v .setDetails (v .getDetails ());
779792 }
780793
781- AssessmentQueries .updateImages (em , v );
794+ if (Boolean .TRUE .equals (includeBase64Images )) {
795+ AssessmentQueries .updateImages (em , v );
796+ }
782797 v .updateRiskLevels (em );
783798 VulnerabilityDTO dto = VulnerabilityDTO .fromEntity (v );
784799
@@ -1323,7 +1338,8 @@ else if (autoCreateCamp) {
13231338 public Response getCompletedAssessments (
13241339 @ ApiParam (value = "Authentication Header" , required = true ) @ HeaderParam ("FACTION-API-KEY" ) String apiKey ,
13251340 @ ApiParam (value = "Start Date (DD/MM/YYYY)" , required = true ) @ FormParam ("start" ) String start ,
1326- @ ApiParam (value = "End Date (DD/MM/YYYY)" , required = false ) @ FormParam ("end" ) String end ) {
1341+ @ ApiParam (value = "End Date (DD/MM/YYYY)" , required = false ) @ FormParam ("end" ) String end ,
1342+ @ ApiParam (value = "Include base64-encoded images (default false). When false, returns links to Faction images; when true, converts images to base64 data URLs." , required = false ) @ QueryParam ("includeBase64Images" ) Boolean includeBase64Images ) {
13271343 EntityManager em = HibHelper .getInstance ().getEMF ().createEntityManager ();
13281344 List <AssessmentDTO > dtos = new ArrayList <>();
13291345 try {
@@ -1345,7 +1361,9 @@ public Response getCompletedAssessments(
13451361 List <Assessment > completed = AssessmentQueries .getAllCompletedAssessmentsByDateRange (em , u , startDate ,
13461362 endDate );
13471363 for (Assessment a : completed ) {
1348- AssessmentQueries .updateImages (a );
1364+ if (Boolean .TRUE .equals (includeBase64Images )) {
1365+ AssessmentQueries .updateImages (a );
1366+ }
13491367 AssessmentDTO dto = AssessmentDTO .fromEntity (a );
13501368
13511369 // Add custom fields if any
@@ -1384,7 +1402,8 @@ public Response getCompletedAssessments(
13841402 public Response getCondensedCompletedAssessments (
13851403 @ ApiParam (value = "Authentication Header" , required = true ) @ HeaderParam ("FACTION-API-KEY" ) String apiKey ,
13861404 @ ApiParam (value = "Start Date (DD/MM/YYYY)" , required = true ) @ QueryParam ("start" ) String start ,
1387- @ ApiParam (value = "End Date (DD/MM/YYYY)" , required = false ) @ QueryParam ("end" ) String end ) {
1405+ @ ApiParam (value = "End Date (DD/MM/YYYY)" , required = false ) @ QueryParam ("end" ) String end ,
1406+ @ ApiParam (value = "Include base64-encoded images (default false). When false, returns links to Faction images; when true, converts images to base64 data URLs." , required = false ) @ QueryParam ("includeBase64Images" ) Boolean includeBase64Images ) {
13881407 EntityManager em = HibHelper .getInstance ().getEMF ().createEntityManager ();
13891408 List <AssessmentCondensedDTO > dtos = new ArrayList <>();
13901409 try {
@@ -1406,7 +1425,9 @@ public Response getCondensedCompletedAssessments(
14061425 List <Assessment > completed = AssessmentQueries .getAllCompletedAssessmentsByDateRange (em , u , startDate ,
14071426 endDate );
14081427 for (Assessment a : completed ) {
1409- AssessmentQueries .updateImages (a );
1428+ if (Boolean .TRUE .equals (includeBase64Images )) {
1429+ AssessmentQueries .updateImages (a );
1430+ }
14101431 AssessmentCondensedDTO dto = AssessmentCondensedDTO .fromEntityWithVulns (a );
14111432 dtos .add (dto );
14121433 }
0 commit comments