12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package main
- import (
- "fmt"
- "github.com/atrox/haikunatorgo"
- "github.com/gin-gonic/contrib/sessions"
- "github.com/gin-gonic/gin"
- "io/ioutil"
- "os"
- )
- func NewApp() *gin.Engine {
- r := gin.Default()
- store := sessions.NewCookieStore([]byte("secret"))
- r.Use(sessions.Sessions("mysession", store))
- r.LoadHTMLGlob("templates/index.tmpl")
- r.Static("/static", "./static")
- r.GET("/", func(c *gin.Context) {
- haikunator := haikunator.NewHaikunator()
- haikunator.TokenLength = 0
- name := haikunator.Haikunate()
- path := fmt.Sprintf("%s.md", name)
- session := sessions.Default(c)
- session.Set("name", path)
- session.Save()
- c.HTML(200, "users/index.tmpl", gin.H{
- "pubTo": path,
- })
- })
- r.GET("/slides.md", func(c *gin.Context) {
- session := sessions.Default(c)
- val := session.Get("name")
- path, ok := val.(string)
- if !ok {
- panic("unlucky")
- }
- if _, err := os.Stat(path); err != nil {
- body, err := ioutil.ReadFile("initial-slides.md")
- if err != nil {
- panic(err)
- }
- ioutil.WriteFile(path, body, 0644)
- }
- body, err := ioutil.ReadFile(path)
- if err != nil {
- panic(err)
- }
- c.String(200, string(body))
- })
- r.PUT("/slides.md", func(c *gin.Context) {
- session := sessions.Default(c)
- val := session.Get("name")
- path, ok := val.(string)
- if !ok {
- panic("unlucky")
- }
- body, _ := ioutil.ReadAll(c.Request.Body)
- ioutil.WriteFile(path, body, 0644)
- c.String(200, "")
- })
- return r
- }
- func main() {
- r := NewApp()
- r.Run(":8080")
- }
|