Skip to content

fix: use /person/infos for team member name resolution#10

Merged
debidong merged 3 commits into
mainfrom
fix/team-member-enrichment
May 14, 2026
Merged

fix: use /person/infos for team member name resolution#10
debidong merged 3 commits into
mainfrom
fix/team-member-enrichment

Conversation

@debidong

Copy link
Copy Markdown
Collaborator

Summary

  • Fix team member enrichment to use /person/infos instead of /team/infos
  • The /team/infos endpoint returns person_ids but no member names/emails for member-level app keys
  • /person/infos reliably returns person details regardless of app key type
  • Also enriches creator_name when the API returns it empty
  • Adds PersonIDs field to TeamInfo struct for list/batch endpoints
  • Includes team CRUD methods (GetTeamInfo, UpsertTeam, DeleteTeam) from feat/team-crud branch

Test plan

  • go test -race ./... passes
  • Manual test: flashduty team get --id <id> shows member names and emails
  • Manual test: flashduty team list shows member names in MEMBERS column
  • Manual test: flashduty team get --id <id> --json returns enriched members array
  • Creator name enriched when API returns empty creator_name

debidong added 3 commits May 14, 2026 16:55
Add full team management support to the SDK:
- TeamItem type with all 13 fields from /team/info endpoint
- TeamGetInput, TeamUpsertInput, TeamUpsertOutput, TeamDeleteInput types
- GetTeamInfo: parallel /team/info + /team/infos calls for full metadata with member names
- UpsertTeam: create or update teams via /team/upsert
- DeleteTeam: delete teams by ID, name, or ref_id via /team/delete
- Enhanced ListTeamsInput with Limit, OrderBy, Asc, PersonID fields
- OrderBy validation and limit capping (max 100)
The API requires team_name on every upsert call, even for updates.
Add explicit validation in the SDK to fail fast with a clear error.
The /team/infos endpoint returns person_ids but not member names/emails
for member-level app keys. Switch to /person/infos which reliably
returns person details regardless of app key type.

Changes:
- GetTeamInfo: replace parallel /team/infos call with sequential
  /person/infos enrichment after /team/info returns person_ids.
  Also enrich creator_name when the API returns it empty.
- ListTeams: parse person_ids from API response (not members),
  then batch-resolve via new enrichTeamMembers helper.
- TeamInfo: add PersonIDs field to carry raw IDs from API.
- Remove fetchTeamMembers helper (no longer needed).
- Update TestListTeamsByIDsPreservesMembers to mock /person/infos.
@debidong
debidong merged commit 5405a3a into main May 14, 2026
@debidong
debidong deleted the fix/team-member-enrichment branch May 14, 2026 09:50
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