@memori.ai/memori-api-client
Version:
React library to integrate a Memori in your app or website
98 lines • 3.49 kB
JavaScript
import { apiFetcher } from '../apiFetcher';
function buildTextEnteredBody(params) {
const { text, dateUTC, place } = params;
const body = { text };
if (dateUTC != null && dateUTC !== '') {
body.dateUTC = dateUTC;
}
if (place != null && typeof place === 'object') {
const placeBody = {};
if (place.placeName != null)
placeBody.placeName = place.placeName;
if (place.latitude != null)
placeBody.latitude = place.latitude;
if (place.longitude != null)
placeBody.longitude = place.longitude;
if (place.uncertaintyKm != null)
placeBody.uncertaintyKm = place.uncertaintyKm;
if (Object.keys(placeBody).length > 0) {
body.place = placeBody;
}
}
return body;
}
export default (apiUrl) => ({
postTextEnteredEvent: async ({ sessionId, text, dateUTC, place, }) => apiFetcher(`/TextEnteredEvent/${sessionId}`, {
method: 'POST',
apiUrl,
body: buildTextEnteredBody({ text, dateUTC, place }),
}),
postEnterTextAsync: async ({ sessionId, text, dateUTC, place, }) => apiFetcher(`/TextEnteredEventAsync/${sessionId}`, {
method: 'POST',
apiUrl,
body: buildTextEnteredBody({ text, dateUTC, place }),
}),
postTextEnteredEventExtended: async ({ sessionId, text, questionsAndAnswersHistory, }) => apiFetcher(`/ExtendedTextEnteredEvent/${sessionId}`, {
method: 'POST',
apiUrl,
body: {
text,
questionsAndAnswersHistory,
},
}),
postExtendedEnterTextAsync: async ({ sessionId, text, questionsAndAnswersHistory, }) => apiFetcher(`/ExtendedEnterTextAsync/${sessionId}`, {
method: 'POST',
apiUrl,
body: {
text,
questionsAndAnswersHistory,
},
}),
postPlaceChangedEvent: async ({ sessionId, placeName, latitude, longitude, uncertaintyKm, }) => apiFetcher(`/PlaceChangedEvent/${sessionId}`, {
method: 'POST',
apiUrl,
body: {
placeName,
latitude,
longitude,
uncertaintyKm,
},
}),
postDateChangedEvent: async (sessionId, date) => apiFetcher(`/DateChangedEvent/${sessionId}`, {
method: 'POST',
apiUrl,
body: { date },
}),
postTagChangedEvent: async (sessionId, tag) => apiFetcher(`/TagChangedEvent/${sessionId}`, {
method: 'POST',
apiUrl,
body: { tag },
}),
postTimeoutEvent: async (sessionId) => apiFetcher(`/TimeoutEvent/${sessionId}`, {
method: 'POST',
apiUrl,
}),
postMediumSelectedEvent: async (sessionId, medium) => apiFetcher(`/MediumSelectedEvent/${sessionId}`, {
method: 'POST',
apiUrl,
body: { medium },
}),
postMediumDeselectedEvent: async (sessionID, mediumID) => apiFetcher(`/MediumDeselectedEvent/${sessionID}`, {
method: 'POST',
apiUrl,
body: { mediumID },
}),
postDateSelectedEvent: async (sessionId) => apiFetcher(`/DateSelectedEvent/${sessionId}`, {
method: 'GET',
apiUrl,
}),
postPlaceSelectedEvent: async (sessionId) => apiFetcher(`/PlaceSelectedEvent/${sessionId}`, {
method: 'GET',
apiUrl,
}),
postTagSelectedEvent: async (sessionId) => apiFetcher(`/TagSelectedEvent/${sessionId}`, {
method: 'GET',
apiUrl,
}),
});
//# sourceMappingURL=dialog.js.map