UNPKG

react-native-dialogflow-som

Version:

A React-Native Bridge for the Google Dialogflow SDK with resetContext working

48 lines (44 loc) 1.69 kB
/** * Created by toni on 30.08.2017. */ import { ApiAiRequestError } from "./Errors"; import XhrRequest from './XhrRequest'; export const DEFAULT_BASE_URL = "https://dialogflow.googleapis.com/v2/"; class ResetContextsRequest { constructor(accessToken, sessionId, projectId,contextName) { if (contextName != null) { this.uri = DEFAULT_BASE_URL + "contexts/" + contextName + "?sessionId=" + sessionId; } else { this.uri = DEFAULT_BASE_URL + "projects/" + projectId + "/agent/sessions/" + sessionId + "/contexts"; } this.headers = { Authorization: "Bearer " + accessToken, Accept: "application/json", }; } static handleSuccess(xhr) { return Promise.resolve(JSON.parse(xhr.responseText)); } static handleError(xhr) { let error = new ApiAiRequestError(null); try { const serverResponse = JSON.parse(xhr.responseText); if (serverResponse.status && serverResponse.status.errorDetails) { error = new ApiAiRequestError(serverResponse.status.errorDetails, serverResponse.status.code); } else { error = new ApiAiRequestError(xhr.statusText, xhr.status); } } catch (e) { error = new ApiAiRequestError(xhr.statusText, xhr.status); } return Promise.reject(error); } perform() { return XhrRequest.delete(this.uri, null, this.headers, {}) .then(ResetContextsRequest.handleSuccess.bind(this)) .catch(ResetContextsRequest.handleError.bind(this)); } } export default ResetContextsRequest;