本文整理匯總了Golang中github.com/bbhmakerlab/openinnovation/response.ClientError函數的典型用法代碼示例。如果您正苦於以下問題:Golang ClientError函數的具體用法?Golang ClientError怎麽用?Golang ClientError使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了ClientError函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: GetUser
func GetUser(w http.ResponseWriter, r *http.Request) {
userIDStr := r.FormValue("userID")
if userIDStr == "me" {
response.OK(w, store.CurrentUser(r))
return
}
var parser store.Parser
userID := parser.Int(userIDStr)
if parser.Err != nil {
response.ClientError(w, http.StatusBadRequest)
return
}
user := context.Get(r, "user").(store.User)
otherUser, err := store.GetUserWithParams(userID, store.GetUserParams{user.ID()})
if err != nil {
response.ServerError(w, err)
return
}
if otherUser == nil {
response.ClientError(w, http.StatusNotFound)
return
}
response.OK(w, otherUser)
}
示例2: RemoveMember
func RemoveMember(w http.ResponseWriter, r *http.Request) {
var parser store.Parser
projectID := parser.Int(r.FormValue("projectID"))
userID := parser.Int(r.FormValue("userID"))
if parser.Err != nil {
response.ClientError(w, http.StatusBadRequest)
return
}
user := context.Get(r, "user").(store.User)
if user.ID() != userID {
response.ClientError(w, http.StatusForbidden)
return
}
if exists, err := store.MemberExists(projectID, userID); err != nil {
response.ServerError(w, err)
return
} else if !exists {
response.OK(w, nil)
return
}
if err := store.RemoveMember(projectID, userID); err != nil {
response.ServerError(w, err)
return
}
response.OK(w, nil)
}
示例3: UpdateMilestone
func UpdateMilestone(w http.ResponseWriter, r *http.Request) {
var parser store.Parser
projectID := parser.Int(r.FormValue("projectID"))
milestoneID := parser.Int(r.FormValue("milestoneID"))
date := parser.Time(r.FormValue("date"))
if parser.Err != nil {
response.ClientError(w, http.StatusBadRequest)
return
}
user := context.Get(r, "user").(store.User)
if !user.IsAuthor(projectID) {
response.ClientError(w, http.StatusForbidden)
return
}
title := r.FormValue("title")
description := r.FormValue("description")
if err := store.UpdateMilestone(store.UpdateMilestoneParams{
MilestoneID: milestoneID,
Title: title,
Description: description,
Date: date,
}); err != nil {
response.ServerError(w, err)
return
}
response.OK(w, nil)
}
示例4: adminProject
//
// /api/admin/project
//
// POST: create a new project
// PUT: update an existing project
// GET: get a project's information
//
func adminProject(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "POST":
switch r.FormValue("type") {
case "setFeaturedProject":
SetFeaturedProject(w, r)
case "unsetFeaturedProject":
UnsetFeaturedProject(w, r)
default:
response.ClientError(w, http.StatusBadRequest)
}
default:
response.ClientError(w, http.StatusMethodNotAllowed)
}
}
示例5: PostChat
func PostChat(w http.ResponseWriter, r *http.Request) {
var parser store.Parser
userID := parser.Int(r.FormValue("userID"))
channelID := parser.Int(r.FormValue("channelID"))
if parser.Err != nil {
response.ClientError(w, http.StatusBadRequest)
return
}
chatParams := store.PostChatParams{
UserID: userID,
ChannelID: channelID,
ChannelType: r.FormValue("channelType"),
Text: r.FormValue("text"),
}
id, err := store.PostChat(chatParams)
if err != nil {
response.ServerError(w, err)
return
}
if err = store.NotifyChat(store.NotifyChatParams{id, chatParams}); err != nil {
debug.Warn(err)
return
}
response.OK(w, id)
}
示例6: task
//
// /task
//
func task(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "GET":
switch r.FormValue("type") {
case "project":
GetTasks(w, r)
case "latest":
LatestTasks(w, r)
case "personalized":
PersonalizedTasks(w, r)
default:
GetTask(w, r)
}
case "POST":
CreateTask(w, r)
case "PUT":
switch r.FormValue("type") {
case "toggleStatus":
ToggleTaskStatus(w, r)
default:
UpdateTask(w, r)
}
case "DELETE":
DeleteTask(w, r)
default:
response.ClientError(w, http.StatusMethodNotAllowed)
}
}
示例7: SetFeaturedProject
func SetFeaturedProject(w http.ResponseWriter, r *http.Request) {
var parser store.Parser
const existSQL = `
SELECT COUNT(*) FROM featured_project
WHERE project_id = $1`
projectID := parser.Int(r.FormValue("projectID"))
if parser.Err != nil {
response.ClientError(w, http.StatusBadRequest)
return
}
if exists, err := store.Exists(existSQL, projectID); err != nil {
response.ServerError(w, err)
return
} else if exists {
response.OK(w, nil)
return
}
if err := store.SetFeaturedProject(projectID); err != nil {
response.ServerError(w, err)
}
response.OK(w, nil)
}
示例8: GetProject
func GetProject(w http.ResponseWriter, r *http.Request) {
var parser store.Parser
projectID := parser.Int(r.FormValue("projectID"))
if parser.Err != nil {
response.ClientError(w, http.StatusBadRequest)
return
}
p, err := store.GetProject(projectID)
if err != nil {
response.ServerError(w, err)
return
}
if p.Author, err = store.GetUser(p.AuthorID); err != nil {
response.ServerError(w, err)
return
}
user := context.Get(r, "user").(store.User)
p.IsMember = store.IsMember(projectID, user.ID())
response.OK(w, p)
}
示例9: GetFriends
func GetFriends(w http.ResponseWriter, r *http.Request) {
var parser store.Parser
userID := parser.Int(r.FormValue("userID"))
if parser.Err != nil {
response.ClientError(w, http.StatusBadRequest)
return
}
users, err := store.GetFriends(userID)
if err != nil {
response.ServerError(w, err)
return
}
for i := range users {
if _, ok := h.connections[users[i].ID()]; ok {
users[i].SetStatus("Online")
} else {
users[i].SetStatus("Offline")
}
}
response.OK(w, users)
}
示例10: UpdateTask
func UpdateTask(w http.ResponseWriter, r *http.Request) {
var parser store.Parser
projectID := parser.Int(r.FormValue("projectID"))
if parser.Err != nil {
response.ServerError(w, parser.Err)
return
}
user := context.Get(r, "user").(store.User)
if !user.IsMember(projectID) {
response.ClientError(w, http.StatusForbidden)
return
}
var taskID int64
if err := store.UpdateTask(store.UpdateTaskParams{
TaskID: r.FormValue("taskID"),
Title: r.FormValue("title"),
Description: r.FormValue("description"),
Tags: r.Form["tags"],
StartDate: r.FormValue("startDate"),
EndDate: r.FormValue("endDate"),
}); err != nil {
response.ServerError(w, err)
return
}
response.OK(w, taskID)
}
示例11: GetChats
func GetChats(w http.ResponseWriter, r *http.Request) {
if err := r.ParseForm(); err != nil {
response.ServerError(w, err)
return
}
var parser store.Parser
var startID int64
var count int64 = 10
if v, ok := r.Form["count"]; ok {
count = parser.Int(v[0])
}
if v, ok := r.Form["startID"]; ok {
startID = parser.Int(v[0])
}
channelID := parser.Int(r.FormValue("channelID"))
if parser.Err != nil {
response.ClientError(w, http.StatusBadRequest)
return
}
channelType := r.FormValue("channelType")
user := context.Get(r, "user").(store.User)
chats, err := store.GetChats(user.ID(), channelID, channelType, startID, count)
if err != nil {
response.ServerError(w, err)
return
}
response.OK(w, chats)
}
示例12: logout
//
// /logout
//
func logout(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "POST":
session.Clear(w, r)
response.OK(w, "Successfully logged out.")
default:
response.ClientError(w, http.StatusMethodNotAllowed)
}
}
示例13: apiMiddleware
// middleware that restricts access to users only
func apiMiddleware(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
user := store.CurrentUser(r)
if user != nil && user.Exists() {
context.Set(r, "user", user)
next(w, r)
} else {
response.ClientError(w, http.StatusForbidden)
}
}
示例14: login
//
// /login
//
func login(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "POST":
Login(w, r)
case "GET":
response.OK(w, store.CurrentUser(r))
default:
response.ClientError(w, http.StatusMethodNotAllowed)
}
}
示例15: chat
//
// /chat
//
func chat(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "GET":
GetChats(w, r)
case "POST":
PostChat(w, r)
default:
response.ClientError(w, http.StatusMethodNotAllowed)
}
}