cloudflare: use response.text since json may not be valid
This commit is contained in:
@@ -77,14 +77,14 @@ async function getZoneByName(domainConfig, zoneName) {
|
||||
const [error, response] = await safe(createRequest('GET', `${CLOUDFLARE_ENDPOINT}/zones?name=${zoneName}&status=active`, domainConfig));
|
||||
if (error) throw new BoxError(BoxError.NETWORK_ERROR, error.message);
|
||||
if (response.statusCode !== 200 || response.body.success !== true) throw translateRequestError(response);
|
||||
if (!response.body.result || !response.body.result.length) throw new BoxError(BoxError.NOT_FOUND, `${response.statusCode} ${JSON.stringify(response.body)}`);
|
||||
if (!response.body.result || !response.body.result.length) throw new BoxError(BoxError.NOT_FOUND, `${response.statusCode} ${response.text}`);
|
||||
|
||||
// check 'id' and 'name_servers' exist in the response
|
||||
const zone = response.body.result[0];
|
||||
const zoneId = safe.query(zone, 'id');
|
||||
if (typeof zoneId !== 'string') throw new BoxError(BoxError.EXTERNAL_ERROR, `No zone id in response: ${response.statusCode} ${JSON.stringify(response.body)}`);
|
||||
if (typeof zoneId !== 'string') throw new BoxError(BoxError.EXTERNAL_ERROR, `No zone id in response: ${response.statusCode} ${response.text}`);
|
||||
const name_servers = safe.query(zone, 'name_servers');
|
||||
if (!Array.isArray(name_servers)) throw new BoxError(BoxError.EXTERNAL_ERROR, `name_servers is not an array: ${response.statusCode} ${JSON.stringify(response.body)}`);
|
||||
if (!Array.isArray(name_servers)) throw new BoxError(BoxError.EXTERNAL_ERROR, `name_servers is not an array: ${response.statusCode} ${response.text}`);
|
||||
|
||||
return zone;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user