1- class DesignHopsJob < ActiveJob ::Base
1+ # frozen_string_literal: true
2+
3+ class DesignHopsJob < ApplicationJob
24 queue_as :default
35
4- def perform ( )
5- @hopAttendees = Airrecord . table ( ENV [ 'AIRTABLE_API_KEY' ] , " appchfb5dUtfrlVSZ" , " Attendee sign-up data" )
6+ def perform
7+ @hop_attendees = Airrecord . table ( ENV [ 'AIRTABLE_API_KEY' ] , ' appchfb5dUtfrlVSZ' , ' Attendee sign-up data' )
68
7- @hopAttendees . all . each do |record |
8- domain = record [ 'Email' ] . split ( "@" ) . last . strip
9+ @hop_attendees . all . each do |record |
10+ domain = record [ 'Email' ] . split ( '@' ) . last . strip
911 org_name = record [ 'Organisation name' ] . strip
1012
11- @org = Organisation . find_by ( { name : org_name } ) || Organisation . find_by ( { domain : domain ] } )
12- if @org
13- Action . create (
14- potential_action : PotentialAction . find ( 1 ) ,
15- organisation : @org ,
16- details : {
17- person_name : record [ 'First name' ] + " " + record [ 'Last name' ] ,
18- hop : record [ 'Which design hop are you applying to join?' ] . first
19- } ,
20- start_time : record . created_at ,
21- end_time : record . created_at
13+ # Create new org
14+ @org = Organisation . find_by ( { name : org_name } ) || Organisation . find_by ( { domain : domain } )
15+ if @org . nil?
16+ @org = Organisation . create! (
17+ name : org_name ,
18+ domain : domain
2219 )
20+ @org . get_charity_number
2321 end
22+
23+ # Create new org
24+ @person = Person . find_by ( { email : record [ 'Email' ] } )
25+ if @person . nil?
26+ @person = Person . create! (
27+ first_name : record [ 'First name' ] ,
28+ last_name : record [ 'Last name' ] ,
29+ email : record [ 'Email' ] ,
30+ organisation : @org
31+ )
32+ end
33+
34+ # Record action
35+ Action . create! (
36+ potential_action : PotentialAction . find ( 1 ) ,
37+ organisation_id : @org . id ,
38+ person_id : @person . id ,
39+ details : {
40+ person_name : record [ 'First name' ] + ' ' + record [ 'Last name' ] ,
41+ hop : record [ 'Which design hop are you applying to join?' ] . first
42+ } ,
43+ start_time : record . created_at ,
44+ end_time : record . created_at
45+ )
2446 end
2547 end
26- end
48+ end
0 commit comments