1/** 2 * @class EventPermissionsService 3 * @classdesc Static service class for fetching an event's team-member guest-access permissions. 4 */ 5class EventPermissionsService { 6 /** 7 * Fetch team members for an event alongside their resolved guest-access level. 8 * 9 * @async @static 10 * @param {number} eventId 11 * @returns {Promise<{success: boolean, err_msg: string, team_members: Array}>} 12 */ 13 static async getTeamPermissions(eventId) { 14 const data = new FormData(); 15 data.append('post_type', 'get_team_permissions'); 16 data.append('event_id', eventId); 17 const resp = await fetch('/funcs/dashboard/events/general/EventPermissionsRoute.php', { method: 'POST', body: data }); 18 return resp.json(); 19 } 20 21 /** 22 * Save a team member's guest-access level and guest/field scoping. 23 * 24 * @async @static 25 * @param {Object} params 26 * @param {number} params.teamId 27 * @param {number} params.eventId 28 * @param {string} params.level 'none' | 'view' | 'manage' 29 * @param {string} params.guestMode 'all' | 'specific' 30 * @param {Array<string|number>} params.recordIds Guest IDs, only required when guestMode is 'specific' 31 * @param {string[]} params.shownFields 32 * @param {Array<string|number>} params.shownQuestionIds 33 * @returns {Promise<{success: boolean, err_msg: string}>} 34 */ 35 static async saveGuestPermissions({ teamId, eventId, level, guestMode, recordIds = [], shownFields = [], shownQuestionIds = [] }) { 36 const data = new FormData(); 37 data.append('post_type', 'save_guest_permissions'); 38 data.append('team_id', teamId); 39 data.append('event_id', eventId); 40 data.append('level', level); 41 data.append('guest_mode', guestMode); 42 recordIds.forEach((id) => data.append('record_ids[]', id)); 43 shownFields.forEach((field) => data.append('shown_fields[]', field)); 44 shownQuestionIds.forEach((id) => data.append('shown_question_ids[]', id)); 45 const resp = await fetch('/funcs/dashboard/events/general/EventPermissionsRoute.php', { method: 'POST', body: data }); 46 return resp.json(); 47 } 48} 49 50export default EventPermissionsService;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.