@@ -22,12 +22,16 @@ import com.reposilite.maven.api.DeleteRequest
22
22
import com.reposilite.maven.api.DeployRequest
23
23
import com.reposilite.maven.api.LookupRequest
24
24
import com.reposilite.shared.extensions.resultAttachment
25
+ import com.reposilite.shared.extensions.uri
26
+ import com.reposilite.storage.api.Location
27
+ import com.reposilite.token.AccessTokenIdentifier
25
28
import com.reposilite.web.api.ReposiliteRoute
26
29
import io.javalin.community.routing.Route.DELETE
27
30
import io.javalin.community.routing.Route.GET
28
31
import io.javalin.community.routing.Route.HEAD
29
32
import io.javalin.community.routing.Route.POST
30
33
import io.javalin.community.routing.Route.PUT
34
+ import io.javalin.http.Context
31
35
import io.javalin.openapi.ContentType.FORM_DATA_MULTIPART
32
36
import io.javalin.openapi.HttpMethod
33
37
import io.javalin.openapi.OpenApi
@@ -61,26 +65,30 @@ internal class MavenEndpoints(
61
65
private val findFile = ReposiliteRoute <Unit >(" /{repository}/<gav>" , HEAD , GET ) {
62
66
accessed {
63
67
requireGav { gav ->
64
- LookupRequest (this ?.identifier, requireParameter(" repository" ), gav)
65
- .let { request -> mavenFacade.findFile(request) }
66
- .peek {
67
- ctx.resultAttachment(
68
- name = it.document.name,
69
- contentType = it.document.contentType,
70
- contentLength = it.document.contentLength,
71
- compressionStrategy = compressionStrategy,
72
- cache = it.cachable,
73
- data = it.content
74
- )
75
- }
76
- .onError {
77
- ctx.status(it.status).html(frontendFacade.createNotFoundPage(uri, it.message))
78
- mavenFacade.logger.debug(" FIND | Could not find file due to $it " )
79
- }
68
+ findFile(ctx, this ?.identifier, requireParameter(" repository" ), gav)
80
69
}
81
70
}
82
71
}
83
72
73
+ fun findFile (ctx : Context , identifier : AccessTokenIdentifier ? , repository : String , gav : Location ) {
74
+ LookupRequest (identifier, repository, gav)
75
+ .let { request -> mavenFacade.findFile(request) }
76
+ .peek {
77
+ ctx.resultAttachment(
78
+ name = it.document.name,
79
+ contentType = it.document.contentType,
80
+ contentLength = it.document.contentLength,
81
+ compressionStrategy = compressionStrategy,
82
+ cache = it.cachable,
83
+ data = it.content
84
+ )
85
+ }
86
+ .onError {
87
+ ctx.status(it.status).html(frontendFacade.createNotFoundPage(ctx.uri(), it.message))
88
+ mavenFacade.logger.debug(" FIND | Could not find file due to $it " )
89
+ }
90
+ }
91
+
84
92
@OpenApi(
85
93
tags = [ " Maven" ],
86
94
path = " /{repository}/{gav}" ,
0 commit comments