本文整理汇总了Golang中github.com/GeoNet/weft.InternalServerError函数的典型用法代码示例。如果您正苦于以下问题:Golang InternalServerError函数的具体用法?Golang InternalServerError怎么用?Golang InternalServerError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了InternalServerError函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: fieldThresholdProto
func fieldThresholdProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
var rows *sql.Rows
if rows, err = dbR.Query(`SELECT deviceID, typeID, lower, upper, scale
FROM
field.threshold JOIN field.device USING (devicepk)
JOIN field.type USING (typepk)`); err != nil {
return weft.InternalServerError(err)
}
var ts mtrpb.FieldMetricThresholdResult
for rows.Next() {
var t mtrpb.FieldMetricThreshold
if err = rows.Scan(&t.DeviceID, &t.TypeID, &t.Lower, &t.Upper, &t.Scale); err != nil {
return weft.InternalServerError(err)
}
ts.Result = append(ts.Result, &t)
}
var by []byte
if by, err = proto.Marshal(&ts); err != nil {
return weft.InternalServerError(err)
}
b.Write(by)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:32,代码来源:field_threshold.go
示例2: dataCompletenessDelete
func dataCompletenessDelete(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
v := r.URL.Query()
siteID := v.Get("siteID")
typeID := v.Get("typeID")
var txn *sql.Tx
var err error
if txn, err = db.Begin(); err != nil {
return weft.InternalServerError(err)
}
for _, table := range []string{"data.completeness", "data.completeness_summary", "data.completeness_tag"} {
if _, err = txn.Exec(`DELETE FROM `+table+` WHERE
sitePK = (SELECT sitePK FROM data.site WHERE siteID = $1)
AND typePK = (SELECT typePK FROM data.completeness_type WHERE typeID = $2)`,
siteID, typeID); err != nil {
txn.Rollback()
return weft.InternalServerError(err)
}
}
if err = txn.Commit(); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:29,代码来源:data_completeness.go
示例3: fieldModelProto
func fieldModelProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
var rows *sql.Rows
if rows, err = dbR.Query(`SELECT modelID
FROM
field.model`); err != nil {
return weft.InternalServerError(err)
}
var fmr mtrpb.FieldModelResult
for rows.Next() {
var t mtrpb.FieldModel
if err = rows.Scan(&t.ModelID); err != nil {
return weft.InternalServerError(err)
}
fmr.Result = append(fmr.Result, &t)
}
var by []byte
if by, err = proto.Marshal(&fmr); err != nil {
return weft.InternalServerError(err)
}
b.Write(by)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:31,代码来源:field_model.go
示例4: dataCompletenessTypeProto
func dataCompletenessTypeProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
var rows *sql.Rows
if rows, err = dbR.Query(`SELECT typeID FROM data.completeness_type ORDER BY typeID ASC`); err != nil {
return weft.InternalServerError(err)
}
defer rows.Close()
var ftr mtrpb.DataTypeResult
for rows.Next() {
var ft mtrpb.DataType
if err = rows.Scan(&ft.TypeID); err != nil {
return weft.InternalServerError(err)
}
ftr.Result = append(ftr.Result, &ft)
}
var by []byte
if by, err = proto.Marshal(&ftr); err != nil {
return weft.InternalServerError(err)
}
b.Write(by)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:30,代码来源:data_type.go
示例5: 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
示例6: fieldMetricDelete
func fieldMetricDelete(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
v := r.URL.Query()
deviceID := v.Get("deviceID")
typeID := v.Get("typeID")
var err error
var txn *sql.Tx
if txn, err = db.Begin(); err != nil {
return weft.InternalServerError(err)
}
for _, table := range []string{"field.metric", "field.metric_summary", "field.metric_tag", "field.threshold"} {
if _, err = txn.Exec(`DELETE FROM `+table+` WHERE
devicePK = (SELECT devicePK FROM field.device WHERE deviceID = $1)
AND typePK = (SELECT typePK from field.type WHERE typeID = $2)`,
deviceID, typeID); err != nil {
txn.Rollback()
return weft.InternalServerError(err)
}
}
if err = txn.Commit(); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:29,代码来源:field_metric.go
示例7: 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
示例8: tagsProto
//search tags and place names from devices
func tagsProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
var rows *sql.Rows
if rows, err = dbR.Query(`SELECT DISTINCT tag from ((SELECT tag FROM mtr.tag )
union (SELECT CASE WHEN strpos(deviceid, '-') = 0 THEN deviceid ELSE split_part(deviceid, '-', 2) END AS tag FROM field.device)
union (SELECT siteid from data.site as tag)) ts ORDER BY tag ASC`); err != nil {
return weft.InternalServerError(err)
}
defer rows.Close()
var ts mtrpb.TagResult
for rows.Next() {
var t mtrpb.Tag
if err = rows.Scan(&t.Tag); err != nil {
return weft.InternalServerError(err)
}
ts.Result = append(ts.Result, &t)
}
var by []byte
if by, err = proto.Marshal(&ts); err != nil {
return weft.InternalServerError(err)
}
b.Write(by)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:33,代码来源:tag_search.go
示例9: 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
示例10: dataPageHandler
func dataPageHandler(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
}
// We create a page struct with variables to substitute into the loaded template
p := mtrUiPage{}
p.Path = r.URL.Path
p.Border.Title = "GeoNet MTR - Data"
p.ActiveTab = "Data"
if err = p.populateTags(); err != nil {
return weft.InternalServerError(err)
}
var pa panel
if pa, err = getDataSummary(); err != nil {
return weft.InternalServerError(err)
}
p.Panels = []panel{pa}
if err = dataTemplate.ExecuteTemplate(b, "border", p); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:30,代码来源:data_page.go
示例11: appIdProto
// write a protobuf to b of all applicationid's in app.application
func appIdProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
var rows *sql.Rows
if rows, err = dbR.Query(`SELECT applicationid FROM app.application ORDER BY applicationid ASC`); err != nil {
return weft.InternalServerError(err)
}
defer rows.Close()
var ar mtrpb.AppIDSummaryResult
for rows.Next() {
var ai mtrpb.AppIDSummary
if err = rows.Scan(&ai.ApplicationID); err != nil {
return weft.InternalServerError(err)
}
ar.Result = append(ar.Result, &ai)
}
var by []byte
if by, err = proto.Marshal(&ar); err != nil {
return weft.InternalServerError(err)
}
b.Write(by)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:32,代码来源:app.go
示例12: dataCompletenessTagProto
func dataCompletenessTagProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
var rows *sql.Rows
if rows, err = dbR.Query(`SELECT siteID, tag, typeID from data.completeness_tag
JOIN mtr.tag USING (tagpk)
JOIN data.site USING (sitepk)
JOIN data.completeness_type USING (typepk)
ORDER BY tag ASC`); err != nil {
return weft.InternalServerError(err)
}
defer rows.Close()
var ts mtrpb.DataCompletenessTagResult
for rows.Next() {
var t mtrpb.DataCompletenessTag
if err = rows.Scan(&t.SiteID, &t.Tag, &t.TypeID); err != nil {
return weft.InternalServerError(err)
}
ts.Result = append(ts.Result, &t)
}
var by []byte
if by, err = proto.Marshal(&ts); err != nil {
return weft.InternalServerError(err)
}
b.Write(by)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:34,代码来源:data_completeness_tag.go
示例13: appPlotPageHandler
// Contruct a simple page that has several plots (and time intervals as param) for the specified applicationID param
func appPlotPageHandler(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
if res := weft.CheckQuery(r, []string{"applicationID"}, []string{"resolution", "interactive"}); !res.Ok {
return res
}
p := mtrUiPage{}
p.Path = r.URL.Path
p.MtrApiUrl = mtrApiUrl.String()
p.Border.Title = "GeoNet MTR - application ID"
p.ActiveTab = "Apps"
// get the applicationID and resolution params from the URL
p.pageParam(r.URL.Query())
// Resolution not required if we're in "interactive" mode otherwise default is minute
if p.Resolution == "" && !p.Interactive {
p.Resolution = "minute"
}
if err = p.populateTags(); err != nil {
return weft.InternalServerError(err)
}
if err = appPlotTemplate.ExecuteTemplate(b, "border", p); err != nil {
return weft.InternalServerError(err)
}
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:32,代码来源:app_page.go
示例14: 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
}
开发者ID:GeoNet,项目名称:mtr,代码行数:31,代码来源:field_metric_tag.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: fieldDeviceProto
func fieldDeviceProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
var rows *sql.Rows
if rows, err = dbR.Query(`SELECT deviceid, modelid, latitude, longitude
FROM
field.device JOIN field.model USING(modelpk)`); err != nil {
return weft.InternalServerError(err)
}
var fdr mtrpb.FieldDeviceResult
for rows.Next() {
var d mtrpb.FieldDevice
if err = rows.Scan(&d.DeviceID, &d.ModelID, &d.Latitude, &d.Longitude); err != nil {
return weft.InternalServerError(err)
}
fdr.Result = append(fdr.Result, &d)
}
var by []byte
if by, err = proto.Marshal(&fdr); err != nil {
return weft.InternalServerError(err)
}
b.Write(by)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:31,代码来源:field_device.go
示例17: 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
示例18: dataSiteProto
func dataSiteProto(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var err error
var rows *sql.Rows
if rows, err = dbR.Query(`SELECT siteID, latitude, longitude FROM data.site`); err != nil {
return weft.InternalServerError(err)
}
var ts mtrpb.DataSiteResult
for rows.Next() {
var t mtrpb.DataSite
if err = rows.Scan(&t.SiteID, &t.Latitude, &t.Longitude); err != nil {
return weft.InternalServerError(err)
}
ts.Result = append(ts.Result, &t)
}
var by []byte
if by, err = proto.Marshal(&ts); err != nil {
return weft.InternalServerError(err)
}
b.Write(by)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:29,代码来源:data_site.go
示例19: 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)
}
开发者ID:GeoNet,项目名称:mtr,代码行数:59,代码来源:data_latency_threshold.go
示例20: fieldLatestGeoJSON
func fieldLatestGeoJSON(r *http.Request, h http.Header, b *bytes.Buffer) *weft.Result {
var rows *sql.Rows
var err error
typeID := r.URL.Query().Get("typeID")
var d string
err = db.QueryRow("select typeID FROM field.type where typeID = $1", typeID).Scan(&d)
if err == sql.ErrNoRows {
return &weft.NotFound
}
if err != nil {
return weft.ServiceUnavailableError(err)
}
if rows, err = dbR.Query(`
WITH p as (SELECT geom, time, value, lower, upper, deviceid, typeid
FROM field.metric_summary
JOIN field.device using (devicePK)
JOIN field.threshold using (devicePK, typePK)
JOIN field.type using (typePK)
WHERE typeID = $1)
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(p.geom)::json as geometry,
row_to_json(
(SELECT l FROM
(
SELECT
"time",
value,
lower,
upper,
deviceid,
typeid
) as l
)
) as properties FROM p
) as f ) as fc`, typeID); err != nil {
return weft.InternalServerError(err)
}
defer rows.Close()
var gj string
if rows.Next() {
if err = rows.Scan(&gj); err != nil {
return weft.InternalServerError(err)
}
}
rows.Close()
b.WriteString(gj)
return &weft.StatusOK
}
开发者ID:GeoNet,项目名称:mtr,代码行数:59,代码来源:field_metric_summary.go
注:本文中的github.com/GeoNet/weft.InternalServerError函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论