Example #1
0
func (self *RootController) Index(c *gin.Context) {
	username := self.CurrentUser(c)

	if username == "" {
		c.HTML(http.StatusOK, "index.tmpl", gin.H{
			"alert":      false,
			"error":      false,
			"logged_in":  false,
			"message":    "",
			"baseDomain": self.config.BaseDomain,
		})

		return
	}

	if !user.Exists(self.etcd, username) {
		c.HTML(http.StatusNotFound, "apps.tmpl", gin.H{
			"error":   true,
			"message": fmt.Sprintf("User %s does not exist.", username),
		})

		return
	}

	c.HTML(http.StatusOK, "index.tmpl", gin.H{
		"alert":      false,
		"avater_url": user.GetAvaterURL(self.etcd, username),
		"error":      false,
		"logged_in":  true,
		"message":    "",
		"username":   username,
		"baseDomain": self.config.BaseDomain,
	})
}
Example #2
0
func (self *AppController) Index(c *gin.Context) {
	username := self.CurrentUser(c)

	if username == "" {
		c.Redirect(http.StatusFound, "/")

		return
	}

	if !user.Exists(self.etcd, username) {
		c.HTML(http.StatusNotFound, "apps.tmpl", gin.H{
			"error":   true,
			"message": fmt.Sprintf("User %s does not exist.", username),
		})

		return
	}

	apps, err := app.List(self.etcd, username)

	if err != nil {
		fmt.Fprintf(os.Stderr, "%+v\n", err)

		c.HTML(http.StatusInternalServerError, "apps.tmpl", gin.H{
			"error":   true,
			"message": "Failed to list apps.",
		})

		return
	}

	c.HTML(http.StatusOK, "apps.tmpl", gin.H{
		"error":      false,
		"apps":       apps,
		"avater_url": user.GetAvaterURL(self.etcd, username),
		"logged_in":  true,
		"username":   username,
	})
}
Example #3
0
func (self *AppController) Get(c *gin.Context) {
	var latestURL string

	username := self.CurrentUser(c)

	if username == "" {
		c.Redirect(http.StatusFound, "/")

		return
	}

	if !user.Exists(self.etcd, username) {
		c.HTML(http.StatusNotFound, "apps.tmpl", gin.H{
			"error":   true,
			"message": fmt.Sprintf("User %s does not exist.", username),
		})

		return
	}

	appName := c.Param("appName")

	if !app.Exists(self.etcd, username, appName) {
		c.HTML(http.StatusNotFound, "apps.tmpl", gin.H{
			"error":   true,
			"message": fmt.Sprintf("Application %s does not exist.", appName),
		})

		return
	}

	urls, err := app.URLs(self.etcd, self.config.URIScheme, self.config.BaseDomain, username, appName)

	if err != nil {
		fmt.Fprintf(os.Stderr, "%+v\n", err)

		c.HTML(http.StatusInternalServerError, "app.tmpl", gin.H{
			"error":   true,
			"message": "Failed to list app URLs.",
		})

		return
	}

	envs, err := env.List(self.etcd, username, appName)

	if err != nil {
		fmt.Fprintf(os.Stderr, "%+v\n", err)

		c.HTML(http.StatusInternalServerError, "app.tmpl", gin.H{
			"error":   true,
			"message": "Failed to list environment variables.",
		})

		return
	}

	buildArgs, err := arg.List(self.etcd, username, appName)

	if err != nil {
		fmt.Fprintf(os.Stderr, "%+v\n", err)

		c.HTML(http.StatusInternalServerError, "app.tmpl", gin.H{
			"error":   true,
			"message": "Failed to list build args.",
		})

		return
	}

	hc, err := healthcheck.Get(self.etcd, username, appName)
	if err != nil {
		fmt.Fprintf(os.Stderr, "%+v\n", err)

		c.HTML(http.StatusInternalServerError, "app.tmpl", gin.H{
			"error":   true,
			"message": "Failed to get healthcheck.",
		})

		return
	}

	if len(urls) > 0 {
		latestURL = app.LatestAppURLOfUser(self.config.URIScheme, self.config.BaseDomain, username, appName)
	}

	c.HTML(http.StatusOK, "app.tmpl", gin.H{
		"error":       false,
		"app":         appName,
		"avater_url":  user.GetAvaterURL(self.etcd, username),
		"buildArgs":   buildArgs,
		"envs":        envs,
		"healthcheck": hc,
		"latestURL":   latestURL,
		"logged_in":   true,
		"urls":        urls,
		"username":    username,
	})
}