Skip to content

Commit 499db62

Browse files
committed
isowner in GetLatest packages
1 parent d3ec005 commit 499db62

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

src/cls/ZPM/Owner.cls

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,14 @@ ClassMethod IsOwner(packageName As %String) As %Status
2020
Return $$$OK
2121
}
2222

23+
ClassMethod getId() As %String
24+
{
25+
Return $Username
26+
}
27+
2328
ClassMethod SaveOwner(packageName, packageVersion) As %Status
2429
{
25-
Set owner = $Username
30+
Set owner = ..getId()
2631
Set package = ##class(ZPM.Package).NameVersionOpen(packageName, packageVersion)
2732
Set package.owner = owner
2833
Return package.%Save()

src/cls/ZPM/Package.cls

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -552,16 +552,18 @@ ClassMethod LoadFromGitHub(Url = "")
552552
}
553553

554554
/// returns latest versions of packages
555-
ClassMethod GetLatest(searchTerms As %DynamicArray = "", manifest As %String = "", allVersions As %String = "", Output pStatus As %Status) As %DynamicArray
555+
ClassMethod GetLatest(searchTerms As %DynamicArray = "", manifest As %String = "", allVersions As %String = "", owner As %String = "", Output pStatus As %Status) As %DynamicArray
556556
{
557557
Set pStatus = 1
558+
Set params = 1
559+
Set params(params) = owner
560+
558561
If ( '($ClassName(searchTerms)="%Library.DynamicArray" ) || (searchTerms.%Size()=0) ) {
559562
// empty query
560563
Set searchCondition = " ( 1=1 ) "
561564
} Else {
562565
Set searchCondition = " ( "
563566
Set iter = searchTerms.%GetIterator()
564-
Set params = 0
565567
While iter.%GetNext(.key , .value ) {
566568
If (key=0) {
567569
Set searchCondition = searchCondition _ " ((p1.name %MATCHES ?) OR (p1.description %MATCHES ?) OR (p1.keywords %MATCHES ?)) "
@@ -575,11 +577,12 @@ ClassMethod GetLatest(searchTerms As %DynamicArray = "", manifest As %String = "
575577
}
576578
Set searchCondition = searchCondition_ " ) "
577579
}
578-
Set sql = "SELECT p1.name, p1.repository, p1.description, p1.version, ul.Host "_
580+
581+
Set sql = "SELECT p1.name, p1.repository, p1.description, p1.version, ul.Host, IFNULL( (SELECT TOP 1 1 FROM ZPM.Package p3 WHERE p1.name=p3.name AND p3.owner = ? ORDER BY p3.versionMajor DESC, p3.versionMinor DESC, p3.versionPatch DESC, p3.versionPrerelease DESC, p3.versionBuildmetadata DESC ), 0, 1) as owner"_
579582
" FROM ZPM.Package p1 "_
580583
" LEFT JOIN ZPM.UpLink ul ON ul.ID = p1.UpLink " _
581584
" WHERE "_searchCondition_" "_
582-
" 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 ) "
585+
" AND p1.version = ( SELECT TOP 1 version FROM ZPM.Package p2 WHERE p1.name=p2.name ORDER BY p2.versionMajor DESC, p2.versionMinor DESC, p2.versionPatch DESC, p2.versionPrerelease DESC, p2.versionBuildmetadata DESC ) "
583586

584587
Set tStatement = ##class(%SQL.Statement).%New()
585588
Set tStatus = tStatement.%Prepare(sql)
@@ -599,7 +602,8 @@ ClassMethod GetLatest(searchTerms As %DynamicArray = "", manifest As %String = "
599602
"description": (tResult.description),
600603
"repository": (tResult.repository),
601604
"origin": (tResult.Host),
602-
"versions": [(tResult.version)]
605+
"versions": [(tResult.version)],
606+
"is_owner":(tResult.owner)
603607
}
604608

605609
If (manifest = "1") {

src/cls/ZPM/Registry.cls

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,8 @@ ClassMethod AllPackages() As %Status
310310

311311
Set manifest = %request.Get("manifest","")
312312
Set allVersions = %request.Get("allVersions","")
313-
Set tList = ##class(ZPM.Package).GetLatest(searchTerms, manifest, allVersions, .tSC)
313+
Set owner = ##class(ZPM.Owner).getId()
314+
Set tList = ##class(ZPM.Package).GetLatest(searchTerms, manifest, allVersions, owner, .tSC)
314315

315316
If ($$$ISERR(tSC)) {
316317
Return ..ReportHttpStatusCode(..#HTTP400BADREQUEST, tSC)

0 commit comments

Comments
 (0)