easyappointments/assets/js/http/caldav_http_client.js

108 lines
2.9 KiB
JavaScript

/* ----------------------------------------------------------------------------
* Easy!Appointments - Online Appointment Scheduler
*
* @package EasyAppointments
* @author A.Tselegidis <alextselegidis@gmail.com>
* @copyright Copyright (c) Alex Tselegidis
* @license https://opensource.org/licenses/GPL-3.0 - GPLv3
* @link https://easyappointments.org
* @since v1.5.0
* ---------------------------------------------------------------------------- */
/**
* Caldav HTTP client.
*
* This module implements the Caldav Calendar related HTTP requests.
*/
App.Http.Caldav = (function () {
/**
* Select the Caldav Calendar for the synchronization with a provider.
*
* @param {Number} providerId
* @param {String} caldavCalendarId
*
* @return {*|jQuery}
*/
function selectCaldavCalendar(providerId, caldavCalendarId) {
const url = App.Utils.Url.siteUrl('caldav/select_caldav_calendar');
const data = {
csrf_token: vars('csrf_token'),
provider_id: providerId,
calendar_id: caldavCalendarId,
};
return $.post(url, data);
}
/**
* Disable the Caldav Calendar syncing of a provider.
*
* @param {Number} providerId
*
* @return {*|jQuery}
*/
function disableProviderSync(providerId) {
const url = App.Utils.Url.siteUrl('caldav/disable_provider_sync');
const data = {
csrf_token: vars('csrf_token'),
provider_id: providerId,
};
return $.post(url, data);
}
/**
* Get the available Caldav Calendars of the connected provider's account.
*
* @param {Number} providerId
*
* @return {*|jQuery}
*/
function getCaldavCalendars(providerId) {
const url = App.Utils.Url.siteUrl('caldav/get_caldav_calendars');
const data = {
csrf_token: vars('csrf_token'),
provider_id: providerId,
};
return $.post(url, data);
}
/**
* Trigger the sync process between Easy!Appointments and Caldav Calendar.
*
* @param {Number} providerId
*
* @return {*|jQuery}
*/
function syncWithCaldav(providerId) {
const url = App.Utils.Url.siteUrl('caldav/sync/' + providerId);
return $.get(url);
}
function connectToServer(providerId, caldavUrl, caldavUsername, caldavPassword) {
const url = App.Utils.Url.siteUrl('caldav/connect_to_server');
const data = {
csrf_token: vars('csrf_token'),
provider_id: providerId,
caldav_url: caldavUrl,
caldav_username: caldavUsername,
caldav_password: caldavPassword,
};
return $.post(url, data);
}
return {
getCaldavCalendars,
selectCaldavCalendar,
disableProviderSync,
syncWithCaldav,
connectToServer,
};
})();