mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-04 05:10:40 +00:00
Use global async flag as fallback on per-request flag
This way, if no pre-request flag is specified, the globally configured default is used.
This commit is contained in:
+13
-5
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/aptly-dev/aptly/aptly"
|
||||
@@ -111,17 +112,24 @@ func runTaskInBackground(name string, resources []string, proc task.Process) (ta
|
||||
})
|
||||
}
|
||||
|
||||
func truthy(value string) bool {
|
||||
switch strings.ToLower(value) {
|
||||
case "y", "yes", "t", "true":
|
||||
return true
|
||||
func truthy(value interface{}) bool {
|
||||
switch value.(type) {
|
||||
case string:
|
||||
switch strings.ToLower(value.(string)) {
|
||||
case "y", "yes", "t", "true", "1":
|
||||
return true
|
||||
}
|
||||
case int:
|
||||
return value.(int) == 1
|
||||
case bool:
|
||||
return value.(bool)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func maybeRunTaskInBackground(c *gin.Context, name string, resources []string, proc task.Process) {
|
||||
// Run this task in background if configured globally or per-request
|
||||
background := context.Config().AsyncAPI || truthy(c.Query("_async"))
|
||||
background := truthy(c.DefaultQuery("_async", strconv.FormatBool(context.Config().AsyncAPI)))
|
||||
if background {
|
||||
log.Println("Executing task asynchronously")
|
||||
task, conflictErr := runTaskInBackground(name, resources, proc)
|
||||
|
||||
@@ -91,3 +91,21 @@ func (s *ApiSuite) TestGetVersion(c *C) {
|
||||
c.Check(response.Code, Equals, 200)
|
||||
c.Check(response.Body.String(), Matches, ".*Version.*")
|
||||
}
|
||||
|
||||
func (s *ApiSuite) TestTruthy(c *C) {
|
||||
c.Check(truthy("y"), Equals, true)
|
||||
c.Check(truthy("yes"), Equals, true)
|
||||
c.Check(truthy("t"), Equals, true)
|
||||
c.Check(truthy("true"), Equals, true)
|
||||
c.Check(truthy("1"), Equals, true)
|
||||
c.Check(truthy(true), Equals, true)
|
||||
c.Check(truthy(1), Equals, true)
|
||||
|
||||
c.Check(truthy("no"), Equals, false)
|
||||
c.Check(truthy("foobar"), Equals, false)
|
||||
c.Check(truthy(0), Equals, false)
|
||||
c.Check(truthy(-1), Equals, false)
|
||||
c.Check(truthy(false), Equals, false)
|
||||
c.Check(truthy(nil), Equals, false)
|
||||
c.Check(truthy(gin.H{}), Equals, false)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user