Skip to content

Commit

Permalink
[api] Refactor Backend::Api::Package
Browse files Browse the repository at this point in the history
...to use Backend::Api::Connection calls
  • Loading branch information
Moises Deniz Aleman committed Sep 29, 2017
1 parent 11bc27c commit 5c40fe4
Showing 1 changed file with 37 additions and 45 deletions.
82 changes: 37 additions & 45 deletions src/api/lib/backend/api/sources/package.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,104 +3,96 @@ module Backend
module Api
module Sources
module Package
# Returns the attribute content
extend Backend::ConnectionHelper

# Returns the attributes content
def self.attributes(project, package, revision)
path = "/source/#{CGI.escape(project)}/#{CGI.escape(package || '_project')}/_attribute?meta=1"
path += "&rev=#{CGI.escape(revision)}" if revision
Backend::Connection.get(path).body
params = { meta: 1 }
params[:rev] = revision if revision
get(["/source/:project/:package/_attribute", project, package || '_project'], params: params)
end

# Writes the xml for attributes
def self.write_attributes(project, package, login, xml, comment)
path = "/source/#{CGI.escape(project)}/#{CGI.escape(package || '_project')}/_attribute?meta=1&user=#{CGI.escape(login)}"
path += "&comment=#{CGI.escape(comment)}" if comment
Backend::Connection.put(path, xml)
# Writes the content in xml for attributes
def self.write_attributes(project, package, user, content, comment)
params = { meta: 1, user: user }
params[:comment] = comment if comment
put(["/source/:project/:package/_attribute", project, package || '_project'],
data: content, params: params)
end

# Returns a file list of the sources for a package
def self.files(project, package, options = {})
path = "/source/#{CGI.escape(project)}/#{CGI.escape(package)}"
path += "?#{options.to_query}" if options.present?
Backend::Connection.get(path).body.force_encoding("UTF-8")
get(["/source/:project/:package", project, package], params: options)
end

# Returns the revisions (mrev) list for a package
def self.revisions(project, package)
Backend::Connection.get("/source/#{CGI.escape(project)}/#{CGI.escape(package)}/_history?deleted=1&meta=1").body
get(["/source/:project/:package/_history", project, package], params: { meta: 1, deleted: 1 })
end

# Returns the meta file from a package
def self.meta(project, package)
Backend::Connection.get("/source/#{CGI.escape(project)}/#{CGI.escape(package)}/_meta").body.force_encoding('UTF-8')
get(["/source/:project/:package/_meta", project, package])
end

# It triggers all the services of a package (from src/api/app/controllers/webui/package_controller.rb)
# It triggers all the services of a package
def self.trigger_services(project, package, user)
Backend::Connection.post("/source/#{CGI.escape(project)}/#{CGI.escape(package)}?cmd=runservice&user=#{CGI.escape(user)}")
post(["/source/:project/:package", project, package], params: { cmd: :runservice, user: user })
end

# Writes the patchinfo
def self.write_patchinfo(project, package, login, xml, comment = nil)
path = "/source/#{CGI.escape(project)}/#{CGI.escape(package)}/_patchinfo?user=#{CGI.escape(login)}"
path += "&comment=#{CGI.escape(comment)}" if comment
Backend::Connection.put(path, xml)
def self.write_patchinfo(project, package, user, content, comment = nil)
params = { user: user }
params[:comment] = comment if comment
put(["/source/:project/:package/_patchinfo", project, package], data: content, params: params)
end

# Runs the command waitservice for that project/package
def self.wait_service(project, package)
Backend::Connection.post("/source/#{CGI.escape(project)}/#{CGI.escape(package)}?cmd=waitservice")
post(["/source/:project/:package", project, package], params: { cmd: :waitservice })
end

# Runs the command mergeservice for that project/package
def self.merge_service(project, package, login)
Backend::Connection.post("/source/#{CGI.escape(project)}/#{CGI.escape(package)}?cmd=mergeservice&user=#{CGI.escape(login)}")
def self.merge_service(project, package, user)
post(["/source/:project/:package", project, package], params: { cmd: :mergeservice, user: user })
end

# Runs the command runservice for that project/package
def self.run_service(project, package, login)
Backend::Connection.post("/source/#{CGI.escape(project)}/#{CGI.escape(package)}?cmd=runservice&user=#{CGI.escape(login)}")
def self.run_service(project, package, user)
post(["/source/:project/:package", project, package], params: { cmd: :runservice, user: user })
end

# Copy a package into another project
def self.copy(target_project, target_package, source_project, source_package, login, options = {})
path = "/source/#{CGI.escape(target_project)}/#{CGI.escape(target_package)}"
query_hash = { cmd: :copy, oproject: source_project, opackage: source_package, user: login }
query_hash.merge!(options.slice(:keeplink, :expand, :comment))
path += "?#{query_hash.to_query}"
Backend::Connection.post(path)
def self.copy(target_project, target_package, source_project, source_package, user, options = {})
post(["/source/:project/:package", target_project, target_package],
defaults: { cmd: :copy, oproject: source_project, opackage: source_package, user: user },
params: options, accepted: [:keeplink, :expand, :comment])
end

# Writes the link information of a package
def self.write_link(project, package, login, xml)
Backend::Connection.put("/source/#{CGI.escape(project)}/#{CGI.escape(package)}/_link?user=#{CGI.escape(login)}", xml)
def self.write_link(project, package, user, content)
put(["/source/:project/:package/_link", project, package], data: content, params: { user: user })
end

# Returns the source diff
def self.source_diff(project, package, options = {})
path = "/source/#{CGI.escape(project)}/#{CGI.escape(package)}"
query_hash = { cmd: :diff, view: :xml, withissues: 1 }
query_hash.merge!(options.slice(:rev, :orev, :opackage, :oproject, :linkrev, :olinkrev, :expand))
path += "?#{query_hash.to_query}"
Backend::Connection.post(path).body.force_encoding('UTF-8')
post(["/source/:project/:package", project, package], defaults: { cmd: :diff, view: :xml, withissues: 1 },
params: options, accepted: [:rev, :orev, :opackage, :oproject, :linkrev, :olinkrev, :expand])
end

# Runs the command rebuild for that project/package
def self.rebuild(project, package, options = {})
path = "/build/#{CGI.escape(project)}"
query_hash = { cmd: :rebuild, package: package }
query_hash.merge!(options.slice(:repository, :arch))
path += "?#{query_hash.to_query}"
Backend::Connection.post(path)
post(["/build/:project", project], defaults: { cmd: :rebuild, package: package }, params: options, accepted: [:repository, :arch])
end

# Returns the content of the source file
def self.file(project, package, filename)
Backend::Connection.get("/source/#{CGI.escape(project)}/#{CGI.escape(package)}/#{CGI.escape(filename)}").body.force_encoding('UTF-8')
get(["/source/:project/:package/:filename", project, package, filename])
end

# Writes the content of the source file
def self.write_file(project, package, filename, content = '')
Backend::Connection.put("/source/#{CGI.escape(project)}/#{CGI.escape(package)}/#{CGI.escape(filename)}", content)
put(["/source/:project/:package/:filename", project, package, filename], data: content)
end
end
end
Expand Down

0 comments on commit 5c40fe4

Please sign in to comment.