UNPKG

1.45 kBJavaScriptView Raw
1const Joi = require('@hapi/joi');
2const { validate, prepare } = require('../../utils/options');
3
4// Validation
5const _params = Joi.string().min(1);
6const _id = Joi.number().positive();
7
8// Initialize Endpoint
9module.exports = (options = {}) => {
10 const { error } = validate(options);
11 if (error) throw new Error(error.details[0].message);
12
13 const { url, headers } = prepare(options);
14
15 return {
16 /**
17 * Listing Audit Logs
18 *
19 * GET /api/v2/audit_logs.json
20 * https://developer.zendesk.com/rest_api/docs/support/audit_logs#listing-audit-logs
21 */
22 list: (options = {}) => {
23 const { error } = Joi.object({
24 params: _params
25 }).validate(options);
26 if (error) throw new Error(error.details[0].message);
27
28 const { params } = options;
29 return {
30 method: 'GET',
31 url: `${url}/api/v2/audit_logs.json${params ? `?${params}` : ''}`,
32 headers
33 };
34 },
35
36 /**
37 * Getting Audit Logs
38 *
39 * GET /api/v2/audit_logs/{id}.json
40 * https://developer.zendesk.com/rest_api/docs/support/audit_logs#getting-audit-logs
41 */
42 get: (options = {}) => {
43 const { error } = Joi.object({
44 id: _id.required()
45 }).validate(options);
46 if (error) throw new Error(error.details[0].message);
47
48 const { id } = options;
49 return {
50 method: 'GET',
51 url: `${url}/api/v2/audit_logs/${id}.json`,
52 headers
53 };
54 }
55 };
56};