diff options
author | =Corey Hulen <corey@hulen.com> | 2015-06-14 23:53:32 -0800 |
---|---|---|
committer | =Corey Hulen <corey@hulen.com> | 2015-06-14 23:53:32 -0800 |
commit | 56e74239d6b34df8f30ef046f0b0ff4ff0866a71 (patch) | |
tree | 044da29848cf0f5c8607eac34de69065171669cf /api/api.go | |
download | chat-56e74239d6b34df8f30ef046f0b0ff4ff0866a71.tar.gz chat-56e74239d6b34df8f30ef046f0b0ff4ff0866a71.tar.bz2 chat-56e74239d6b34df8f30ef046f0b0ff4ff0866a71.zip |
first commit
Diffstat (limited to 'api/api.go')
-rw-r--r-- | api/api.go | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/api/api.go b/api/api.go new file mode 100644 index 000000000..70e1b64ae --- /dev/null +++ b/api/api.go @@ -0,0 +1,61 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +package api + +import ( + "bytes" + l4g "code.google.com/p/log4go" + "github.com/mattermost/platform/model" + "github.com/mattermost/platform/utils" + "html/template" + "net/http" +) + +var ServerTemplates *template.Template + +type ServerTemplatePage Page + +func NewServerTemplatePage(templateName, teamUrl string) *ServerTemplatePage { + props := make(map[string]string) + props["AnalyticsUrl"] = utils.Cfg.ServiceSettings.AnalyticsUrl + return &ServerTemplatePage{TemplateName: templateName, SiteName: utils.Cfg.ServiceSettings.SiteName, FeedbackEmail: utils.Cfg.EmailSettings.FeedbackEmail, TeamUrl: teamUrl, Props: props} +} + +func (me *ServerTemplatePage) Render() string { + var text bytes.Buffer + if err := ServerTemplates.ExecuteTemplate(&text, me.TemplateName, me); err != nil { + l4g.Error("Error rendering template %v err=%v", me.TemplateName, err) + } + + return text.String() +} + +func InitApi() { + r := Srv.Router.PathPrefix("/api/v1").Subrouter() + InitUser(r) + InitTeam(r) + InitChannel(r) + InitPost(r) + InitWebSocket(r) + InitFile(r) + InitCommand(r) + + templatesDir := utils.FindDir("api/templates") + l4g.Debug("Parsing server templates at %v", templatesDir) + var err error + if ServerTemplates, err = template.ParseGlob(templatesDir + "*.html"); err != nil { + l4g.Error("Failed to parse server templates %v", err) + } +} + +func HandleEtag(etag string, w http.ResponseWriter, r *http.Request) bool { + if et := r.Header.Get(model.HEADER_ETAG_CLIENT); len(etag) > 0 { + if et == etag { + w.WriteHeader(http.StatusNotModified) + return true + } + } + + return false +} |