本文整理汇总了Golang中github.com/GeoNet/weft.CheckQuery函数的典型用法代码示例。如果您正苦于以下问题:Golang CheckQuery函数的具体用法?Golang CheckQuery怎么用?Golang CheckQuery使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了CheckQuery函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: fieldmetricsummaryHandler
func fieldmetricsummaryHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
switch r.Method {
case "GET":
switch r.Header.Get("Accept") {
case "application/x-protobuf":
if res := weft.CheckQuery(r, []string{}, []string{"typeID"}); !res.Ok {
return res
}
h.Set("Content-Type", "application/x-protobuf")
return fieldLatestProto(r, h, b)
case "image/svg+xml":
if res := weft.CheckQuery(r, []string{"bbox", "typeID", "width"}, []string{}); !res.Ok {
return res
}
h.Set("Content-Type", "image/svg+xml")
return fieldLatestSvg(r, h, b)
case "application/vnd.geo+json":
if res := weft.CheckQuery(r, []string{"typeID"}, []string{}); !res.Ok {
return res
}
h.Set("Content-Type", "application/vnd.geo+json")
return fieldLatestGeoJSON(r, h, b)
default:
if res := weft.CheckQuery(r, []string{"bbox", "typeID", "width"}, []string{}); !res.Ok {
return res
}
h.Set("Content-Type", "image/svg+xml")
return fieldLatestSvg(r, h, b)
}
default:
return &weft.MethodNotAllowed
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:33,代码来源:handlers_auto.go
示例2: datacompletenessHandler
func datacompletenessHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
switch r.Method {
case "GET":
switch r.Header.Get("Accept") {
case "image/svg+xml":
if res := weft.CheckQuery(r, []string{"siteID", "typeID"}, []string{"plot", "resolution", "yrange"}); !res.Ok {
return res
}
h.Set("Content-Type", "image/svg+xml")
return dataCompletenessSvg(r, h, b)
default:
if res := weft.CheckQuery(r, []string{"siteID", "typeID"}, []string{"plot", "resolution", "yrange"}); !res.Ok {
return res
}
h.Set("Content-Type", "image/svg+xml")
return dataCompletenessSvg(r, h, b)
}
case "PUT":
if res := weft.CheckQuery(r, []string{"count", "siteID", "time", "typeID"}, []string{}); !res.Ok {
return res
}
return dataCompletenessPut(r, h, b)
case "DELETE":
if res := weft.CheckQuery(r, []string{"siteID", "typeID"}, []string{}); !res.Ok {
return res
}
return dataCompletenessDelete(r, h, b)
default:
return &weft.MethodNotAllowed
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:31,代码来源:handlers_auto.go
示例3: tagsHandler
func tagsHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
switch r.Method {
case "GET":
switch r.Header.Get("Accept") {
case "application/x-protobuf":
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
h.Set("Content-Type", "application/x-protobuf")
return tagProto(r, h, b)
default:
return &weft.NotAcceptable
}
case "PUT":
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
return tagPut(r, h, b)
case "DELETE":
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
return tagDelete(r, h, b)
default:
return &weft.MethodNotAllowed
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:27,代码来源:handlers_auto.go
示例4: fieldmetricthresholdHandler
func fieldmetricthresholdHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
switch r.Method {
case "GET":
switch r.Header.Get("Accept") {
case "application/x-protobuf":
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
h.Set("Content-Type", "application/x-protobuf")
return fieldThresholdProto(r, h, b)
default:
return &weft.NotAcceptable
}
case "PUT":
if res := weft.CheckQuery(r, []string{"deviceID", "lower", "typeID", "upper"}, []string{}); !res.Ok {
return res
}
return fieldThresholdPut(r, h, b)
case "DELETE":
if res := weft.CheckQuery(r, []string{"deviceID", "typeID"}, []string{}); !res.Ok {
return res
}
return fieldThresholdDelete(r, h, b)
default:
return &weft.MethodNotAllowed
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:27,代码来源:handlers_auto.go
示例5: datacompletenesssummaryHandler
func datacompletenesssummaryHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
switch r.Method {
case "GET":
switch r.Header.Get("Accept") {
case "image/svg+xml":
if res := weft.CheckQuery(r, []string{"bbox", "typeID", "width"}, []string{}); !res.Ok {
return res
}
h.Set("Content-Type", "image/svg+xml")
return dataCompletenessSummarySvg(r, h, b)
case "application/x-protobuf":
if res := weft.CheckQuery(r, []string{}, []string{"typeID"}); !res.Ok {
return res
}
h.Set("Content-Type", "application/x-protobuf")
return dataCompletenessSummaryProto(r, h, b)
default:
if res := weft.CheckQuery(r, []string{"bbox", "typeID", "width"}, []string{}); !res.Ok {
return res
}
h.Set("Content-Type", "image/svg+xml")
return dataCompletenessSummarySvg(r, h, b)
}
default:
return &weft.MethodNotAllowed
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:27,代码来源:handlers_auto.go
示例6: appmetricHandler
func appmetricHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
switch r.Method {
case "GET":
switch r.Header.Get("Accept") {
case "image/svg+xml":
if res := weft.CheckQuery(r, []string{"applicationID", "group"}, []string{"resolution", "sourceID", "yrange"}); !res.Ok {
return res
}
h.Set("Content-Type", "image/svg+xml")
return appMetricSvg(r, h, b)
case "text/csv":
if res := weft.CheckQuery(r, []string{"applicationID", "group"}, []string{"endDate", "resolution", "sourceID", "startDate"}); !res.Ok {
return res
}
h.Set("Content-Type", "text/csv")
return appMetricCsv(r, h, b)
default:
if res := weft.CheckQuery(r, []string{"applicationID", "group"}, []string{"resolution", "sourceID", "yrange"}); !res.Ok {
return res
}
h.Set("Content-Type", "image/svg+xml")
return appMetricSvg(r, h, b)
}
default:
return &weft.MethodNotAllowed
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:27,代码来源:handlers_auto.go
示例7: 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
}
开发者ID:GeoNet,项目名称:haz,代码行数:32,代码来源:quakeWWW.go
示例8: metricDetailHandler
// handler that serves an html page for detailed metric information
func metricDetailHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var (
err error
)
if res := weft.CheckQuery(r, []string{"deviceID", "typeID"}, []string{}); !res.Ok {
return res
}
// We create a page struct with variables to substitute into the loaded template
q := r.URL.Query()
deviceID := q.Get("deviceID")
typeID := q.Get("typeID")
p := metricDetailPage{MtrApiUrl: mtrApiUrl}
p.Border.Title = fmt.Sprintf("Detailed Metric Info for deviceID:%s TypeID:%s", deviceID, typeID)
p.MetricDetail.DeviceID = deviceID
p.MetricDetail.TypeID = typeID
if err = p.populateTags(); err != nil {
return weft.InternalServerError(err)
}
if err = metricDetailTemplate.ExecuteTemplate(b, "border", p); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:31,代码来源:metric_handler.go
示例9: home
func home(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
return &weft.NotFound
}
开发者ID:GeoNet,项目名称:mtr,代码行数:7,代码来源:server.go
示例10: fieldPageHandler
func fieldPageHandler(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 := mtrUiPage{}
p.Path = r.URL.Path
p.Border.Title = "GeoNet MTR"
p.ActiveTab = "Field"
if err = p.populateTags(); err != nil {
return weft.InternalServerError(err)
}
var pa panel
if pa, err = getFieldSummary(); err != nil {
return weft.InternalServerError(err)
}
p.Panels = []panel{pa}
if err = fieldTemplate.ExecuteTemplate(b, "border", p); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:29,代码来源:field_page.go
示例11: sensorV2
// Proxies sensor *.geojson from S3
func sensorV2(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{"type"}, []string{}); !res.Ok {
return res
}
t := r.URL.Query().Get("type")
if !sensorGeoJSON[t] {
return &weft.NotFound
}
params := &s3.GetObjectInput{
Key: aws.String("delta/" + t + ".geojson"),
Bucket: aws.String("api.geonet.org.nz"),
}
res, err := s3Client.GetObject(params)
if err != nil {
return weft.InternalServerError(err)
}
defer res.Body.Close()
_, err = b.ReadFrom(res.Body)
if err != nil {
return weft.InternalServerError(err)
}
h.Set("Content-Type", V2GeoJSON)
h.Set("Surrogate-Control", maxAge3600)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:haz,代码行数:31,代码来源:delta.go
示例12: 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
}
开发者ID:GeoNet,项目名称:haz,代码行数:31,代码来源:intensity.go
示例13: 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
}
开发者ID:GeoNet,项目名称:haz,代码行数:34,代码来源:volcanoV2.go
示例14: 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
}
开发者ID:GeoNet,项目名称:haz,代码行数:26,代码来源:quakeV2.go
示例15: dataSitesPageHandler
func dataSitesPageHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
if res := weft.CheckQuery(r, []string{}, []string{"status", "typeID"}); !res.Ok {
return res
}
p := mtrUiPage{}
p.Path = r.URL.Path
p.Border.Title = "GeoNet MTR - Data Sites"
p.ActiveTab = "Data"
p.MtrApiUrl = mtrApiUrl.String()
if err = p.populateTags(); err != nil {
return weft.InternalServerError(err)
}
p.pageParam(r.URL.Query())
if err = p.getSitesList(); err != nil {
return weft.InternalServerError(err)
}
if err = dataTemplate.ExecuteTemplate(b, "border", p); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:30,代码来源:data_page.go
示例16: valV2
func valV2(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
var d string
err := db.QueryRow(`SELECT row_to_json(fc)
FROM ( SELECT 'FeatureCollection' as type, array_to_json(array_agg(f)) as features
FROM (SELECT 'Feature' as type,
ST_AsGeoJSON(v.location)::json as geometry,
row_to_json((SELECT l FROM
(
SELECT
id AS "volcanoID",
title AS "volcanoTitle",
alert_level as "level",
activity,
hazards
) as l
)) as properties FROM (haz.volcano JOIN haz.volcanic_alert_level using (alert_level)) as v ) As f ) as fc`).Scan(&d)
if err != nil {
return weft.ServiceUnavailableError(err)
}
b.WriteString(d)
h.Set("Content-Type", V2GeoJSON)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:haz,代码行数:29,代码来源:volcanoV2.go
示例17: 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
}
开发者ID:GeoNet,项目名称:haz,代码行数:25,代码来源:quakes.go
示例18: 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
}
开发者ID:GeoNet,项目名称:mtr,代码行数:35,代码来源:search.go
示例19: quakeTechnicalProto
// fetches SC3ML and turns it into a protobuf.
func quakeTechnicalProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
by, res := getBytes(s3+strings.TrimPrefix(r.URL.Path, "/quake/technical/")+".xml", "")
if !res.Ok {
return res
}
q, err := sc3ml.QuakeTechnical(by)
if err != nil {
return weft.ServiceUnavailableError(err)
}
m, err := proto.Marshal(&q)
if err != nil {
return weft.ServiceUnavailableError(err)
}
b.Write(m)
h.Set("Content-Type", protobuf)
return &weft.StatusOK
}
开发者ID:gclitheroe,项目名称:haz,代码行数:26,代码来源:quakeProto.go
示例20: quakeProto
func quakeProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
if res := weft.CheckQuery(r, []string{}, []string{}); !res.Ok {
return res
}
var q haz.Quake
var res *weft.Result
if q.PublicID, res = getPublicIDPath(r); !res.Ok {
return res
}
var t time.Time
var mt time.Time
var err error
if err = db.QueryRow(quakeProtoSQL, q.PublicID).Scan(&t, &mt,
&q.Depth, &q.Magnitude, &q.Locality, &q.Mmi, &q.Quality,
&q.Longitude, &q.Latitude); err != nil {
return weft.ServiceUnavailableError(err)
}
q.Time = &haz.Timestamp{Sec: t.Unix(), Nsec: int64(t.Nanosecond())}
q.ModificationTime = &haz.Timestamp{Sec: mt.Unix(), Nsec: int64(mt.Nanosecond())}
var by []byte
if by, err = proto.Marshal(&q); err != nil {
return weft.ServiceUnavailableError(err)
}
b.Write(by)
h.Set("Content-Type", protobuf)
return &weft.StatusOK
}
开发者ID:gclitheroe,项目名称:haz,代码行数:35,代码来源:quakeProto.go
注:本文中的github.com/GeoNet/weft.CheckQuery函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论