Implemented list project versions endpoint.
This commit is contained in:
@ -162,6 +162,26 @@ proc start*(cfg: StrawBossConfig): void =
|
||||
|
||||
resp(Http501, makeJsonResp(Http501), JSON)
|
||||
|
||||
get "/project/@projectName/versions":
|
||||
## Get a list of all versions that we have built
|
||||
|
||||
checkAuth(); if not authed: return true
|
||||
|
||||
# Make sure we know about that project
|
||||
var project: ProjectDef
|
||||
try: project = cfg.findProject(@"projectName")
|
||||
except: resp(Http404, makeJsonResp(Http404, getCurrentExceptionMsg()), JSON)
|
||||
|
||||
var versions: seq[string] = @[]
|
||||
for cfgFilePath in walkFiles(cfg.artifactsRepo & "/" & project.name & "/configuration.*.json"):
|
||||
let vstart = cfgFilePath.rfind("/configuration.") + 15
|
||||
versions.add(cfgFilePath[vstart..^6])
|
||||
|
||||
if versions.len == 0:
|
||||
resp(Http404, makeJsonResp(Http404, "I have not built any versions of " & project.name), JSON)
|
||||
|
||||
resp($(%(versions)), JSON)
|
||||
|
||||
get "/project/@projectName/@version?":
|
||||
## Get a detailed project record including step definitions (ProjectConfig).
|
||||
|
||||
@ -185,7 +205,7 @@ proc start*(cfg: StrawBossConfig): void =
|
||||
|
||||
# No version requested, use "latest"
|
||||
else:
|
||||
let confFilePaths = toSeq(walkFiles("configuration.*.json"))
|
||||
let confFilePaths = toSeq(walkFiles(cfg.artifactsRepo & "/" & project.name & "/configuration.*.json"))
|
||||
if confFilePaths.len == 0:
|
||||
resp(Http404, makeJsonResp(Http404, "I have not built any versions of " & project.name), JSON)
|
||||
let modTimes = confFilePaths.mapIt(it.getLastModificationTime)
|
||||
|
Reference in New Issue
Block a user