Skip to content

[Schema Inaccuracy] GET /conversations schema is inaccurate #166

@haydenbleasel

Description

@haydenbleasel

Schema Inaccuracy

Example in spec shows that intended response is:

{
  type: "conversation.list",
  pages: object;
  total_count: number;
  conversations: Conversation[];
}

The 200 response schema points to a paginated_response which is:

{
  type: "conversation.list",
  pages: object;
  total_count: number;
  data: Conversation[];
}

Expected

When using GET /conversations, expecting to map over response.data. Instead, receiving response.conversations. Causes a TypeScript issue.

Reproduction Steps

  1. Produce a TS schema with:
npx openapi-typescript@6.7.6 https://raw.githubusercontent.com/intercom/Intercom-OpenAPI/main/descriptions/2.11/api.intercom.io.yaml -o ./src/types.d.ts
  1. Create a client with:
import createFetchClient from 'openapi-fetch';
import type { paths } from './types';

const client = createFetchClient<paths>({
    baseUrl: 'https://api.intercom.io',
    headers: {
      'Content-Type': 'application/json',
      Authorization: `Bearer ${accessToken}`,
      'Intercom-Version': '2.11',
    },
});
  1. Get the conversations with:
const conversations = await intercom.GET('/conversations');
  1. Use the provided schema:
console.log(conversations.data.data);
  1. Realize that conversations.data.data is undefined 😂

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions