Name

global.OnCallRotationPersonal

Description

API for quickly getting on call rotation data relevant to current logged in user

Script

gs.include("PrototypeServer");
var OnCallRotationPersonal = Class.create();
OnCallRotationPersonal.prototype = {
  initialize: function() {
  },
  
  onCallDuringPeriod: function(group, /*GlideDateTime*/ startTime, /*GlideDateTime*/ endTime) {
  	var periodsOnCall = [];
  	var items = this.getItems(group, startTime, endTime);
  	for (var i = 0; i < items.size(); i++) {
  		var item = items.get(i);
  		//Do checks here so that item is
  		//rotation item
  		var type = item.getDataByKey('type');
  		if(type == 'rotation' || type == 'coverage') {
  			periodsOnCall.push(item);
  		}
  	}
  	return periodsOnCall;
  },
  
  getItems: function(group, start, end) {
  	//Get timezone
  	var timezone = gs.getSession().getTimeZoneName();
  	//Get items
  	var page = new GlideAJAXSchedulePage(start, end ,timezone);
  	gs.include("OnCallRotationCalculator");
  	var rotation = new OnCallRotationCalculator();
  	rotation.setPage(page);
  	//probably find all groups a user is part of
  	rotation.run(group);

  	return rotation.page.getItems();
  },

  type: function() {
    return 'OnCallRotationPersonal';
 }
}

Sys ID

172a7200eb201100eac006a2f206fe11

Offical Documentation

Official Docs: