Skip to content

Commit 3197b6a

Browse files
committed
delete endpoint
1 parent 5840b5a commit 3197b6a

File tree

2 files changed

+24
-30
lines changed

2 files changed

+24
-30
lines changed

src/cls/ZPM/Package.cls

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,14 @@ ClassMethod DeletePackageVersion(pkg As %String, version As %String) As %Status
264264
Set package = ##class(ZPM.Package).NameVersionOpen(pkg, version, , .tSC)
265265
Return:$$$ISERR(tSC) tSC
266266
Set package.deleted = 1
267-
Return package.%Save()
267+
Set tSC = package.%Save()
268+
Return:$$$ISERR(tSC) tSC
269+
Set count = 0
270+
&sql(SELECT count(1) INTO :count FROM ZPM.Package WHERE name = :pkg AND (deleted IS NULL OR deleted != 1))
271+
If (count = 0) {
272+
Return ..DeletePackage(pkg)
273+
}
274+
Return $$$OK
268275
}
269276

270277
ClassMethod DeletePackage(pkg As %String) As %Status

src/cls/ZPM/Registry.cls

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,8 @@ XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
3434
<Route Url="/packages/:package/:version/:platformVersion/?" Method="GET" Call="Package" Cors="true" />
3535
<!-- Publish Package -->
3636
<Route Url="/packages" Method="POST" Call="PublishPackage" Cors="true" />
37-
<!-- Unpublish Package Version -->
38-
<Route Url="/packages/:package/:version" Method="Delete" Call="UnPublishPackageVersion" Cors="true" />
3937
<!-- Unpublish Package -->
40-
<Route Url="/packages/:package" Method="Delete" Call="UnPublishPackage" Cors="true" />
38+
<Route Url="/packages/:package/:version" Method="Delete" Call="UnPublishPackageVersion" Cors="true" />
4139

4240
<!-- Package Archive -->
4341
<Route Url="/download/:package/:platformVersion/:file" Method="GET" Call="GetArchive" Cors="true" />
@@ -171,24 +169,6 @@ ClassMethod PackageInstaller(pkg As %String = "", version As %String = "") As %S
171169
Return ..ReportHttpStatusCode(..#HTTP404NOTFOUND)
172170
}
173171

174-
ClassMethod UnPublishPackage(pkg As %String = "") As %Status
175-
{
176-
Set tSC = $$$OK
177-
Set tSC = ##class(ZPM.Owner).IsAuth()
178-
If ($$$ISERR(tSC)) {
179-
Return ..ReportHttpStatusCode(..#HTTP401UNAUTHORIZED, tSC)
180-
}
181-
Set pkg = $$$lcase(pkg)
182-
If ('##class(ZPM.Package).NameExists(pkg)) {
183-
Return ..ReportHttpStatusCode(..#HTTP404NOTFOUND)
184-
}
185-
Set tSC = ##class(ZPM.Owner).IsOwner(pkg)
186-
If ($$$ISERR(tSC)) {
187-
Return ..ReportHttpStatusCode(..#HTTP403FORBIDDEN, tSC)
188-
}
189-
Return ##class(ZPM.Package).DeletePackage(pkg)
190-
}
191-
192172
/// Unpublish (delete) directly published package version
193173
ClassMethod UnPublishPackageVersion(pkg As %String = "", version As %String = "") As %Status
194174
{
@@ -198,19 +178,26 @@ ClassMethod UnPublishPackageVersion(pkg As %String = "", version As %String = ""
198178
Return ..ReportHttpStatusCode(..#HTTP401UNAUTHORIZED, tSC)
199179
}
200180
Set pkg = $$$lcase(pkg)
201-
Set pPackage = ##class(ZPM.Package).NameVersionOpen(pkg, version)
202-
If ('$IsObject(pPackage)) {
203-
Return ..ReportHttpStatusCode(..#HTTP404NOTFOUND)
204-
}
205181
Set tSC = ##class(ZPM.Owner).IsOwner(pkg)
206182
If ($$$ISERR(tSC)) {
207183
Return ..ReportHttpStatusCode(..#HTTP403FORBIDDEN, tSC)
208184
}
209-
If (pPackage.UpLink'="") {
210-
// only directly published package could be deleted
211-
Return ..ReportHttpStatusCode(..#HTTP400BADREQUEST)
185+
If (version = "all") {
186+
If ('##class(ZPM.Package).NameExists(pkg)) {
187+
Return ..ReportHttpStatusCode(..#HTTP404NOTFOUND)
188+
}
189+
Return ##class(ZPM.Package).DeletePackage(pkg)
190+
} Else {
191+
Set pPackage = ##class(ZPM.Package).NameVersionOpen(pkg, version)
192+
If ('$IsObject(pPackage)) {
193+
Return ..ReportHttpStatusCode(..#HTTP404NOTFOUND)
194+
}
195+
If (pPackage.UpLink'="") {
196+
// only directly published package could be deleted
197+
Return ..ReportHttpStatusCode(..#HTTP400BADREQUEST)
198+
}
199+
Return ##class(ZPM.Package).DeletePackageVersion(pkg, version)
212200
}
213-
Return ##class(ZPM.Package).DeletePackageVersion(pkg, version)
214201
}
215202

216203
ClassMethod PublishPackage() As %Status

0 commit comments

Comments
 (0)