@@ -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
193173ClassMethod 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
216203ClassMethod PublishPackage () As %Status
0 commit comments