@@ -112,9 +112,15 @@ ClassMethod ServerURL() As %String
112
112
Set host = host _" :" _port
113
113
}
114
114
}
115
- #; If not behind the proxy where it have to be hidden redirect from / to /registry
116
- if %request .GetCgiEnv (" HTTP_X_FORWARDED_HOST" )=" " {
117
- Set host = host _ $p (%request .Application , " /" ,1 ,*-1 )
115
+ If (%request .GetCgiEnv (" HTTP_X_ORIGINAL_URI" )'=" " ) {
116
+ Set path = $REPLACE (%request .URL , %request .Application ," " ,1 ,1 )
117
+ Set urlpart = $EXTRACT (%request .GetCgiEnv (" HTTP_X_ORIGINAL_URI" ),1 ,$FIND (%request .GetCgiEnv (" HTTP_X_ORIGINAL_URI" ), path ) - $Length (path )-1 )
118
+ Set host = host _ $p (urlpart , " /" ,1 ,*-1 )
119
+ } Else {
120
+ #; If not behind the proxy where it have to be hidden redirect from / to /registry
121
+ If %request .GetCgiEnv (" HTTP_X_FORWARDED_HOST" )=" " {
122
+ Set host = host _ $p (%request .Application , " /" ,1 ,*-1 )
123
+ }
118
124
}
119
125
Return host
120
126
}
@@ -507,7 +513,7 @@ ClassMethod LoadFromGitHub(Url = "")
507
513
}
508
514
509
515
/// returns latest versions of packages
510
- ClassMethod GetLatest (searchTerms As %DynamicArray = " " , Output pStatus As %Status ) As %DynamicArray
516
+ ClassMethod GetLatest (searchTerms As %DynamicArray = " " , manifest As %String = " " , allVersions As %String = " " , Output pStatus As %Status ) As %DynamicArray
511
517
{
512
518
Set pStatus = 1
513
519
If ( '($CLASSNAME (searchTerms )=" %Library.DynamicArray" ) || (searchTerms .%Size ()=0 ) ) {
@@ -530,8 +536,9 @@ ClassMethod GetLatest(searchTerms As %DynamicArray = "", Output pStatus As %Stat
530
536
}
531
537
Set searchCondition = searchCondition _ " ) "
532
538
}
533
- set sql = " SELECT name, repository, description, version " _
539
+ set sql = " SELECT p1. name, p1. repository, p1. description, p1. version, ul.Host " _
534
540
" FROM ZPM.Package p1 " _
541
+ " LEFT JOIN ZPM.UpLink ul ON ul.ID = p1.UpLink " _
535
542
" WHERE " _searchCondition _" " _
536
543
" AND p1.version = ( SELECT TOP 1 version FROM ZPM.Package p2 WHERE p1.name=p2.name ORDER BY versionMajor DESC, versionMinor DESC, versionPatch DESC, versionPrerelease DESC, versionBuildmetadata DESC ) "
537
544
@@ -552,8 +559,31 @@ ClassMethod GetLatest(searchTerms As %DynamicArray = "", Output pStatus As %Stat
552
559
" name" : (tResult .name ),
553
560
" description" : (tResult .description ),
554
561
" repository" : (tResult .repository ),
562
+ " origin" : (tResult .Host ),
555
563
" versions" : [(tResult .version )]
556
564
}
565
+
566
+ If (manifest = " 1" ) {
567
+ Set tPkgInfo .manifest = " "
568
+ Set package = ##class (ZPM.Package ).%OpenId (tResult .name _" ||" _tResult .version )
569
+ If ($IsObject (package .manifest )) {
570
+ while ('package .manifest .AtEnd ) {
571
+ Set tPkgInfo .manifest = tPkgInfo .manifest _ package .manifest .Read (100 )
572
+ }
573
+ }
574
+ }
575
+
576
+ If (allVersions = " 1" ) {
577
+ Set tPkgInfo .allVersions = []
578
+ Set sql2 = " SELECT version " _
579
+ " FROM ZPM.Package WHERE name = ? " _
580
+ " ORDER BY versionMajor DESC, versionMinor DESC, versionPatch DESC, versionPrerelease DESC, versionBuildmetadata DESC"
581
+ Set versionsResult = ##class (%SQL.Statement ).%ExecDirect (, sql2 , tResult .name )
582
+ While versionsResult .%Next () {
583
+ Do tPkgInfo .allVersions .%Push (versionsResult .version )
584
+ }
585
+ }
586
+
557
587
do tList .%Push (tPkgInfo )
558
588
}
559
589
Return tList
0 commit comments