Feature Request
As an event using an external Passport identity provider, we could do with some API endpoints that let us:
- Retrieve a user’s internal ID from their external provider ID
- Fetch the seating plan for a specific user
- (Optionally) Fetch the full seating plan for an event
Proposed Endpoints
-
List linked accounts
GET /api/v1/linkedaccounts
- Query parameters:
external_id (integer) - user’s ID in external system
social_provider (integer) - ID of the auth provider
- Returns: internal user object with
user_id
-
Fetch tickets and seats for a user
GET /api/v1/tickets
- Query parameters:
event (integer) - event ID
user_id (integer) - internal user ID from linkedaccounts
- Returns: list of tickets, each including:
seat_id
seating_plan_id?
x_position (number)
y_position (number)
- any existing metadata
-
Fetch entire seating plan
GET /api/v1/seatingplan
- Query parameters:
event (integer) - event ID
- Returns: full cached plan, with each seat entry including:
seat_id
x_position
y_position
user_id (if occupied)
- whatever extra metadata is available
Why This Matters
- Makes it trivial to look up where any logged-in user is sitting
- Enables integrations without manual lookups
- Supports both individual seat queries and bulk retrieval of the seating plan
Acceptance Criteria
Endpoints are added which allow us to:
- Determine the internal user ID from an external ID
- Get a list of tickets/seats for a user from an internal user ID
- Get the full seating plan for an event with enough data that allows us to see where an internal user ID is sat, and specifically, the users that are sat around them