ThomasBurleson
11/12/2017 - 12:36 PM

Demonstration of classic REST service anti-pattern

Demonstration of classic REST service anti-pattern

Typical coding example for a sequence of asynchronous REST calls:

function update(ev, updateDiff) {
  // get current event from Back End
  return scheduleService.getEvent(ev.id).then(function(event) {
    // send updates to Back end
    return scheduleService.editEvent(ev.id, event.version, updateDiff).then(function(evt) {
      var pack = findAircraftPackById(evt.aircraft.id);
      // get whole aircraft schedules in order to get repo legs updated
      return fetchAircraft(pack).then(function(resp) {
        return resp;
      }, function(error) {
        return $q.reject(error);
      });
    }, function(error) {
      return $q.reject(error);
    });
  }, function(error) {
    return $q.reject(error);
  });
}

This is not maintainable, not DRY!!