1e377ff85SWill Schurmanimport { fetchAsync } from './rest/client';
2*8a424bebSJames Ideimport { CommandError } from '../utils/errors';
3e377ff85SWill Schurman
4e377ff85SWill Schurmanexport async function getProjectDevelopmentCertificateAsync(
5e377ff85SWill Schurman  easProjectId: string,
6e377ff85SWill Schurman  csrPEM: string
7e377ff85SWill Schurman): Promise<string> {
8e377ff85SWill Schurman  const response = await fetchAsync(
9e377ff85SWill Schurman    `projects/${encodeURIComponent(easProjectId)}/development-certificates`,
10e377ff85SWill Schurman    {
11e377ff85SWill Schurman      method: 'POST',
12e377ff85SWill Schurman      body: JSON.stringify({
13e377ff85SWill Schurman        csrPEM,
14e377ff85SWill Schurman      }),
15e377ff85SWill Schurman    }
16e377ff85SWill Schurman  );
17e377ff85SWill Schurman  if (!response.ok) {
18e377ff85SWill Schurman    throw new CommandError('API', `Unexpected error from Expo servers: ${response.statusText}.`);
19e377ff85SWill Schurman  }
20e377ff85SWill Schurman  const buffer = await response.buffer();
21e377ff85SWill Schurman  return buffer.toString('utf8');
22e377ff85SWill Schurman}
23