Skip to content

Commit

Permalink
Added new setters
Browse files Browse the repository at this point in the history
  • Loading branch information
mymmrac committed Aug 1, 2023
1 parent fe108f4 commit 691f64c
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 4 deletions.
2 changes: 2 additions & 0 deletions internal/generator/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ var typeStructsSetters = []string{
"KeyboardButton",
"InlineKeyboardButton",
"MenuButtonWebApp",
"KeyboardButtonRequestUser",
"KeyboardButtonRequestChat",

"InlineQueryResultCachedAudio",
"InlineQueryResultCachedDocument",
Expand Down
5 changes: 1 addition & 4 deletions internal/generator/setters.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,7 @@ func writeSetters(file *os.File, setters tgSetters, receiverDefault bool, noPoin

noPointer := contains(noPointerStructs, setter.structType)

convertToPtr := setter.fieldType == "*bool" && setter.structType == "PromoteChatMemberParams" ||
setter.fieldType == "*bool" && setter.structType == "SendPollParams" ||
setter.fieldType == "*string" && setter.structType == "InlineKeyboardButton" ||
setter.fieldType == "*string" && setter.structType == "EditForumTopicParams"
convertToPtr := setter.fieldType == "*bool" || setter.fieldType == "*string"

var s string
if setter.fieldType != "bool" {
Expand Down
56 changes: 56 additions & 0 deletions types_setters.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,62 @@ func (k KeyboardButton) WithWebApp(webApp *WebAppInfo) KeyboardButton {
return k
}

// WithUserIsBot adds user is bot parameter
func (k *KeyboardButtonRequestUser) WithUserIsBot(userIsBot bool) *KeyboardButtonRequestUser {
k.UserIsBot = ToPtr(userIsBot)
return k
}

// WithUserIsPremium adds user is premium parameter
func (k *KeyboardButtonRequestUser) WithUserIsPremium(userIsPremium bool) *KeyboardButtonRequestUser {
k.UserIsPremium = ToPtr(userIsPremium)
return k
}

// WithChatIsChannel adds chat is channel parameter
func (k *KeyboardButtonRequestChat) WithChatIsChannel() *KeyboardButtonRequestChat {
k.ChatIsChannel = true
return k
}

// WithChatIsForum adds chat is forum parameter
func (k *KeyboardButtonRequestChat) WithChatIsForum(chatIsForum bool) *KeyboardButtonRequestChat {
k.ChatIsForum = ToPtr(chatIsForum)
return k
}

// WithChatHasUsername adds chat has username parameter
func (k *KeyboardButtonRequestChat) WithChatHasUsername(chatHasUsername bool) *KeyboardButtonRequestChat {
k.ChatHasUsername = ToPtr(chatHasUsername)
return k
}

// WithChatIsCreated adds chat is created parameter
func (k *KeyboardButtonRequestChat) WithChatIsCreated(chatIsCreated bool) *KeyboardButtonRequestChat {
k.ChatIsCreated = ToPtr(chatIsCreated)
return k
}

// WithUserAdministratorRights adds user administrator rights parameter
func (k *KeyboardButtonRequestChat) WithUserAdministratorRights(userAdministratorRights *ChatAdministratorRights,
) *KeyboardButtonRequestChat {
k.UserAdministratorRights = userAdministratorRights
return k
}

// WithBotAdministratorRights adds bot administrator rights parameter
func (k *KeyboardButtonRequestChat) WithBotAdministratorRights(botAdministratorRights *ChatAdministratorRights,
) *KeyboardButtonRequestChat {
k.BotAdministratorRights = botAdministratorRights
return k
}

// WithBotIsMember adds bot is member parameter
func (k *KeyboardButtonRequestChat) WithBotIsMember(botIsMember bool) *KeyboardButtonRequestChat {
k.BotIsMember = ToPtr(botIsMember)
return k
}

// WithRemoveKeyboard adds remove keyboard parameter
func (r *ReplyKeyboardRemove) WithRemoveKeyboard() *ReplyKeyboardRemove {
r.RemoveKeyboard = true
Expand Down
32 changes: 32 additions & 0 deletions types_setters_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,38 @@ func TestKeyboardButton_Setters(t *testing.T) {
}, k)
}

func TestKeyboardButtonRequestUser_Setters(t *testing.T) {
k := (&KeyboardButtonRequestUser{}).
WithUserIsBot(true).
WithUserIsPremium(true)

assert.Equal(t, &KeyboardButtonRequestUser{
UserIsBot: ToPtr(true),
UserIsPremium: ToPtr(true),
}, k)
}

func TestKeyboardButtonRequestChat_Setters(t *testing.T) {
k := (&KeyboardButtonRequestChat{}).
WithChatIsChannel().
WithChatIsForum(true).
WithChatHasUsername(true).
WithChatIsCreated(true).
WithUserAdministratorRights(&ChatAdministratorRights{IsAnonymous: true}).
WithBotAdministratorRights(&ChatAdministratorRights{IsAnonymous: true}).
WithBotIsMember(true)

assert.Equal(t, &KeyboardButtonRequestChat{
ChatIsChannel: true,
ChatIsForum: ToPtr(true),
ChatHasUsername: ToPtr(true),
ChatIsCreated: ToPtr(true),
UserAdministratorRights: &ChatAdministratorRights{IsAnonymous: true},
BotAdministratorRights: &ChatAdministratorRights{IsAnonymous: true},
BotIsMember: ToPtr(true),
}, k)
}

func TestReplyKeyboardRemove_Setters(t *testing.T) {
r := (&ReplyKeyboardRemove{}).
WithRemoveKeyboard().
Expand Down

0 comments on commit 691f64c

Please sign in to comment.