本文整理汇总了Golang中github.com/GeoNet/weft.BadRequest函数的典型用法代码示例。如果您正苦于以下问题:Golang BadRequest函数的具体用法?Golang BadRequest怎么用?Golang BadRequest使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了BadRequest函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getQuakesWfs
func getQuakesWfs(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
//1. check query parameters
if res := weft.CheckQuery(r, requiredParams, optionalParams); !res.Ok {
return res
}
v := r.URL.Query()
params, err := getQueryParams(v)
if err != nil {
return weft.BadRequest(err.Error())
}
if params.outputFormat == "JSON" {
return getQuakesGeoJson(r, h, b, params)
} else if params.outputFormat == "CSV" {
return getQuakesCsv(r, h, b, params)
} else if params.outputFormat == "GML2" {
return getQuakesGml2(r, h, b, params)
//text/xml; subtype=gml/3.2
} else if params.outputFormat == "TEXT/XML" && params.subType == "GML/3.2" {
return getQuakesGml3(r, h, b, params)
} else {
return weft.BadRequest("Invalid outputFormat")
}
return &weft.StatusOK
}
示例2: quakesWWWnz
func quakesWWWnz(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
path := r.URL.Path[quakesNZServiceLen:] // ..."3/100.json"
tokens := strings.Split(path, "/")
if len(tokens) != 2 {
return weft.BadRequest("Bad URL path.")
}
var mmi int
var err error
var count int
if mmi, err = strconv.Atoi(tokens[0]); err != nil {
return weft.BadRequest("Bad URL path. Invalid mmi.")
}
if count, err = strconv.Atoi(tokens[1][:len(tokens[1])-5]); err != nil { // len(".json")
return weft.BadRequest("Bad URL path. Invalid count.")
}
var d string
err = db.QueryRow(quakesNZWWWSQL, mmi, count).Scan(&d)
if err != nil {
return weft.ServiceUnavailableError(err)
}
b.WriteString(d)
h.Set("Content-Type", JSON)
return &weft.StatusOK
}
示例3: searchPageHandler
func searchPageHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
var p *searchPage
if res := weft.CheckQuery(r, []string{"tagQuery"}, []string{"page"}); !res.Ok {
return res
}
r.ParseForm()
tagQuery := r.FormValue("tagQuery")
// Javascript should handle empty query value
// Non existent value comes from unauthorized submit
if tagQuery == "" {
return weft.BadRequest("missing required query parameter: tagQuery")
}
if p, err = newSearchPage(mtrApiUrl); err != nil {
return weft.BadRequest("error creating searchPage object")
}
if err = p.populateTags(); err != nil {
return weft.InternalServerError(err)
}
if err = p.matchingMetrics(tagQuery); err != nil {
return weft.InternalServerError(err)
}
if err := tagSearchTemplate.ExecuteTemplate(b, "border", p); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
示例4: dataLatencyThresholdPut
func dataLatencyThresholdPut(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
v := r.URL.Query()
var err error
var lower, upper int
if lower, err = strconv.Atoi(v.Get("lower")); err != nil {
return weft.BadRequest("invalid lower")
}
if upper, err = strconv.Atoi(v.Get("upper")); err != nil {
return weft.BadRequest("invalid upper")
}
siteID := v.Get("siteID")
typeID := v.Get("typeID")
var result sql.Result
// TODO Change to upsert 9.5
// return if insert succeeds
if result, err = db.Exec(`INSERT INTO data.latency_threshold(sitePK, typePK, lower, upper)
SELECT sitePK, typePK, $3, $4
FROM data.site, data.type
WHERE siteID = $1
AND typeID = $2`,
siteID, typeID, lower, upper); err == nil {
var i int64
if i, err = result.RowsAffected(); err != nil {
return weft.InternalServerError(err)
}
if i == 1 {
return &weft.StatusOK
}
}
// return if update one row
if pqErr, ok := err.(*pq.Error); ok && pqErr.Code == errorUniqueViolation {
if result, err = db.Exec(`UPDATE data.latency_threshold SET lower=$3, upper=$4
WHERE sitePK = (SELECT sitePK FROM data.site WHERE siteID = $1)
AND typePK = (SELECT typePK FROM data.type WHERE typeID = $2)`,
siteID, typeID, lower, upper); err == nil {
var i int64
if i, err = result.RowsAffected(); err != nil {
return weft.InternalServerError(err)
}
if i == 1 {
return &weft.StatusOK
}
}
}
if err == nil {
err = fmt.Errorf("no rows affected, check your query.")
}
return weft.InternalServerError(err)
}
示例5: fieldDevicePut
func fieldDevicePut(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
v := r.URL.Query()
var err error
var latitude, longitude float64
if latitude, err = strconv.ParseFloat(v.Get("latitude"), 64); err != nil {
return weft.BadRequest("latitude invalid")
}
if longitude, err = strconv.ParseFloat(v.Get("longitude"), 64); err != nil {
return weft.BadRequest("longitude invalid")
}
var result sql.Result
// TODO - use upsert with PG 9.5?
// return if insert succeeds
if result, err = db.Exec(`INSERT INTO field.device(deviceID, modelPK, latitude, longitude)
SELECT $1, modelPK, $3, $4
FROM field.model
WHERE modelID = $2`,
v.Get("deviceID"), v.Get("modelID"), latitude, longitude); err == nil {
var i int64
if i, err = result.RowsAffected(); err != nil {
return weft.InternalServerError(err)
}
if i == 1 {
return &weft.StatusOK
}
}
// return if update one row
if pqErr, ok := err.(*pq.Error); ok && pqErr.Code == errorUniqueViolation {
if result, err = db.Exec(`UPDATE field.device
SET latitude = $2, longitude = $3
WHERE deviceID = $1`,
v.Get("deviceID"), latitude, longitude); err == nil {
var i int64
if i, err = result.RowsAffected(); err != nil {
return weft.InternalServerError(err)
}
if i == 1 {
return &weft.StatusOK
}
}
}
if err == nil {
err = fmt.Errorf("no rows affected, check your query.")
}
return weft.InternalServerError(err)
}
示例6: quakesRegionV1
func quakesRegionV1(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{"regionID", "regionIntensity", "number", "quality"}, []string{}); !res.Ok {
return res
}
var err error
if _, err = getRegionID(r); err != nil {
return weft.BadRequest(err.Error())
}
if _, err = getQuality(r); err != nil {
return weft.BadRequest(err.Error())
}
var regionIntensity string
if regionIntensity, err = getRegionIntensity(r); err != nil {
return weft.BadRequest(err.Error())
}
var n int
if n, err = getNumberQuakes(r); err != nil {
return weft.BadRequest(err.Error())
}
var d string
err = db.QueryRow(
`SELECT row_to_json(fc)
FROM ( SELECT 'FeatureCollection' as type, COALESCE(array_to_json(array_agg(f)), '[]') as features
FROM (SELECT 'Feature' as type,
ST_AsGeoJSON(q.geom)::json as geometry,
row_to_json((SELECT l FROM
(
SELECT
publicid AS "publicID",
to_char(time, 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"') as "time",
depth,
magnitude,
locality,
intensity,
intensity_newzealand as "regionIntensity",
quality
) as l
)) as properties FROM haz.quakeapi as q where mmid_newzealand >= $1
ORDER BY time DESC limit $2 ) as f ) as fc`, int(msg.IntensityMMI(regionIntensity)), n).Scan(&d)
if err != nil {
return weft.ServiceUnavailableError(err)
}
b.WriteString(d)
h.Set("Content-Type", V1GeoJSON)
return &weft.StatusOK
}
示例7: dataSitePut
func dataSitePut(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
v := r.URL.Query()
siteID := v.Get("siteID")
var err error
var latitude, longitude float64
if latitude, err = strconv.ParseFloat(v.Get("latitude"), 64); err != nil {
return weft.BadRequest("latitude invalid")
}
if longitude, err = strconv.ParseFloat(v.Get("longitude"), 64); err != nil {
return weft.BadRequest("longitude invalid")
}
var result sql.Result
// TODO - use upsert with PG 9.5?
// return if insert succeeds
if result, err = db.Exec(`INSERT INTO data.site(siteID, latitude, longitude) VALUES($1, $2, $3)`,
siteID, latitude, longitude); err == nil {
var i int64
if i, err = result.RowsAffected(); err != nil {
return weft.InternalServerError(err)
}
if i == 1 {
return &weft.StatusOK
}
}
// return if update one row
if pqErr, ok := err.(*pq.Error); ok && pqErr.Code == errorUniqueViolation {
if result, err = db.Exec(`UPDATE data.site SET latitude=$2, longitude=$3 where siteID=$1`,
siteID, latitude, longitude); err == nil {
var i int64
if i, err = result.RowsAffected(); err != nil {
return weft.InternalServerError(err)
}
if i == 1 {
return &weft.StatusOK
}
}
}
if err == nil {
err = fmt.Errorf("no rows affected, check your query.")
}
return weft.InternalServerError(err)
}
示例8: fieldStatePut
func fieldStatePut(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
q := r.URL.Query()
deviceID := q.Get("deviceID")
typeID := q.Get("typeID")
var err error
var value bool
if value, err = strconv.ParseBool(q.Get("value")); err != nil {
return weft.BadRequest("invalid value")
}
var t time.Time
if t, err = time.Parse(time.RFC3339, q.Get("time")); err != nil {
return weft.BadRequest("invalid time")
}
var result sql.Result
if result, err = db.Exec(`UPDATE field.state SET
time = $3, value = $4
WHERE devicePK = (SELECT devicePK from field.device WHERE deviceID = $1)
AND typePK = (SELECT typePK from field.state_type WHERE typeID = $2)`,
deviceID, typeID, t, value); err != nil {
return weft.InternalServerError(err)
}
// If no rows change either the values are old or it's the first time we've seen this metric.
var u int64
if u, err = result.RowsAffected(); err != nil {
return weft.InternalServerError(err)
}
if u == 1 {
return &weft.StatusOK
} else if result, err = db.Exec(`INSERT INTO field.state(devicePK, typePK, time, value)
SELECT devicePK, typePK, $3, $4
FROM field.device, field.state_type
WHERE deviceID = $1
AND typeID = $2`,
deviceID, typeID, t, value); err == nil {
var i int64
if i, err = result.RowsAffected(); err != nil {
return weft.InternalServerError(err)
}
if i == 1 {
return &weft.StatusOK
}
}
return weft.InternalServerError(err)
}
示例9: intensityMeasuredLatestV1
func intensityMeasuredLatestV1(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{"type"}, []string{}); !res.Ok {
return res
}
if r.URL.Query().Get("type") != "measured" {
return weft.BadRequest("type must be measured.")
}
var d string
err := db.QueryRow(
`SELECT row_to_json(fc)
FROM ( SELECT 'FeatureCollection' as type, COALESCE(array_to_json(array_agg(f)), '[]') as features
FROM (SELECT 'Feature' as type,
ST_AsGeoJSON(s.location)::json as geometry,
row_to_json(( select l from
(
select mmi
) as l ))
as properties from (select location, mmi
FROM impact.intensity_measured) as s
) As f ) as fc`).Scan(&d)
if err != nil {
return weft.ServiceUnavailableError(err)
}
b.WriteString(d)
h.Set("Content-Type", V1GeoJSON)
return &weft.StatusOK
}
示例10: fieldMetricTagPut
func fieldMetricTagPut(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
v := r.URL.Query()
var err error
var result sql.Result
if result, err = db.Exec(`INSERT INTO field.metric_tag(devicePK, typePK, tagPK)
SELECT devicePK, typePK, tagPK
FROM field.device, field.type, mtr.tag
WHERE deviceID = $1
AND typeID = $2
AND tag = $3`,
v.Get("deviceID"), v.Get("typeID"), v.Get("tag")); err != nil {
if err, ok := err.(*pq.Error); ok && err.Code == errorUniqueViolation {
// ignore unique constraint errors
return &weft.StatusOK
} else {
return weft.InternalServerError(err)
}
}
var i int64
if i, err = result.RowsAffected(); err != nil {
return weft.InternalServerError(err)
}
if i != 1 {
return weft.BadRequest("Didn't create row, check your query parameters exist")
}
return &weft.StatusOK
}
示例11: volcanoRegionV2
func volcanoRegionV2(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
var err error
var volcanoId string
if volcanoId, err = getVolcanoIDRegion(r); err != nil {
return weft.BadRequest(err.Error())
}
var d string
err = db.QueryRow(`SELECT row_to_json(fc)
FROM ( SELECT 'FeatureCollection' as type, COALESCE(array_to_json(array_agg(f)), '[]') as features
FROM (SELECT 'Feature' as type,
ST_AsGeoJSON(r.region)::json as geometry,
row_to_json((SELECT l FROM
(
SELECT id,
title
) as l
)) as properties
FROM haz.volcano as r
where id = $1) as f ) as fc;`, volcanoId).Scan(&d)
if err != nil {
return weft.ServiceUnavailableError(err)
}
b.WriteString(d)
h.Set("Content-Type", V2GeoJSON)
return &weft.StatusOK
}
示例12: quakeV2
func quakeV2(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
if len(r.URL.Query()) != 0 {
return weft.BadRequest("incorrect number of query parameters.")
}
var publicID string
var res *weft.Result
if publicID, res = getPublicIDPath(r); !res.Ok {
return res
}
var d string
err := db.QueryRow(quakeV2SQL, publicID).Scan(&d)
if err != nil {
return weft.ServiceUnavailableError(err)
}
b.WriteString(d)
h.Set("Content-Type", V2GeoJSON)
return &weft.StatusOK
}
示例13: tagPageHandler
func tagPageHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
p := tagPage{}
p.Path = r.URL.Path
p.Border.Title = "GeoNet MTR"
p.ActiveTab = "Tag"
if err = p.populateTags(); err != nil {
return weft.InternalServerError(err)
}
ph := strings.TrimPrefix(p.Path, "/tag")
if strings.HasPrefix(ph, "/") {
ph = ph[1:]
}
currTab := -1
// Create grouping tabs
p.TagTabs = make([]string, 0)
for i, k := range tagGrouper {
s := k[:1] + "-" + k[len(k)-1:]
p.TagTabs = append(p.TagTabs, s)
if ph == s {
currTab = i
}
}
if currTab == -1 && ph != "" {
return weft.BadRequest("Invalid tag index.")
}
if ph == "" {
currTab = 0
}
p.Path = p.TagTabs[currTab]
for _, t := range p.Border.TagList {
c := t[:1]
if strings.Contains(tagGrouper[currTab], c) {
p.Tags = append(p.Tags, t)
}
}
if err = tagPageTemplate.ExecuteTemplate(b, "border", p); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
示例14: delApplication
func delApplication(applicationID string) *weft.Result {
if applicationID == "" {
return weft.BadRequest("empty applicationID")
}
if _, err := db.Exec(`DELETE FROM app.application WHERE applicationID = $1`, applicationID); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
示例15: docs
func docs(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
if r.URL.Path != "/" {
return weft.BadRequest("invalid path")
}
b.Write(docsIndex)
return &weft.StatusOK
}