Class: Eco::API::Custom::Policy

Inherits:
Eco::API::Common::Loaders::Policy show all
Defined in:
lib/eco/api/custom/policy.rb

Overview

Helper class to create a custom Policy

Examples:

Example of usage:

class Custom::Policy::StartersNLeavers < Eco::API::Custom::Policy
  name "starters'n'leavers"

  INACTIVE = "Non active"

  def main(people, session, options, policy, job)
    people.each do |person|
      next unless details = person.details
      # starters
      if person.new?
        details["status"]       = "Active"
        details["hris-managed"] = true unless options.dig(:include, :excluded)
      end

      # leavers: native job queue to remove account
      if job.name == "leavers"
        details["status"]    = INACTIVE
        person.external_id   = person.name
        details["staff-id"]  = person.name
      end
    end
  end

end

Method Summary

Methods inherited from Eco::API::Common::Loaders::Policy

#initialize, #main

Methods inherited from Eco::API::Common::BaseLoader

<=>, created_at, #initialize, #name, name_only_once!, set_created_at!

Methods included from Eco::API::Common::ClassHelpers

#class_resolver, #descendants, #descendants?, #new_class, #resolve_class, #to_constant

Constructor Details

This class inherits a constructor from Eco::API::Common::Loaders::Policy