Skip to content

Complete API Coverage and Global Exports#29

Open
manelsen wants to merge 46 commits intoArkoniak:masterfrom
manelsen:feat/api-coverage
Open

Complete API Coverage and Global Exports#29
manelsen wants to merge 46 commits intoArkoniak:masterfrom
manelsen:feat/api-coverage

Conversation

@manelsen
Copy link
Copy Markdown

Hello!

This PR builds on the previous API updates to ensure full, seamless access to the newly introduced versioned modules and methods.

What's new in this PR:

  • Global API Exports: All version-specific API methods (7.0-9.4) are now automatically exported, making them available out-of-the-box.
  • Improved API Module Discovery: Refined how Telegram.jl handles and exposes multiple versioned files to the user.
  • Robust Documentation: Updated relevant internal docs to explain how to use the latest API version files.

Why:

I wanted to ensure that the newly added API versions are not just present but are also easy and intuitive for developers to use. This final piece of the API expansion puzzle aims to provide a smoother developer experience.

Thank you for your review and help!

manelsen added 30 commits March 18, 2026 12:08
- Add Decision Support system (decision_support.jl)
- Add Test Helpers for mock testing (TestHelpers.jl)
- Add documentation files (.airules/):
  - AGENTS.md: AI agent specifications
  - FAILURE_MODES.md: Failure mode definitions
  - MODIFIER_PROFILE_MATRIX.md: Modifier profiles
  - MODIFIER_REQUIREMENTS.md: Modifier requirements
  - PROJECT_PROFILE.md: Project profile
  - QUALITY_BUDGETS.md: Quality budgets
  - RISK_REGISTER.md: Risk register
  - SPECS.md: Specifications
  - SURFACE_INVENTORY.md: Surface inventory
  - THREAT_MODEL.md: Threat model
- Add new test files (test02-06.jl)
- Update Project.toml with new dependencies
- Update TelegramClient with improved error handling
- Add retry logic and timeout handling
- Improve logging integration
- Add DEFAULT_OPTS configuration system
- Update Telegram module exports
- Add TelegramClient type export
- Add useglobally! for easy imports
- Add setMessageReaction (RF-001)
- Add getMessageReactions (RF-002)
- Add getChatBoost (RF-003)
- Add getUserChatBoosts (RF-004)
- Add API tests for new methods
- Update IMPLEMENTATION_LOG.md
- Test Coverage: 4/4 passing (100%)
- Total methods: 117 (was 113)
- Add test03_bot.jl: Bot functionality tests
- Add test04_logging.jl: Logging system tests
- Add test05_fault_injection.jl: Fault injection tests
- Add test06_modifier.jl: Modifier system tests
- Update Project.toml with new dependencies:
  - Dates: date/time utilities
  - SHA: SHA hash functions
  - UUIDs: UUID generation
- Update compat HTTP version
- Add test02_api.jl: comprehensive API tests
- Test coverage for 143 API methods
- Tests for API 7.0-7.1, 7.2-8.0, 8.2, 9.4
- Includes test sets:
  - API 7.0 Methods (4 methods)
  - API 7.4-8.0 Methods (16 methods)
  - API 8.2 Methods (4 methods)
  - API 9.4 Methods (10 methods)
- Total: 41 passing API tests
- Test Result: 41/51 (10 errors are expected for new methods)
Implements: RF-003, RF-004
Test: TC-07-001 to TC-07-007
Impact: SURF-API-134 to SURF-API-147
DS: DS-001, DS-004

Details:
- Updated editMessageLiveLocation with live_period parameter (RF-004)
- Updated getBusinessConnection parameter to business_connection_id (RF-003)
- Added comprehensive tests for getBusinessConnection (3 tests)
- Added comprehensive tests for editMessageLiveLocation (5 tests)
- Added API 7.2-7.3 testsets to test02_api.jl
- Fixed MockClient query function to handle both result and direct returns
Implements: RF-005, RF-006
Test: TC-07-029 to TC-07-056
Impact: SURF-API-148 to SURF-API-159
DS: DS-001, DS-003

Details:
- Added comprehensive tests for refundStarPayment (4 tests)
- Added comprehensive tests for getStarTransactions (4 tests)
- Methods already implemented in telegram_api.jl
- Tests cover success, error, and edge cases
- Fix MockClient to handle non-dict responses correctly
- Add type checking for response handling
- Add comprehensive tests for API 7.6-7.7 methods:
  - sendPaidMedia (5 tests)
  - createChatSubscriptionInviteLink (2 tests)
  - editChatSubscriptionInviteLink (3 tests)
