refactor(meeting): meeting_room execute() Value→typed Response (#349)#411
Merged
Conversation
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_4a8d88a4-86ec-4fa6-9116-6ec6259d127f) |
foxzool
force-pushed
the
refactor/issue-349-meeting-room-typed
branch
from
July 10, 2026 04:47
3760e5e to
0e525b4
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_3e3246e9-6909-4691-9d60-f9e2dab3b72b) |
…349) Replace all 17 meeting_room leaf execute() return types with typed Response structs aligned to Feishu historic-version Response body examples. Empty-data write APIs (update/delete/instance reply) check is_success and default when data is absent. BREAKING for v0.18.
Official field table defines ErrorEventUids[] as {uid, original_time,
error_msg}; Vec<String> would fail when the list is non-empty. Also
complete SummaryVchat with icon_type/description.
foxzool
force-pushed
the
refactor/issue-349-meeting-room-typed
branch
from
July 10, 2026 05:13
0e525b4 to
3076f43
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_2f0af098-c1f2-4f50-a537-a19f6307f6a8) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
meeting_roomleafexecute()/execute_with_options()return types fromSDKResult<serde_json::Value>to typed Response structs (Closes [refactor] meeting: meeting_room 子树 execute() Value→typed 接线(287 行 typed 模型已就绪) #349).is_successand default whendatais absent.ErrorEventUidsas object list (uid/original_time/error_msg) and completeSummaryVchatfields.BREAKING (v0.18): callers must use typed fields instead of
resp["field"]. Request bodies remainserde_json::Value.Test plan
cargo test -p openlark-meeting --features meeting-room --lib(meeting_room + full lib suite)cargo clippy -p openlark-meeting --features full --all-targets -- -D warningscargo fmtNote
High Risk
v0.18 breaking change across all meeting_room execute return types forces every consumer to migrate off JSON indexing; response schema alignment may surface previously masked shape mismatches at compile or runtime.
Overview
Breaking (v0.18): All 17 historic
meeting_roomleaf APIs (building,room,country,district,freebusy,instance,summary) now return typedSDKResult<XxxResponse>instead ofSDKResult<serde_json::Value>. Callers must use struct fields (e.g.resp.buildings[0].building_id) instead ofresp["field"]. Request bodies stayserde_json::Value.meeting_room/responses.rsis expanded to match Feishu historic doc examples: shared models (BuildingInfo,RoomInfo), ID mapping shapes (buildings+custom_bulding_idtypo),free_busyasHashMap<String, Vec<FreeBusySlot>>, and summary with PascalCaseErrorEventUids/EventInfosplusSummaryErrorEventobjects and fullerSummaryVchat.Write paths without a
datapayload (update/delete building & room, instance reply) no longer rely onextract_response_data; they checkis_successand returnDefaultempty response types whendatais missing.Wiremock tests and unit deserializers are updated to official JSON shapes; CHANGELOG documents the breaking change.
Reviewed by Cursor Bugbot for commit 3076f43. Bugbot is set up for automated code reviews on this repo. Configure here.