58 lines
2.5 KiB
Groovy
58 lines
2.5 KiB
Groovy
import com.dvelop.d3.server.core.D3
|
|
import groovy.json.JsonSlurper
|
|
import javax.net.ssl.HttpsURLConnection
|
|
|
|
/**
|
|
* Beispiel um Dokumente anhand einer Kategorie und einer Eigenschaft zu suchen und mit dem JSON arbeiten zu können
|
|
*/
|
|
void searchDocuments(D3 d3, String sessionId, String searchCategory, String searchPropertyKey, String searchPropertyValue) {
|
|
String searchFor = "?sourceid=/dms/r/$REPO_ID/source&sourcecategories=[\"$searchCategory\"]&sourceproperties={\"$searchPropertyKey\":[\"$searchPropertyValue\"]}"
|
|
String baseRequest = "$BASE_URI/dms/r/$REPO_ID/srm$searchFor"
|
|
|
|
HttpsURLConnection request = new URL(baseRequest).openConnection() as HttpsURLConnection
|
|
request.requestMethod = "GET"
|
|
request.setRequestProperty("Origin", BASE_URI)
|
|
request.setRequestProperty("Accept", "application/json")
|
|
request.setRequestProperty("Authorization", "Bearer $sessionId")
|
|
|
|
if (request.responseCode == 200) {
|
|
def json = request.inputStream.withCloseable { stream ->
|
|
new JsonSlurper().parse(stream as InputStream)
|
|
}
|
|
|
|
//Alle gefundenen Dokumente durchgehen
|
|
json.items?.each {
|
|
//Dateinamen mit Endung jedes Dokuments holen
|
|
String fileName = it.sourceProperties.find { property -> property.key == "property_filename" }.value
|
|
File file = new File(exportDirectory, fileName)
|
|
|
|
//Download starten
|
|
downloadDocument(d3, sessionId, it._links.mainblobcontent.href, file.getPath())
|
|
}
|
|
|
|
} else {
|
|
d3.log.error("Fehler bei der Suche nach Dokumenten $request.responseCode: $request.responseMessage")
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Beispiel um ein Dokument herunter zu laden
|
|
*/
|
|
void downloadDocument(D3 d3, String sessionId, String downloadUrl, String filePath) {
|
|
String baseRequest = BASE_URI + downloadUrl
|
|
|
|
HttpsURLConnection request = new URL(baseRequest).openConnection() as HttpsURLConnection
|
|
request.requestMethod = "GET"
|
|
request.setRequestProperty("Origin", BASE_URI)
|
|
request.setRequestProperty("Accept", "application/json")
|
|
request.setRequestProperty("Authorization", "Bearer $sessionId")
|
|
|
|
if (request.responseCode == 200) {
|
|
d3.log.info("Starte Download von: " + downloadUrl)
|
|
request.inputStream.withCloseable { stream ->
|
|
new File(filePath) << stream.getBytes()
|
|
}
|
|
} else {
|
|
d3.log.error("Fehler beim Herunterladen von $baseRequest")
|
|
}
|
|
} |