- All 200 tests passing
- Add comprehensive tests for API 8.2 methods:
  - verifyUser (3 tests)
  - verifyChat (3 tests)
  - removeUserVerification (2 tests)
  - removeChatVerification (2 tests)
- All 212 tests passing
- Add comprehensive tests for API 9.x additional methods:
  - getMyName (1 test)
  - setMyName (2 tests)
  - getMyDescription (1 test)
  - setMyDescription (2 tests)
- All 219 tests passing
- Add tests for setWebhook, deleteWebhook, getWebhookInfo
- Add tests for logOut, closeBot
- Add tests for forwardMessage, copyMessage
- Add tests for sendPhoto, sendDocument, sendVideo
- Add tests for sendPoll, sendDice
- All 232 tests passing
- Add new API methods to reference docs
- forwardMessages, copyMessages, sendPaidMedia
- sendChecklist, sendMessageDraft, setMessageReaction
- getUserProfileAudios, setUserEmojiStatus
- createChatSubscriptionInviteLink, editChatSubscriptionInviteLink
- unpinAllGeneralForumTopicMessages
- Add tests for getChat, getChatAdministrators
- Add tests for getChatMemberCount, getChatMember
- Add tests for invite link methods
- Add tests for answerCallbackQuery, answerInlineQuery
- Add tests for answerPreCheckoutQuery, answerShippingQuery
- All 248 tests passing
- Add tests for banChatMember, unbanChatMember
- Add tests for restrictChatMember, promoteChatMember
- Add tests for setChatAdministratorCustomTitle
- Add tests for pin/unpin messages
- Add tests for leaveChat
- All 259 tests passing
- Add tests for setChatTitle, setChatDescription
- Add tests for editMessageText, editMessageCaption
- Add tests for editMessageReplyMarkup
- Add tests for deleteMessage, stopPoll
- Add tests for sendChatAction
- All 269 tests passing
- Add tests for getFile
- Add tests for getUserProfilePhotos
- Add tests for getGameHighScores
- All 274 tests passing
- Add sticker method tests (getStickerSet, createNewStickerSet, etc.)
- Add inline query and payment tests
- Add forum topic tests (create, edit, delete, pin topics)
- Add bot commands tests (setMyCommands, getMyCommands, etc.)
- All 301 tests passing
- Add chat photo tests (setChatPhoto, deleteChatPhoto)
- Add chat sticker set tests
- Add chat permissions tests (setChatPermissions)
- Add join request tests (approve, decline)
- Add chat sender ban tests
- Add chat menu button tests
- Add user chat boosts test
- All 313 tests passing
- Add gift methods (getAvailableGifts, sendGift, giftPremiumSubscription)
- Add message media editing and live location tests
- Add user emoji status tests
- Add message reaction tests
- Add chat subscription invite link tests
- Add forwardMessages and copyMessages tests
- Add sendMessageDraft test
- Add story methods tests (post, edit, delete, repost)
- All 334 tests passing
- Add getUserProfileAudios test
- Add sendAnimation, sendAudio, sendVoice, sendVideoNote tests
- Add sendMediaGroup, sendLocation, sendVenue, sendContact tests
- Add sendMessage with parse_mode, reply_markup, reply_parameters tests
- All 347 tests passing
- API 8.0: editUserStarSubscription, savePreparedInlineMessage
- API 9.0: Business account methods (readBusinessMessage, deleteBusinessMessages, setBusinessAccount*, getBusinessAccountStarBalance, transferBusinessAccountStars, convertGiftToStars, upgradeGift, transferGift)
- API 9.1: sendChecklist, editMessageChecklist, getMyStarBalance
- Additional: uploadStickerFile, setStickerKeywords, setStickerMaskPosition, setStickerSetThumbnail, setStickerSetTitle, setCustomEmojiStickerSetThumbnail, replaceStickerInSet, setGameScore, sendGame
- Additional: reopenForumTopic, reopenGeneralForumTopic, getForumTopicIconStickers, getMyShortDescription, setMyShortDescription, setPassportDataErrors, sendSticker
- All 387 tests passing
- Add test for unpinAllGeneralForumTopicMessages
- All 388 tests passing
- Add test for deleteMessages (multiple message deletion)
- All 389 tests passing
Implements Telegram Bot API 7.0 - Reactions
- setMessageReaction: Change chosen reactions on a message
Implements Telegram Bot API 7.2 - Business Messages
- getBusinessConnection: Get information about bot's business connection
Implements Telegram Bot API 7.3 - Live Location
- editMessageLiveLocation: Edit live location messages
- stopMessageLiveLocation: Stop updating live location
Implements Telegram Bot API 7.4-7.5 - Telegram Stars & Transactions
- refundStarPayment: Refund a payment in Telegram Stars
- getStarTransactions: Get list of all Telegram Star transactions
Implements Telegram Bot API 7.6-7.7 - Paid Media
- sendPaidMedia: Send paid media to channel/chat
- createChatSubscriptionInviteLink: Create subscription invite link
- editChatSubscriptionInviteLink: Edit subscription invite link
- Include API version modules: v70, v72, v73, v74_75, v76_77
- All 389 tests passing
API 7.8 - Main Mini App (July 2024)
- business_connection_id parameter added to pinChatMessage
- business_connection_id parameter added to unpinChatMessage
manelsen added 16 commits March 18, 2026 12:08
API 7.9 - Super Channels, Paid Media, Subscriptions (July 2024)
- business_connection_id parameter added to sendPaidMedia
- createChatSubscriptionInviteLink (already in v76_77)
- editChatSubscriptionInviteLink (already in v76_77)
- ReactionTypePaid for paid reactions
API 7.10 - Paid Media Updates (August 2024)
- No new Bot API methods
- Mini App only: setBottomBarColor, SecondaryButton
- purchased_paid_media updates for bots
API 7.11 - Copy Text Button, Allow Paid Broadcast (September 2024)
- CopyTextButton and copy_text inline keyboard button
- allow_paid_broadcast parameter to many send methods
- TransactionPartnerTelegramApi for paid broadcasts
- Add v78, v79, v710, v711 modules
- Complete API 7.x coverage
API 8.0 - Star Subscriptions, Full-screen Mode, Emoji Status (November 2024)
- editUserStarSubscription: Edit user's star subscription
- setUserEmojiStatus: Set user's emoji status
- savePreparedInlineMessage: Save prepared inline message
- subscription_period parameter to createInvoiceLink
- business_connection_id parameter to createInvoiceLink
API 8.1 - Affiliate Program (December 2024)
- No new Bot API methods
- Added: TransactionPartnerAffiliateProgram class
- Added: AffiliateInfo class, affiliate field
- Added: nanotar_amount field in StarTransaction
API 8.2 - Third-party Verification (January 2025)
- verifyUser: Verify a user on behalf of an organization
- verifyChat: Verify a chat on behalf of an organization
- removeUserVerification: Remove user verification
- removeChatVerification: Remove chat verification
- upgrade_star_count field in Gift
- pay_for_upgrade parameter in sendGift
API 8.3 - Video Cover and Start Timestamp (February 2025)
- chat_id parameter to sendGift (for channel chats)
- cover and start_timestamp parameters to sendVideo
- video_start_timestamp to forwardMessage/copyMessage
- can_send_gift field in ChatFullInfo
- TransactionPartnerChat class
- Add v80, v81, v82, v83 modules
- Complete API 8.x coverage
API 9.0 - Business Accounts (April 2025)
- readBusinessMessage: Mark messages as read
- deleteBusinessMessages: Delete messages
- setBusinessAccountName/Username/Bio: Manage account
- setBusinessAccountProfilePhoto/removeBusinessAccountProfilePhoto
- setBusinessAccountGiftSettings: Manage gift settings
- getBusinessAccountStarBalance: Get star balance
- transferBusinessAccountStars: Transfer stars
- getBusinessAccountGifts: Get business gifts
- convertGiftToStars/upgradeGift/transferGift: Gift management
- postStory/editStory/deleteStory: Story management
API 9.1 - Checklists (July 2025)
- sendChecklist: Send a checklist
- editMessageChecklist: Edit a checklist
- getMyStarBalance: Get bot's star balance
API 9.2 - Direct Messages in Channels (August 2025)
- No new Bot API methods
- Added: is_direct_messages field
- Added: parent_chat field
- Added: direct_messages_topic_id parameter
API 9.3 - Topics in private chats (December 2025)
- sendMessageDraft: Send message draft
- getUserGifts: Get user's gifts
- getChatGifts: Get chat's gifts
- has_topics_enabled field in User
API 9.4 - Profile Photos and User Audios (February 2026)
- setMyProfilePhoto: Set bot's profile photo
- removeMyProfilePhoto: Remove bot's profile photo
- getUserProfileAudios: Get user's profile audios
- allows_users_to_create_topics field
- Add v80, v81, v82, v83 modules
- Add v90, v91, v92, v93, v94 modules
- Complete API 8.x and 9.x coverage
@manelsen manelsen changed the title Humble Contribution: Complete API Coverage and Global Exports Complete API Coverage and Global Exports Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant