Module: Ecoportal::API::GraphQL::Base::ContractorEntity::MemberChanges

Included in:
Ecoportal::API::GraphQL::Base::ContractorEntity
Defined in:
lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb

Instance Method Summary collapse

Instance Method Details

#associate(*values, lead: false) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb', line 7

def associate(*values, lead: false)
  ids = to_person_ids(*values)

  associatedPeopleIds.tap do |associated|
    associated.push!(*ids)
    next unless lead

    lead!(*ids)
  end
end

#dissassociate(*values) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb', line 18

def dissassociate(*values)
  ids = to_person_ids(*values)

  associatedPeopleIds.tap do |associated|
    unlead!(*ids)
    associated.delete!(*ids)
  end
end

#lead!(*values) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb', line 27

def lead!(*values)
  ids = to_person_ids(*values)

  leadContractorIds.tap do |leads|
    associate(*ids)
    leads.push!(*ids)
  end
end

#unlead!(*values) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/ecoportal/api/graphql/base/contractor_entity/member_changes.rb', line 36

def unlead!(*values)
  ids = to_person_ids(*values)

  leadContractorIds.tap do |leads|
    leads.delete!(*ids)
  end
end