summaryrefslogtreecommitdiffstats
path: root/api/api.go
diff options
context:
space:
mode:
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
commit56e74239d6b34df8f30ef046f0b0ff4ff0866a71 (patch)
tree044da29848cf0f5c8607eac34de69065171669cf /api/api.go
downloadchat-56e74239d6b34df8f30ef046f0b0ff4ff0866a71.tar.gz
chat-56e74239d6b34df8f30ef046f0b0ff4ff0866a71.tar.bz2
chat-56e74239d6b34df8f30ef046f0b0ff4ff0866a71.zip
first commit
Diffstat (limited to 'api/api.go')
-rw-r--r--api/api.go61
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
+}