當前位置: 首頁>>代碼示例>>Golang>>正文


Golang echo.Context類代碼示例

本文整理匯總了Golang中github.com/Castcloud/castcloud-go-server/Godeps/_workspace/src/github.com/labstack/echo.Context的典型用法代碼示例。如果您正苦於以下問題:Golang Context類的具體用法?Golang Context怎麽用?Golang Context使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Context類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: createUser

func createUser(c *echo.Context) error {
	u := new(user)
	if err := c.Bind(u); err != nil {
		return err
	}
	users[u.ID] = *u
	return c.JSON(http.StatusCreated, u)
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:8,代碼來源:server.go

示例2: errorHandler

func errorHandler(err error, c *echo.Context) {
	code := http.StatusInternalServerError
	msg := http.StatusText(code)
	if he, ok := err.(*echo.HTTPError); ok {
		code = he.Code()
		msg = he.Error()
	}
	c.Response().Header().Set("Content-Type", "text/plain; charset=utf-8")
	c.Response().WriteHeader(code)
	c.Response().Write([]byte(msg))
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:11,代碼來源:api.go

示例3: addLabel

//
// POST /library/labels
//
func addLabel(c *echo.Context) error {
	name := strings.TrimPrefix(form(c, "name"), "label/")
	if name == "" {
		return c.String(400, "Name too short")
	}

	label := Label{
		Name:     name,
		Content:  form(c, "content"),
		Expanded: form(c, "expanded") == "true",
	}

	user := c.Get("user").(*User)
	err := store.SaveLabel(&label, user.ID)
	if err == ErrLabelExists {
		return c.String(409, "Existing label")
	} else if err != nil {
		return err
	}

	return c.JSON(200, addedLabel{
		ID:   label.ID,
		Name: label.Name,
	})
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:28,代碼來源:labels.go

示例4: removeCast

//
// DELETE /library/casts/:id
//
func removeCast(c *echo.Context) error {
	id, err := strconv.ParseUint(c.Param("id"), 10, 64)
	if err != nil {
		return c.NoContent(400)
	}

	user := c.Get("user").(*User)
	user, err = store.RemoveSubscription(user.ID, id)
	authCache.set(c.Get("token").(string), user)
	return err
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:14,代碼來源:casts.go

示例5: getNewEpisodes

//
// GET /library/newepisodes
//
func getNewEpisodes(c *echo.Context) error {
	now := time.Now().Unix()
	user := c.Get("user").(*User)
	since := c.Request().URL.Query().Get("since")
	if since == "" {
		return c.JSON(200, newEpisodes{
			Timestamp: now,
			Episodes:  store.GetEpisodesSince(0, user.Subscriptions),
		})
	}

	ts, err := strconv.ParseInt(since, 10, 64)
	if err != nil {
		return c.NoContent(400)
	}

	return c.JSON(200, newEpisodes{
		Timestamp: now,
		Episodes:  store.GetEpisodesSince(ts, user.Subscriptions),
	})
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:24,代碼來源:episodes.go

示例6: removeSetting

//
// DELETE /account/settings/:id
//
func removeSetting(c *echo.Context) error {
	id, err := strconv.ParseUint(c.Param("id"), 10, 64)
	if err != nil {
		return c.NoContent(400)
	}

	user := c.Get("user").(*User)
	err = store.RemoveSetting(id, user.ID)
	if err == ErrSettingNotFound {
		return c.String(404, "Setting not found")
	}

	return err
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:17,代碼來源:account.go

示例7: getEpisode

//
// GET /library/episode/:id
//
func getEpisode(c *echo.Context) error {
	id, err := strconv.ParseUint(c.Param("id"), 10, 64)
	if err != nil {
		return c.NoContent(400)
	}

	return c.JSON(200, store.GetEpisode(id))
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:11,代碼來源:episodes.go

示例8: login

//
// POST /account/login
//
func login(c *echo.Context) error {
	if !formContains(c, "username", "password", "uuid", "clientname") {
		return echo.NewHTTPError(400)
	}

	user := store.GetUser(form(c, "username"))
	if user == nil {
		return echo.NewHTTPError(401)
	}

	if correctPassword(user.Password, form(c, "password")) {
		uuid := form(c, "uuid")
		for _, client := range user.Clients {
			if uuid == client.UUID {
				return c.JSON(200, token{client.Token})
			}
		}

		t, err := createToken(32)
		if err != nil {
			return err
		}

		err = store.AddClient(user.ID, &Client{
			Token: t,
			UUID:  uuid,
			Name:  form(c, "clientname"),
		})
		if err != nil {
			return err
		}

		return c.JSON(200, token{t})
	}

	return echo.NewHTTPError(401)
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:40,代碼來源:account.go

示例9: removeLabel

//
// DELETE /library/labels/:id
//
func removeLabel(c *echo.Context) error {
	id, err := strconv.ParseUint(c.Param("id"), 10, 64)
	if err != nil {
		return c.NoContent(400)
	}

	user := c.Get("user").(*User)
	return store.RemoveLabel(id, user.ID)
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:12,代碼來源:labels.go

示例10: updateUser

func updateUser(c *echo.Context) error {
	u := new(user)
	if err := c.Bind(u); err != nil {
		return err
	}
	id, _ := strconv.Atoi(c.Param("id"))
	users[id].Name = u.Name
	return c.JSON(http.StatusOK, users[id])
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:9,代碼來源:server.go

示例11: addEvents

//
// POST /library/events
//
func addEvents(c *echo.Context) error {
	data := form(c, "json")
	if data == "" {
		return c.NoContent(400)
	}

	events := []Event{}
	err := json.Unmarshal([]byte(data), &events)
	if err != nil {
		return c.NoContent(400)
	}

	user := c.Get("user").(*User)
	uuid := c.Get("uuid").(string)
	return store.AddEvents(events, user.ID, uuid)
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:19,代碼來源:events.go

示例12: setSettings

//
// POST /account/settings
//
func setSettings(c *echo.Context) error {
	data := form(c, "json")
	if data == "" {
		return c.NoContent(400)
	}

	settings := []Setting{}
	err := json.Unmarshal([]byte(data), &settings)
	if err != nil {
		return c.NoContent(400)
	}

	user := c.Get("user").(*User)
	uuid := c.Get("uuid").(string)
	return store.SaveSettings(settings, user.ID, uuid)
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:19,代碼來源:account.go

示例13: addCast

//
// POST /library/casts
//
func addCast(c *echo.Context) error {
	user := c.Get("user").(*User)
	url := form(c, "feedurl")
	cast := store.GetCastByURL(url)
	if cast == nil {
		cast = <-crawl.fetch(url)
		if cast == nil {
			return c.String(500, "Could not fetch feed")
		}
	}

	user, err := store.AddSubscription(user.ID, cast.ID)
	if err != nil && err != ErrSubscriptionExists {
		return err
	}

	authCache.set(c.Get("token").(string), user)

	return c.JSON(200, cast)
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:23,代碼來源:casts.go

示例14: updateLabel

//
// PUT /library/labels/:id
//
func updateLabel(c *echo.Context) error {
	id, err := strconv.ParseUint(c.Param("id"), 10, 64)
	if err != nil {
		return c.NoContent(400)
	}

	label := store.GetLabel(id)
	if label == nil {
		return c.String(404, "Label not found")
	}

	if name := form(c, "name"); name != "" {
		label.Name = name
	}
	if content := form(c, "content"); content != "" {
		label.Content = content
	}
	if expanded := form(c, "expanded"); expanded != "" {
		label.Expanded = expanded == "true"
	}

	user := c.Get("user").(*User)
	return store.SaveLabel(label, user.ID)
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:27,代碼來源:labels.go

示例15: renameCast

//
// PUT /library/casts/:id
//
func renameCast(c *echo.Context) error {
	id, err := strconv.ParseUint(c.Param("id"), 10, 64)
	if err != nil {
		return c.NoContent(400)
	}

	cast := store.GetCast(id)
	if cast == nil {
		return c.String(404, "Cast not found")
	}

	prev := cast.Name
	cast.Name = form(c, "name")
	if cast.Name != prev {
		return store.SaveCast(cast)
	}

	return nil
}
開發者ID:Castcloud,項目名稱:castcloud-go-server,代碼行數:22,代碼來源:casts.go


注:本文中的github.com/Castcloud/castcloud-go-server/Godeps/_workspace/src/github.com/labstack/echo.Context類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。