Fix default setting (#740)

* push validate/defaults into datastore

we weren't setting a timestamp in route insert when we needed to create an app
there. that whole thing isn't atomic, but this fixes the timestamp issue.

closes #738

seems like we should do similar with the FireBeforeX stuff too.

* fix tests

* app name validation was buggy, an upper cased letter failed. now it doesn't.
uses unicode now.
* removes duplicate errors for datastore and models validation that were used
interchangably but weren't.
This commit is contained in:
Reed Allman
2018-02-05 11:54:09 -08:00
committed by GitHub
parent b49f332e01
commit 235cbc2d67
6 changed files with 37 additions and 55 deletions

View File

@@ -2,6 +2,7 @@ package models
import (
"time"
"unicode"
"github.com/go-openapi/strfmt"
)
@@ -34,7 +35,7 @@ func (a *App) Validate() error {
return ErrAppsTooLongName
}
for _, c := range a.Name {
if (c < '0' || '9' < c) && (c < 'A' || 'Z' > c) && (c < 'a' || 'z' < c) && c != '_' && c != '-' {
if !(unicode.IsLetter(c) || unicode.IsNumber(c) || c == '_' || c == '-') {
return ErrAppsInvalidName
}
}

View File

@@ -56,14 +56,6 @@ var (
code: http.StatusConflict,
error: errors.New("Cannot remove apps with routes"),
}
ErrDatastoreEmptyAppName = err{
code: http.StatusBadRequest,
error: errors.New("Missing app name"),
}
ErrDatastoreEmptyRoutePath = err{
code: http.StatusBadRequest,
error: errors.New("Missing route name"),
}
ErrDatastoreEmptyApp = err{
code: http.StatusBadRequest,
error: errors.New("Missing app"),