Skip to content
Open
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
1b2cf26
[CITE-229] Got the document list from Giles
PradnyaC11 Jan 2, 2025
76140c3
[CITE-229] Added getUploadId method to get upload Id from process ID
PradnyaC11 Jan 6, 2025
84ec63b
[CITE-229] Got upload Id stored while checking the progress of upload
PradnyaC11 Jan 7, 2025
9600f83
[CITE-229] Added upload Id to CheckAccessController
PradnyaC11 Jan 8, 2025
3275979
[CITE-229] Resolved deserialization error
PradnyaC11 Jan 16, 2025
2d6877e
[CITE-229] Cleaned up the code
PradnyaC11 Jan 17, 2025
d3a3185
[CITE-229] Cleaned up the code
PradnyaC11 Jan 21, 2025
f4ac3bf
Merge branch 'develop' into bug/CITE-229
PradnyaC11 Jan 21, 2025
d4d9f73
[CITE-229] Cleaned up code
PradnyaC11 Jan 21, 2025
776aa30
[CITE-229] Resolved code factor issues
PradnyaC11 Jan 21, 2025
34fe06f
[CITE-229] Resolved code factor issues
PradnyaC11 Jan 21, 2025
5580145
[CITE-229] Addressed PR comments
PradnyaC11 May 1, 2025
fbec497
[CITE-229] Addressed PR comments
PradnyaC11 May 6, 2025
c07a2a2
Merge branch 'develop' into bug/CITE-229
rajvi-patel-22 Jun 27, 2025
b586c9d
[CITE-229] Debug develop merge and remove imports
rajvi-patel-22 Jul 1, 2025
c48ce9e
[CITE-229] Add upload ID capture for Giles upload access checking
rajvi-patel-22 Jul 2, 2025
8fd9c4a
[CITE-229] Debug getFileStatus method
rajvi-patel-22 Jul 3, 2025
2b6798b
[CITE-229] Implement findByGilesUploadId to resolve compilation error
rajvi-patel-22 Jul 11, 2025
6fd518e
[CITE-229] Code cleanup
rajvi-patel-22 Jul 16, 2025
9a18341
[CITE-229] Remove new line
rajvi-patel-22 Jul 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -31,9 +31,12 @@ public class CheckAccessController extends V1Controller {
@Autowired
private IGroupManager groupManager;

@RequestMapping(value = { "/files/giles/{documentId}/access/check", "/files/giles/progress/{progressId}/access/check" }, produces = {
MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<String> checkAccess(@PathVariable(value="documentId", required = false) String documentId, @PathVariable(value="progressId", required = false) String progressId, @RequestParam("username") String username, Principal principal) {
@RequestMapping(value = { "/files/giles/{documentId}/access/check", "/files/giles/progress/{progressId}/access/check",
"/files/giles/upload/{uploadId}/access/check"}, produces = { MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<String> checkAccess(@PathVariable(value="documentId", required = false) String documentId,
@PathVariable(value="progressId", required = false) String progressId,
@PathVariable(value="uploadId", required = false) String uploadId,
@RequestParam("username") String username, Principal principal) {

List<String> authorities = ((OAuth2Authentication)principal).getAuthorities().stream().map(a -> a.getAuthority()).collect(Collectors.toList());
if (!authorities.contains(Role.TRUSTED_CLIENT.toString())) {
@@ -49,6 +52,8 @@ public ResponseEntity<String> checkAccess(@PathVariable(value="documentId", requ
citations = citationStore.findByGilesDocumentId(documentId);
} else if (progressId != null) {
citations = citationStore.findByGilesProgressId(progressId);
} else if (uploadId != null) {
citations = citationStore.findByGilesUploadId(uploadId);
} else {
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
Original file line number Diff line number Diff line change
@@ -40,4 +40,5 @@ public interface ICitationStore {

List<ICitation> findByGilesProgressId(String progressId);

List<ICitation> findByGilesUploadId(String uploadId);
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package edu.asu.diging.citesphere.core.service.giles.impl;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class GilesCheckUploadResponse {

private String msg;
private String uploadUrl;
private String uploadId;
private String msgCode;

public String getMsg() {
@@ -11,6 +16,18 @@ public String getMsg() {
public void setMsg(String msg) {
this.msg = msg;
}
public String getUploadUrl() {
return uploadUrl;
}
public void setUploadUrl(String uploadUrl) {
this.uploadUrl = uploadUrl;
}
public String getUploadId() {
return uploadId;
}
public void setUploadId(String uploadId) {
this.uploadId = uploadId;
}
public String getMsgCode() {
return msgCode;
}
Original file line number Diff line number Diff line change
@@ -220,6 +220,21 @@ private Set<IGilesUpload> getFileStatus(IGilesUpload upload, IUser user) {
// Giles is still procoessing
logger.debug("Upload " + upload.getProgressId()
+ " still being processed.");

// Try to parse as GilesCheckUploadResponse to extract upload ID if available
ObjectMapper mapper = new ObjectMapper();
String jsonBody = response.getBody();
try {
GilesCheckUploadResponse checkResponse = mapper.readValue(jsonBody, GilesCheckUploadResponse.class);
if (checkResponse.getUploadId() != null && !checkResponse.getUploadId().trim().isEmpty()) {
if (upload.getUploadId() == null || upload.getUploadId().trim().isEmpty()) {
upload.setUploadId(checkResponse.getUploadId());
}
}
} catch (IOException e) {
logger.debug("Could not parse in-progress response as GilesCheckUploadResponse, continuing without upload ID extraction.", e);
}

checkedUploads.add(upload);
} else if (response.getStatusCode() == HttpStatus.OK) {
logger.debug("Upload " + upload.getProgressId() + " is done.");
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package edu.asu.diging.citesphere.core.service.giles.impl;

import java.util.List;

class UploadResponse {
private String id;
private String checkUrl;
private List<String> documentIds;
private String documentIds;

public String getId() {
return id;
@@ -23,11 +21,11 @@ public void setCheckUrl(String checkUrl) {
this.checkUrl = checkUrl;
}

public List<String> getDocumentIds() {
public String getDocumentIds() {
return documentIds;
}

public void setDocumentIds(List<String> documentIds) {
public void setDocumentIds(String documentIds) {
this.documentIds = documentIds;
}
}
Original file line number Diff line number Diff line change
@@ -2,6 +2,8 @@

import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -11,6 +13,7 @@
import edu.asu.diging.citesphere.core.sync.ExtraData;
import edu.asu.diging.citesphere.data.bib.CitationRepository;
import edu.asu.diging.citesphere.model.bib.ICitation;
import edu.asu.diging.citesphere.model.bib.IGilesUpload;
import edu.asu.diging.citesphere.model.bib.ItemType;
import edu.asu.diging.citesphere.model.bib.impl.Citation;

@@ -83,4 +86,15 @@ public List<ICitation> findByGilesDocumentId(String documentId) {
public List<ICitation> findByGilesProgressId(String progressId) {
return citationRepository.findByGilesUploadsProgressId(progressId);
}

@Override
public List<ICitation> findByGilesUploadId(String uploadId) {
Iterable<Citation> allCitations = citationRepository.findAll();
return StreamSupport.stream(allCitations.spliterator(), false)
.filter(citation -> citation.getGilesUploads() != null &&
citation.getGilesUploads().stream()
.anyMatch(upload -> uploadId.equals(upload.getUploadId())))
.map(citation -> (ICitation) citation)
.collect(Collectors.toList());
}
}