本文整理汇总了Golang中github.com/GeoNet/web.ServiceUnavailable函数的典型用法代码示例。如果您正苦于以下问题:Golang ServiceUnavailable函数的具体用法?Golang ServiceUnavailable怎么用?Golang ServiceUnavailable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ServiceUnavailable函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: quake
func quake(w http.ResponseWriter, r *http.Request) {
if len(r.URL.Query()) != 0 {
web.BadRequest(w, r, "incorrect number of query parameters.")
return
}
publicID := r.URL.Path[quakeLen:]
// TODO bother with this?
if !publicIDRe.MatchString(publicID) {
web.BadRequest(w, r, "invalid publicID: "+publicID)
return
}
var d string
// Check that the publicid exists in the DB. This is needed as the handle method will return empty
// JSON for an invalid publicID.
err := db.QueryRow("select publicid FROM qrt.quake_materialized where publicid = $1", publicID).Scan(&d)
if err == sql.ErrNoRows {
web.NotFound(w, r, "invalid publicID: "+publicID)
return
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
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(q.origin_geom)::json as geometry,
row_to_json((SELECT l FROM
(
SELECT
publicid AS "publicID",
to_char(origintime, 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"') as "time",
depth,
magnitude,
type,
agency,
locality,
qrt.mmi_to_intensity(maxmmi) as intensity,
qrt.mmi_to_intensity(mmi_newzealand) as "regionIntensity",
qrt.quake_quality(status, usedphasecount, magnitudestationcount) as quality,
to_char(updatetime, 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"') as "modificationTime"
) as l
)) as properties FROM qrt.quake_materialized as q where publicid = $1 ) As f ) as fc`, publicID).Scan(&d)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
b := []byte(d)
web.Ok(w, r, &b)
}
开发者ID:nmacnz,项目名称:geonet-rest,代码行数:57,代码来源:quake.go
示例2: felt
func felt(w http.ResponseWriter, r *http.Request) {
if err := feltD.CheckParams(r.URL.Query()); err != nil {
web.BadRequest(w, r, err.Error())
return
}
publicID := r.URL.Query().Get("publicID")
var d string
err := db.QueryRow("select publicid FROM qrt.quake_materialized where publicid = $1", publicID).Scan(&d)
if err == sql.ErrNoRows {
web.NotFound(w, r, "invalid publicID: "+publicID)
return
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
res, err := client.Get(feltURL + publicID + ".geojson")
defer res.Body.Close()
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
b, err := ioutil.ReadAll(res.Body)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
// Felt returns a 400 when it should probably be a 404. Tapestry quirk?
switch {
case 200 == res.StatusCode:
web.Ok(w, r, &b)
return
case 4 == res.StatusCode/100:
web.NotFound(w, r, string(b))
return
case 5 == res.StatusCode/500:
web.ServiceUnavailable(w, r, errors.New("error proxying felt resports. Shrug."))
return
}
web.ServiceUnavailable(w, r, errors.New("unknown response from felt."))
}
开发者ID:nmacnz,项目名称:geonet-rest,代码行数:48,代码来源:felt.go
示例3: regions
// just quake regions at the moment.
func regions(w http.ResponseWriter, r *http.Request) {
if err := regionsD.CheckParams(r.URL.Query()); err != nil {
web.BadRequest(w, r, err.Error())
return
}
if r.URL.Query().Get("type") != "quake" {
web.BadRequest(w, r, "type must be quake.")
return
}
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(q.geom)::json as geometry,
row_to_json((SELECT l FROM
(
SELECT
regionname as "regionID",
title,
groupname as group
) as l
)) as properties FROM qrt.region as q where groupname in ('region', 'north', 'south')) as f ) as fc`).Scan(&d)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
w.Header().Set("Surrogate-Control", web.MaxAge86400)
b := []byte(d)
web.Ok(w, r, &b)
}
开发者ID:nmacnz,项目名称:geonet-rest,代码行数:36,代码来源:region.go
示例4: getSites
/*
returns a zero length list if no sites are found.
*/
func getSites(w http.ResponseWriter, r *http.Request) ([]siteQ, bool) {
var sites = make([]siteQ, 0)
for _, ns := range strings.Split(r.URL.Query().Get("sites"), ",") {
nss := strings.Split(ns, ".")
if len(nss) != 2 {
web.BadRequest(w, r, "invalid sites query.")
return sites, false
}
sites = append(sites, siteQ{networkID: nss[0], siteID: nss[1]})
}
for _, s := range sites {
err := db.QueryRow("select name FROM fits.site join fits.network using (networkpk) where siteid = $2 and networkid = $1", s.networkID, s.siteID).Scan(&s.name)
if err == sql.ErrNoRows {
web.NotFound(w, r, "invalid siteID and networkID combination: "+s.siteID+" "+s.networkID)
return sites, false
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return sites, false
}
}
return sites, true
}
开发者ID:jmptrader,项目名称:fits,代码行数:29,代码来源:valid.go
示例5: alertLevel
func alertLevel(w http.ResponseWriter, r *http.Request) {
if len(r.URL.Query()) != 0 {
web.BadRequest(w, r, "incorrect number of query parameters.")
return
}
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 (qrt.volcano JOIN qrt.volcanic_alert_level using (alert_level)) as v ) As f ) as fc`).Scan(&d)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
b := []byte(d)
web.Ok(w, r, &b)
}
开发者ID:nmacnz,项目名称:geonet-rest,代码行数:30,代码来源:volcano.go
示例6: intensityMeasuredLatest
func intensityMeasuredLatest(w http.ResponseWriter, r *http.Request) {
if err := intensityMeasuredLatestD.CheckParams(r.URL.Query()); err != nil {
web.BadRequest(w, r, err.Error())
return
}
if r.URL.Query().Get("type") != "measured" {
web.BadRequest(w, r, "type must be measured.")
return
}
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 {
web.ServiceUnavailable(w, r, err)
return
}
b := []byte(d)
web.Ok(w, r, &b)
}
开发者ID:nmacnz,项目名称:geonet-rest,代码行数:33,代码来源:intensity.go
示例7: region
func region(w http.ResponseWriter, r *http.Request) {
if len(r.URL.Query()) != 0 {
web.BadRequest(w, r, "incorrect number of query parameters.")
return
}
regionID := r.URL.Path[regionLen:]
var d string
err := db.QueryRow("select regionname FROM qrt.region where regionname = $1", regionID).Scan(&d)
if err == sql.ErrNoRows {
web.BadRequest(w, r, "invalid regionID: "+regionID)
return
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
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(q.geom)::json as geometry,
row_to_json((SELECT l FROM
(
SELECT
regionname as "regionID",
title,
groupname as group
) as l
)) as properties FROM qrt.region as q where regionname = $1 ) as f ) as fc`, regionID).Scan(&d)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
w.Header().Set("Surrogate-Control", web.MaxAge86400)
b := []byte(d)
web.Ok(w, r, &b)
}
开发者ID:nmacnz,项目名称:geonet-rest,代码行数:41,代码来源:region.go
示例8: validType
// validType checks that the typeID exists in the DB.
func validType(w http.ResponseWriter, r *http.Request, typeID string) bool {
var d string
err := db.QueryRow("select typeID FROM fits.type where typeID = $1", typeID).Scan(&d)
if err == sql.ErrNoRows {
web.NotFound(w, r, "invalid typeID: "+typeID)
return false
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return false
}
return true
}
开发者ID:jmptrader,项目名称:fits,代码行数:16,代码来源:type.go
示例9: validTypeMethod
// validTypeMethod checks that the typeID and methodID exists in the DB
// and are a valid combination.
func validTypeMethod(w http.ResponseWriter, r *http.Request, typeID, methodID string) bool {
var d string
err := db.QueryRow("SELECT typepk FROM fits.type join fits.type_method using (typepk) join fits.method using (methodpk) WHERE typeid = $1 and methodid = $2", typeID, methodID).Scan(&d)
if err == sql.ErrNoRows {
web.NotFound(w, r, "invalid methodID for typeID: "+methodID+" "+typeID)
return false
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return false
}
return true
}
开发者ID:jmptrader,项目名称:fits,代码行数:17,代码来源:type.go
示例10: validSite
// validSite checks that the siteID and networkID combination exists in the DB.
func validSite(w http.ResponseWriter, r *http.Request, networkID, siteID string) bool {
var d string
err := db.QueryRow("select siteID FROM fits.site join fits.network using (networkpk) where siteid = $2 and networkid = $1", networkID, siteID).Scan(&d)
if err == sql.ErrNoRows {
web.NotFound(w, r, "invalid siteID and networkID combination: "+siteID+" "+networkID)
return false
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return false
}
return true
}
开发者ID:jmptrader,项目名称:fits,代码行数:16,代码来源:site.go
示例11: news
func news(w http.ResponseWriter, r *http.Request) {
if len(r.URL.Query()) != 0 {
web.BadRequest(w, r, "incorrect number of query parameters.")
return
}
j, err := fetchRSS(newsURL)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
w.Header().Set("Surrogate-Control", web.MaxAge300)
web.Ok(w, r, &j)
}
开发者ID:nmacnz,项目名称:geonet-rest,代码行数:16,代码来源:news.go
示例12: validSrs
// validSrs checks that the srs represented by auth and srid exists in the DB.
func validSrs(w http.ResponseWriter, r *http.Request, auth string, srid int) bool {
var d string
err := db.QueryRow(`select auth_name FROM public.spatial_ref_sys where auth_name = $1
AND srid = $2`, auth, srid).Scan(&d)
if err == sql.ErrNoRows {
web.BadRequest(w, r, "invalid srsName")
return false
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return false
}
return true
}
开发者ID:jmptrader,项目名称:fits,代码行数:17,代码来源:spatialObservations.go
示例13: intensityReportedLatest
func intensityReportedLatest(w http.ResponseWriter, r *http.Request) {
if err := intensityReportedLatestD.CheckParams(r.URL.Query()); err != nil {
web.BadRequest(w, r, err.Error())
return
}
if r.URL.Query().Get("type") != "reported" {
web.BadRequest(w, r, "type must be reported.")
return
}
zoom := r.URL.Query().Get("zoom")
if !zoomRe.MatchString(r.URL.Query().Get("zoom")) {
web.BadRequest(w, r, "Invalid zoom")
return
}
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 max_mmi,
min_mmi,
count
) as l ))
as properties from (select st_pointfromgeohash(geohash` + zoom + `) as location,
min(mmi) as min_mmi,
max(mmi) as max_mmi,
count(mmi) as count
FROM impact.intensity_reported
WHERE time >= (now() - interval '60 minutes')
group by (geohash` + zoom + `)) as s
) As f ) as fc`).Scan(&d)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
b := []byte(d)
web.Ok(w, r, &b)
}
开发者ID:nmacnz,项目名称:geonet-rest,代码行数:47,代码来源:intensity.go
示例14: siteType
func siteType(w http.ResponseWriter, r *http.Request) {
if err := siteTypeD.CheckParams(r.URL.Query()); err != nil {
web.BadRequest(w, r, err.Error())
return
}
v := r.URL.Query()
if v.Get("methodID") != "" && v.Get("typeID") == "" {
web.BadRequest(w, r, "typeID must be specified when methodID is specified.")
return
}
var typeID, methodID, within string
if v.Get("typeID") != "" {
typeID = v.Get("typeID")
if !validType(w, r, typeID) {
return
}
if v.Get("methodID") != "" {
methodID = v.Get("methodID")
if !validTypeMethod(w, r, typeID, methodID) {
return
}
}
}
if v.Get("within") != "" {
within = strings.Replace(v.Get("within"), "+", "", -1)
if !validPoly(w, r, within) {
return
}
}
w.Header().Set("Content-Type", web.V1GeoJSON)
b, err := geoJSONSites(typeID, methodID, within)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
web.Ok(w, r, &b)
}
开发者ID:jmptrader,项目名称:fits,代码行数:47,代码来源:site.go
示例15: getType
func getType(w http.ResponseWriter, r *http.Request) (typeQ, bool) {
t := typeQ{
typeID: r.URL.Query().Get("typeID"),
}
err := db.QueryRow("select type.name, type.description, unit.symbol FROM fits.type join fits.unit using (unitpk) where typeID = $1",
t.typeID).Scan(&t.name, &t.description, &t.unit)
if err == sql.ErrNoRows {
web.NotFound(w, r, "invalid typeID: "+t.typeID)
return t, false
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return t, false
}
return t, true
}
开发者ID:jmptrader,项目名称:fits,代码行数:18,代码来源:valid.go
示例16: getSite
func getSite(w http.ResponseWriter, r *http.Request) (siteQ, bool) {
s := siteQ{
networkID: r.URL.Query().Get("networkID"),
siteID: r.URL.Query().Get("siteID"),
}
err := db.QueryRow("select name FROM fits.site join fits.network using (networkpk) where siteid = $2 and networkid = $1", s.networkID, s.siteID).Scan(&s.name)
if err == sql.ErrNoRows {
web.NotFound(w, r, "invalid siteID and networkID combination: "+s.siteID+" "+s.networkID)
return s, false
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return s, false
}
return s, true
}
开发者ID:jmptrader,项目名称:fits,代码行数:18,代码来源:valid.go
示例17: method
func method(w http.ResponseWriter, r *http.Request) {
if err := methodD.CheckParams(r.URL.Query()); err != nil {
web.BadRequest(w, r, err.Error())
return
}
typeID := r.URL.Query().Get("typeID")
if typeID != "" && !validType(w, r, typeID) {
return
}
var d string
var err error
switch typeID {
case "":
err = db.QueryRow(
`select row_to_json(fc) from (select array_to_json(array_agg(m)) as method
from (select methodid as "methodID", method.name, method.description, method.reference
from
fits.type join fits.type_method using (typepk)
join fits.method using (methodpk)) as m) as fc`).Scan(&d)
default:
err = db.QueryRow(
`select row_to_json(fc) from (select array_to_json(array_agg(m)) as method
from (select methodid as "methodID", method.name, method.description, method.reference
from
fits.type join fits.type_method using (typepk)
join fits.method using (methodpk)
where type.typeID = $1) as m) as fc`, typeID).Scan(&d)
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
w.Header().Set("Content-Type", web.V1JSON)
b := []byte(d)
web.Ok(w, r, &b)
}
开发者ID:jmptrader,项目名称:fits,代码行数:43,代码来源:method.go
示例18: typeH
func typeH(w http.ResponseWriter, r *http.Request) {
if len(r.URL.Query()) != 0 {
web.BadRequest(w, r, "incorrect number of query params.")
return
}
w.Header().Set("Content-Type", web.V1JSON)
var d string
err := db.QueryRow(
`select row_to_json(fc) from (select array_to_json(array_agg(t)) as type
from (select typeid as "typeID", type.name, symbol as unit, description
from fits.type join fits.unit using (unitpk)) as t) as fc`).Scan(&d)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
b := []byte(d)
web.Ok(w, r, &b)
}
开发者ID:jmptrader,项目名称:fits,代码行数:22,代码来源:type.go
示例19: site
func site(w http.ResponseWriter, r *http.Request) {
if err := siteD.CheckParams(r.URL.Query()); err != nil {
web.BadRequest(w, r, err.Error())
return
}
networkID := r.URL.Query().Get("networkID")
siteID := r.URL.Query().Get("siteID")
if !validSite(w, r, networkID, siteID) {
return
}
w.Header().Set("Content-Type", web.V1GeoJSON)
b, err := geoJSONSite(networkID, siteID)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
web.Ok(w, r, &b)
}
开发者ID:jmptrader,项目名称:fits,代码行数:23,代码来源:site.go
示例20: intensityReported
func intensityReported(w http.ResponseWriter, r *http.Request) {
if err := intensityReportedD.CheckParams(r.URL.Query()); err != nil {
web.BadRequest(w, r, err.Error())
return
}
if r.URL.Query().Get("type") != "reported" {
web.BadRequest(w, r, "type must be reported.")
return
}
zoom := r.URL.Query().Get("zoom")
if !zoomRe.MatchString(r.URL.Query().Get("zoom")) {
web.BadRequest(w, r, "Invalid zoom")
return
}
// Check that the publicid exists in the DB.
// If it does we keep the origintime - we need it later on.
publicID := r.URL.Query().Get("publicID")
originTime := time.Time{}
err := db.QueryRow("select origintime FROM qrt.quake_materialized where publicid = $1", publicID).Scan(&originTime)
if err == sql.ErrNoRows {
web.NotFound(w, r, "invalid publicID: "+publicID)
return
}
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
query := `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 max_mmi,
min_mmi,
count
) as l ))
as properties from (select st_pointfromgeohash(geohash` + zoom + `) as location,
min(mmi) as min_mmi,
max(mmi) as max_mmi,
count(mmi) as count
FROM impact.intensity_reported
WHERE time >= $1
AND time <= $2
group by (geohash` + zoom + `)) as s
) As f ) as fc`
var d string
err = db.QueryRow(query, originTime.Add(time.Duration(-1*time.Minute)), originTime.Add(time.Duration(15*time.Minute))).Scan(&d)
if err != nil {
web.ServiceUnavailable(w, r, err)
return
}
b := []byte(d)
web.Ok(w, r, &b)
}
开发者ID:nmacnz,项目名称:geonet-rest,代码行数:65,代码来源:intensity.go
注:本文中的github.com/GeoNet/web.ServiceUnavailable函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论