Updated JSON tags to omit if empty

This commit is contained in:
densestvoid 2020-08-28 22:04:52 -04:00
parent f900b99dac
commit 2ff9a03a8c

156
json.go
View File

@ -8,8 +8,8 @@ import (
// Meta is the error type returned in the GroupMe response. // Meta is the error type returned in the GroupMe response.
// Meant for clients that can't read HTTP status codes // Meant for clients that can't read HTTP status codes
type Meta struct { type Meta struct {
Code HTTPStatusCode `json:"code"` Code HTTPStatusCode `json:"code,omitempty"`
Errors []string `json:"errors"` Errors []string `json:"errors,omitempty"`
} }
// Error returns the code and the error list as a string. // Error returns the code and the error list as a string.
@ -20,35 +20,35 @@ func (m Meta) Error() string {
// Group is a GroupMe group, returned in JSON API responses // Group is a GroupMe group, returned in JSON API responses
type Group struct { type Group struct {
ID ID `json:"id"` ID ID `json:"id,omitempty"`
Name string `json:"name"` Name string `json:"name,omitempty"`
// Type of group (private|public) // Type of group (private|public)
Type string `json:"type"` Type string `json:"type,omitempty"`
Description string `json:"description"` Description string `json:"description,omitempty"`
ImageURL string `json:"image_url"` ImageURL string `json:"image_url,omitempty"`
CreatorUserID ID `json:"creator_user_id"` CreatorUserID ID `json:"creator_user_id,omitempty"`
CreatedAt Timestamp `json:"created_at"` CreatedAt Timestamp `json:"created_at,omitempty"`
UpdatedAt Timestamp `json:"updated_at"` UpdatedAt Timestamp `json:"updated_at,omitempty"`
Members []*Member `json:"members"` Members []*Member `json:"members,omitempty"`
ShareURL string `json:"share_url"` ShareURL string `json:"share_url,omitempty"`
Messages GroupMessages `json:"messages"` Messages GroupMessages `json:"messages,omitempty"`
} }
// GroupMessages is a Group field, only returned in Group JSON API responses // GroupMessages is a Group field, only returned in Group JSON API responses
type GroupMessages struct { type GroupMessages struct {
Count uint `json:"count"` Count uint `json:"count,omitempty"`
LastMessageID ID `json:"last_message_id"` LastMessageID ID `json:"last_message_id,omitempty"`
LastMessageCreatedAt Timestamp `json:"last_message_created_at"` LastMessageCreatedAt Timestamp `json:"last_message_created_at,omitempty"`
Preview MessagePreview `json:"preview"` Preview MessagePreview `json:"preview,omitempty"`
} }
// MessagePreview is a GroupMessages field, only returned in Group JSON API responses. // MessagePreview is a GroupMessages field, only returned in Group JSON API responses.
// Abbreviated form of Message type // Abbreviated form of Message type
type MessagePreview struct { type MessagePreview struct {
Nickname string `json:"nickname"` Nickname string `json:"nickname,omitempty"`
Text string `json:"text"` Text string `json:"text,omitempty"`
ImageURL string `json:"image_url"` ImageURL string `json:"image_url,omitempty"`
Attachments []*Attachment `json:"attachments"` Attachments []*Attachment `json:"attachments,omitempty"`
} }
// GetMemberByUserID gets the group member by their UserID, // GetMemberByUserID gets the group member by their UserID,
@ -81,14 +81,14 @@ func (g Group) String() string {
// Member is a GroupMe group member, returned in JSON API responses // Member is a GroupMe group member, returned in JSON API responses
type Member struct { type Member struct {
ID ID `json:"id"` ID ID `json:"id,omitempty"`
UserID ID `json:"user_id"` UserID ID `json:"user_id,omitempty"`
Nickname string `json:"nickname"` Nickname string `json:"nickname,omitempty"`
Muted bool `json:"muted"` Muted bool `json:"muted,omitempty"`
ImageURL string `json:"image_url"` ImageURL string `json:"image_url,omitempty"`
AutoKicked bool `json:"autokicked"` AutoKicked bool `json:"autokicked,omitempty"`
AppInstalled bool `json:"app_installed"` AppInstalled bool `json:"app_installed,omitempty"`
GUID string `json:"guid"` GUID string `json:"guid,omitempty"`
} }
func (m Member) String() string { func (m Member) String() string {
@ -97,25 +97,25 @@ func (m Member) String() string {
// Message is a GroupMe group message, returned in JSON API responses // Message is a GroupMe group message, returned in JSON API responses
type Message struct { type Message struct {
ID ID `json:"id"` ID ID `json:"id,omitempty"`
SourceGUID string `json:"source_guid"` SourceGUID string `json:"source_guid,omitempty"`
CreatedAt Timestamp `json:"created_at"` CreatedAt Timestamp `json:"created_at,omitempty"`
GroupID ID `json:"group_id"` GroupID ID `json:"group_id,omitempty"`
UserID ID `json:"user_id"` UserID ID `json:"user_id,omitempty"`
BotID ID `json:"bot_id"` BotID ID `json:"bot_id,omitempty"`
SenderID ID `json:"sender_id"` SenderID ID `json:"sender_id,omitempty"`
SenderType SenderType `json:"sender_type"` SenderType SenderType `json:"sender_type,omitempty"`
System bool `json:"system"` System bool `json:"system,omitempty"`
Name string `json:"name"` Name string `json:"name,omitempty"`
RecipientID ID `json:"recipient_id"` RecipientID ID `json:"recipient_id,omitempty"`
ConversationID ID `json:"conversation_id"` ConversationID ID `json:"conversation_id,omitempty"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url,omitempty"`
// Maximum length of 1000 characters // Maximum length of 1000 characters
Text string `json:"text"` Text string `json:"text,omitempty"`
// Must be an image service URL (i.groupme.com) // Must be an image service URL (i.groupme.com)
ImageURL string `json:"image_url"` ImageURL string `json:"image_url,omitempty"`
FavoritedBy []string `json:"favorited_by"` FavoritedBy []string `json:"favorited_by,omitempty"`
Attachments []*Attachment `json:"attachments"` Attachments []*Attachment `json:"attachments,omitempty"`
} }
func (m Message) String() string { func (m Message) String() string {
@ -143,15 +143,15 @@ const (
// Attachment is a GroupMe message attachment, returned in JSON API responses // Attachment is a GroupMe message attachment, returned in JSON API responses
type Attachment struct { type Attachment struct {
Type AttachmentType `json:"type"` Type AttachmentType `json:"type,omitempty"`
Loci [][]int `json:"loci"` Loci [][]int `json:"loci,omitempty"`
UserIDs []ID `json:"user_ids"` UserIDs []ID `json:"user_ids,omitempty"`
URL string `json:"url"` URL string `json:"url,omitempty"`
Name string `json:"name"` Name string `json:"name,omitempty"`
Latitude string `json:"lat"` Latitude string `json:"lat,omitempty"`
Longitude string `json:"lng"` Longitude string `json:"lng,omitempty"`
Placeholder string `json:"placeholder"` Placeholder string `json:"placeholder,omitempty"`
Charmap [][]int `json:"charmap"` Charmap [][]int `json:"charmap,omitempty"`
} }
func (a Attachment) String() string { func (a Attachment) String() string {
@ -160,15 +160,15 @@ func (a Attachment) String() string {
// User is a GroupMe user, returned in JSON API responses // User is a GroupMe user, returned in JSON API responses
type User struct { type User struct {
ID ID `json:"id"` ID ID `json:"id,omitempty"`
PhoneNumber PhoneNumber `json:"phone_number"` PhoneNumber PhoneNumber `json:"phone_number,omitempty"`
ImageURL string `json:"image_url"` ImageURL string `json:"image_url,omitempty"`
Name string `json:"name"` Name string `json:"name,omitempty"`
CreatedAt Timestamp `json:"created_at"` CreatedAt Timestamp `json:"created_at,omitempty"`
UpdatedAt Timestamp `json:"updated_at"` UpdatedAt Timestamp `json:"updated_at,omitempty"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url,omitempty"`
Email string `json:"email"` Email string `json:"email,omitempty"`
SMS bool `json:"sms"` SMS bool `json:"sms,omitempty"`
} }
func (u User) String() string { func (u User) String() string {
@ -178,11 +178,11 @@ func (u User) String() string {
// Chat is a GroupMe direct message conversation between two users, // Chat is a GroupMe direct message conversation between two users,
// returned in JSON API responses // returned in JSON API responses
type Chat struct { type Chat struct {
CreatedAt Timestamp `json:"created_at"` CreatedAt Timestamp `json:"created_at,omitempty"`
UpdatedAt Timestamp `json:"updated_at"` UpdatedAt Timestamp `json:"updated_at,omitempty"`
LastMessage *Message `json:"last_message"` LastMessage *Message `json:"last_message,omitempty"`
MessagesCount int `json:"messages_count"` MessagesCount int `json:"messages_count,omitempty"`
OtherUser User `json:"other_user"` OtherUser User `json:"other_user,omitempty"`
} }
func (c Chat) String() string { func (c Chat) String() string {
@ -190,12 +190,12 @@ func (c Chat) String() string {
} }
type Bot struct { type Bot struct {
BotID ID `json:"bot_id"` BotID ID `json:"bot_id,omitempty"`
GroupID ID `json:"group_id"` GroupID ID `json:"group_id,omitempty"`
Name string `json:"name"` Name string `json:"name,omitempty"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url,omitempty"`
CallbackURL string `json:"callback_url"` CallbackURL string `json:"callback_url,omitempty"`
DMNotification bool `json:"dm_notification"` DMNotification bool `json:"dm_notification,omitempty"`
} }
func (b Bot) String() string { func (b Bot) String() string {
@ -203,9 +203,9 @@ func (b Bot) String() string {
} }
type Block struct { type Block struct {
UserID ID `json:"user_id"` UserID ID `json:"user_id,omitempty"`
BlockedUserID ID `json:"blocked_user_id"` BlockedUserID ID `json:"blocked_user_id,omitempty"`
CreatedAT Timestamp `json:"created_at"` CreatedAT Timestamp `json:"created_at,omitempty"`
} }
func (b Block) String() string { func (b Block) String() string {