本文整理汇总了Golang中github.com/gin-gonic/gin.Context.JSON方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.JSON方法的具体用法?Golang Context.JSON怎么用?Golang Context.JSON使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gin-gonic/gin.Context
的用法示例。
在下文中一共展示了Context.JSON方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: sendLoginToken
func (u *AccountHandler) sendLoginToken(c *gin.Context, player *ge.PlayerStruct) {
if token, err := u.createLoginToken(player); err != nil {
c.AbortWithError(http.StatusInternalServerError, err)
} else {
c.JSON(http.StatusOK, gin.H{"Token": token})
}
}
示例2: ProfileToken
// ProfileToken displays the users token.
func ProfileToken(c *gin.Context) {
record := session.Current(c)
token := token.New(token.UserToken, record.Username)
result, err := token.SignUnlimited(record.Hash)
if err != nil {
logrus.Warnf("Failed to generate token. %s", err)
c.JSON(
http.StatusInternalServerError,
gin.H{
"status": http.StatusInternalServerError,
"message": "Failed to generate token",
},
)
c.Abort()
return
}
c.JSON(
http.StatusOK,
result,
)
}
示例3: UserOrgIndex
// UserOrgIndex retrieves all orgs related to a user.
func UserOrgIndex(c *gin.Context) {
records, err := store.GetUserOrgs(
c,
&model.UserOrgParams{
User: c.Param("user"),
},
)
if err != nil {
logrus.Warnf("Failed to fetch user orgs. %s", err)
c.JSON(
http.StatusInternalServerError,
gin.H{
"status": http.StatusInternalServerError,
"message": "Failed to fetch orgs",
},
)
c.Abort()
return
}
c.JSON(
http.StatusOK,
records,
)
}
示例4: addOrRemoveTag
func (m *MessagesController) addOrRemoveTag(ctx *gin.Context, messageIn *messageJSON, message models.Message, user models.User) {
if !user.IsSystem {
ctx.JSON(http.StatusForbidden, gin.H{"error": "Invalid Action for non-system user"})
return
}
if messageIn.Text == "" {
ctx.AbortWithError(http.StatusBadRequest, errors.New("Invalid Text for tag"))
return
}
if messageIn.Action == "tag" {
err := message.AddTag(messageIn.Text)
if err != nil {
log.Errorf("Error while adding a tag to a message %s", err)
ctx.AbortWithError(http.StatusInternalServerError, err)
return
}
} else if messageIn.Action == "untag" {
err := message.RemoveTag(messageIn.Text)
if err != nil {
log.Errorf("Error while remove a tag from a message %s", err)
ctx.AbortWithError(http.StatusInternalServerError, err)
return
}
} else {
ctx.AbortWithError(http.StatusBadRequest, errors.New("Invalid action : "+messageIn.Action))
return
}
go models.WSMessage(&models.WSMessageJSON{Action: messageIn.Action, Username: user.Username, Message: message})
ctx.JSON(http.StatusCreated, "")
}
示例5: GetUserInstance
func GetUserInstance(c *gin.Context) {
db := c.MustGet("db").(gorm.DB)
consumer := c.MustGet("consumer").(models.User)
id := c.Params.ByName("id")
var user models.User
db.First(&user, id)
if user.Username == "" {
response := make(map[string]string)
response["error"] = "Resource not found."
c.JSON(404, response)
} else {
if user.Id != consumer.Id {
if user.Gravatar == "" {
user.Gravatar = user.Email
}
user.Email = ""
}
user.Password = ""
c.JSON(200, user)
}
}
示例6: Get
func (page *Tenant) Get(c *gin.Context) {
fmt.Println("Tenant.Get")
tenants := make([]model.Tenant, 0)
idstr := c.Query("id")
//id:=c.Param("id")
//fmt.Println("Params:",idstr)
id, err := strconv.Atoi(idstr)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"status": "Params err"})
}
where := ""
if id > 0 {
where = "Id=" + idstr
} else {
where = "Id>0"
}
err = vars.Db.Where(where).Find(&tenants)
if err != nil {
log.Println(err)
}
//fmt.Println(tenants)
// tenant:=model.Tenant{Id:10,Name:"hefju520",Phone:"13929961332",Desc:"测试返回json"}
c.JSON(http.StatusOK, tenants)
}
示例7: likeOrUnlike
func (m *MessagesController) likeOrUnlike(ctx *gin.Context, action string, message models.Message, topic models.Topic, user models.User) {
isReadAccess := topic.IsUserReadAccess(user)
if !isReadAccess {
ctx.AbortWithError(http.StatusInternalServerError, errors.New("No Read Access to topic "+message.Topics[0]))
return
}
info := ""
if action == "like" {
err := message.Like(user)
if err != nil {
log.Errorf("Error while like a message %s", err)
ctx.AbortWithError(http.StatusInternalServerError, err)
return
}
info = "like added"
} else if action == "unlike" {
err := message.Unlike(user)
if err != nil {
log.Errorf("Error while like a message %s", err)
ctx.AbortWithError(http.StatusInternalServerError, err)
return
}
info = "like removed"
} else {
ctx.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("Invalid action : " + action)})
return
}
go models.WSMessage(&models.WSMessageJSON{Action: action, Username: user.Username, Message: message})
ctx.JSON(http.StatusCreated, gin.H{"info": info})
}
示例8: AddTemplate
func AddTemplate(c *gin.Context) {
project := c.MustGet("project").(models.Project)
var template models.Template
if err := c.Bind(&template); err != nil {
return
}
res, err := database.Mysql.Exec("insert into project__template set ssh_key_id=?, project_id=?, inventory_id=?, repository_id=?, environment_id=?, playbook=?, arguments=?, override_args=?", template.SshKeyID, project.ID, template.InventoryID, template.RepositoryID, template.EnvironmentID, template.Playbook, template.Arguments, template.OverrideArguments)
if err != nil {
panic(err)
}
insertID, err := res.LastInsertId()
if err != nil {
panic(err)
}
template.ID = int(insertID)
objType := "template"
desc := "Template ID " + strconv.Itoa(template.ID) + " created"
if err := (models.Event{
ProjectID: &project.ID,
ObjectType: &objType,
ObjectID: &template.ID,
Description: &desc,
}.Insert()); err != nil {
panic(err)
}
c.JSON(201, template)
}
示例9: apiReposCreate
// POST /api/repos
func apiReposCreate(c *gin.Context) {
var b struct {
Name string `binding:"required"`
Comment string
DefaultDistribution string
DefaultComponent string
}
if !c.Bind(&b) {
return
}
repo := deb.NewLocalRepo(b.Name, b.Comment)
repo.DefaultComponent = b.DefaultComponent
repo.DefaultDistribution = b.DefaultDistribution
collection := context.CollectionFactory().LocalRepoCollection()
collection.Lock()
defer collection.Unlock()
err := context.CollectionFactory().LocalRepoCollection().Add(repo)
if err != nil {
c.Fail(400, err)
return
}
c.JSON(201, repo)
}
示例10: QueryData
func QueryData(c *gin.Context) {
result := QDataGet(c)
c.JSON(200, gin.H{
"status": "ok",
"data": result,
})
}
示例11: usersDetail
func usersDetail(c *gin.Context) {
user_id := c.Params.ByName("id")
a_id, _ := strconv.Atoi(user_id)
user := getuser(a_id)
content := gin.H{"Name": user.Name, "content": user.Address}
c.JSON(200, content)
}
示例12: GetUsers
func GetUsers(c *gin.Context) {
m := Msg{
Message: "This is GetUsers",
Status: 200,
}
c.JSON(200, m)
}
示例13: PostUser
func PostUser(c *gin.Context) {
var user User
c.Bind(&user)
if user.Firstname != "" && user.Lastname != "" {
db, _ := sql.Open("postgres", "user=cshutchinson dbname=godb sslmode=disable")
// checkErr(err)
var lastInsertId int64
_ = db.QueryRow("INSERT INTO users(firstname,lastname, id) VALUES($1,$2, Default) returning id;", user.Firstname, user.Lastname).Scan(&lastInsertId)
content := &User{
Id: lastInsertId,
Firstname: user.Firstname,
Lastname: user.Lastname,
}
c.JSON(201, content)
// if insert, _ := dbmap.Exec(`INSERT INTO users (firstname, lastname) VALUES (?, ?) returning id;`, user.Firstname, user.Lastname).Scan(&lastInsertId); insert != nil {
// user_id, err := insert.LastInsertId()
// if err == nil {
// content := &User{
// Id: user_id,
// Firstname: user.Firstname,
// Lastname: user.Lastname,
// }
// c.JSON(201, content)
// } else {
// checkErr(err, "Insert failed")
// }
// }
} else {
c.JSON(422, gin.H{"error": "fields are empty"})
}
// curl -i -X POST -H "Content-Type: application/json" -d "{ \"firstname\": \"Thea\", \"lastname\": \"Queen\" }" http://localhost:8080/api/v1/users
}
示例14: gettingAll
func gettingAll(c *gin.Context) {
//serve http://localhost:8080/allGet
c.JSON(200, Dogs)
}
示例15: HandleQuery
func HandleQuery(query string, c *gin.Context) {
rawQuery, err := base64.StdEncoding.DecodeString(query)
if err == nil {
query = string(rawQuery)
}
result, err := DB(c).Query(query)
if err != nil {
c.JSON(400, NewError(err))
return
}
format := getQueryParam(c, "format")
filename := getQueryParam(c, "filename")
if filename == "" {
filename = fmt.Sprintf("pgweb-%v.%v", time.Now().Unix(), format)
}
if format != "" {
c.Writer.Header().Set("Content-disposition", "attachment;filename="+filename)
}
switch format {
case "csv":
c.Data(200, "text/csv", result.CSV())
case "json":
c.Data(200, "applicaiton/json", result.JSON())
case "xml":
c.XML(200, result)
default:
c.JSON(200, result)
}
}