2.4.0 • Published 6 years ago
keldoc-js-sdk v2.4.0
keldoc-js-sdk
Description
This module provides an Keldoc API implementation.
Install
$ npm install keldoc-js-sdk --save
Features
- Agendas
- Appointments
- Availabilities
- Available slots
- Config
- ConfigWebhooks
- Motives
- Patients
- Specialities
Documentation
- agenda.get()
- appointments.create()
- appointments.update()
- appointments.remove()
- availabilities.get()
- availableSlots.get()
- config.get()
- motives.get()
- patients.create()
- patients.update()
- specialties.get()
- configWebhooks.create()
- configWebhooks.update()
- configWebhooks.remove()
Examples
Create your keldoc sdk by requiring it, making it's initial configuration and instantiating it.
From import
import * as sdk from 'keldoc-js-sdk'
sdk.configure({
auth_token: '165416s5dfsds564sfdf2df',
host: 'http://www.example.com'
})
const keldoc = sdk.create()
From require
const sdk = require('keldoc-js-sdk');
sdk.configure({
auth_token: '165416s5dfsds564sfdf2df',
host: 'http://www.example.com',
routes: {
agendas: '/agendas.json',
appointments: '/appointments',
availabilities: '/availabilities',
availableSlots: '/available_slots',
motives: '/motives.json',
patients: '/patients',
specialties: '/specialties',
config: '/config',
configWebhooks: '/config/webhooks' },
});
const keldoc = sdk.create();
API Methods
Agenda
Fetch all agendas.
Function
keldoc.agendas.get()
.then((response) => {
//use your response
});
Appointments
Create a new appointment
Arguments
start_at {Datetime} start date (required).
agenda_id {Integer} Agenda ID (required).
state {String} 'confirmed' or 'canceled' (required).
duration {Integer} duration in seconds.
no_show {Boolean} patient hasn ' t come.
patient_arrived {Boolean} patient is waiting in the waiting room.
no_show_excused {Boolean} patient hasn ' t come but he excused.
motive_id {Integer} motive id.
skip_sms_confirmation {Boolean} disable sms confirmation for consultation.
skip_email_confirmation {Boolean} disable email confirmation for consultation.
skip_sms_reminder {Boolean} disable sms reminder for consultation.
skip_email_reminder {Boolean} disable email reminder for consultation.
patient_id {Integer} patient ID.
patient.first_name {String} patient firstname.
patient.last_name {String} patient lastname.
patient.maiden_name {String} patient maiden name.
patient.gender {Char} 'm' or 'f'.
patient.phone {String} patient phone number.
patient.phone2 {String} patient alternative phone number.
patient.email {String} patient email address.
patient.street {String} patient street number & streetnames.
patient.city {String} patient city name.
patient.zipcode {String} patient city zipcode.
keldoc.appointments.create({start_at: '2001-09-23', agenda_id: '2135', state: 'confirmed'})
.then((response) => {
//use your response
});
Update an existing appointment
Arguments
id {Integer} KelDoc internal ID for appointment to update.
start_at {Datetime} start date (required).
agenda_id {Integer} Agenda ID (required).
state {String} 'confirmed' or 'canceled' (required).
duration {Integer} duration in seconds.
no_show {Boolean} patient hasn ' t come.
patient_arrived {Boolean} patient is waiting in the waiting room.
no_show_excused {Boolean} patient hasn ' t come but he excused.
motive_id {Integer} motive id.
skip_sms_confirmation {Boolean} disable sms confirmation for consultation.
skip_email_confirmation {Boolean} disable email confirmation for consultation.
skip_sms_reminder {Boolean} disable sms reminder for consultation.
skip_email_reminder {Boolean} disable email reminder for consultation.
patient_id {Integer} patient ID.
patient.first_name {String} patient firstname.
patient.last_name {String} patient lastname.
patient.maiden_name {String} patient maiden name.
patient.gender {Char} 'm' or 'f'.
patient.phone {String} patient phone number.
patient.phone2 {String} patient alternative phone number.
patient.email {String} patient email address.
patient.street {String} patient street number & streetnames.
patient.city {String} patient city name.
patient.zipcode {String} patient city zipcode.
keldoc.appointments.update(21354, {start_at: '2001-09-23', agenda_id: '2135', state: 'confirmed'})
.then((response) => {
//use your response
});
Delete an appointment
Arguments
id {Integer} KelDoc internal ID for appointment to remove.
keldoc.appointments.remove(21321)
.then((response) => {
//use your response
});
Availabilities
Fetch available slots for agendas. Maximum duration between start date and end date is 7 days.
Arguments
motive_id {Integer} KelDoc internal ID (required).
start_date {Datetime} start date.
end_date {Datetime} end date.
agenda_ids {Array} IDs of agendas.
keldoc.availabilities.get({
agenda_ids: 112,
end_date: '2017-09-17',
start_date: '2017-09-18',
motive_id: '366',
})
.then((response) => {
//use your response
});
Available slots
- Fetch available slots for agendas. Maximum duration between start date and end date is 2 months (default is 2 months from now).
- When motive_ids is [], it means the available slot is for all motives. Arguments
agenda_id {Array} ID of agenda.
start_date {Datetime} start date.
end_date {Datetime} end date.
keldoc.availableSlots.get({
agenda_id: 112,
start_date: '2017-09-18',
end_date: '2017-09-17',
})
.then((response) => {
//use your response
});
Config
- Retrieves account configuration : agendas, motives, specialties
keldoc.config.get()
.then((response) => {
// use your response
});
Motives
Fetch all motives
keldoc.motives.get()
.then((response) => {
// use your response
});
Patients
Create a new patient
Arguments
first_name {String} patient firstname.
last_name {String} patient lastname.
maiden_name {String} patient maiden name.
gender {Char} 'm' or 'f'.
phone {String} patient phone number.
email {String} patient email address.
street {String} patient street number & streetnames.
city {String} patient city name.
zipcode {String} patient city zipcode.
keldoc.patients.create({
first_name: 'test',
last_name: 'john',
gender: 'm',
email: 'test.john@test.com'
})
.then((response) => {
// use your response
});
Update an existing patient
Arguments
id {Integer} KelDoc internal ID for patient to update.
first_name {String} patient firstname.
last_name {String} patient lastname.
maiden_name {String} patient maiden name.
gender {Char} 'm' or 'f'.
phone {String} patient phone number.
email {String} patient email address.
street {String} patient street number & streetnames.
city {String} patient city name.
zipcode {String} patient city zipcode.
keldoc.patients.update(12026, {
first_name: 'test',
last_name: 'john',
gender: 'm',
email: 'test.john@test.com'
})
.then((response) => {
expect(response.status).toEqual(200);
done();
});
Specialties
- Fetch all specialties
keldoc.specialties.get()
.then((response) => {
// use your response
});
ConfigWebhooks
Create account webhook
Arguments
url {String} Webhook url.
keldoc.configWebhooks.create({url: 'http://test.webhook.com'})
.then((response) => {
// use your response
});
Update account webhook
Arguments
url {String} Webhook url.
keldoc.configWebhooks.update({url: 'http://test.webhook.com'})
.then((response) => {
// use your response
});
Delete account webhook
Arguments
url {String} Webhook url.
keldoc.configWebhooks()
.then((response) => {
// use your response
});
Scripts
Run using npm run command.
clean - remove coverage data, Jest cache and transpiled files,
lint - lint source files and tests,
typecheck - check type annotations,
test - lint, typecheck and run tests with coverage,
test-only - run tests with coverage,
test:watch - interactive watch mode to automatically re-run tests,
build - compile source files,
build:watch - interactive watch mode, compile sources on change.
License
MIT © Dimitri DO BAIRRO