@@ -7,46 +7,51 @@ defmodule Algora.Activities do
7
7
alias Algora.Repo
8
8
alias Ecto.Multi
9
9
10
- @ tables [
11
- :identity_activities ,
12
- :user_activities ,
13
- :attempt_activities ,
14
- :bonus_activities ,
15
- :bounty_activities ,
16
- :claim_activities ,
17
- :tip_activities ,
18
- :message_activities ,
19
- :thread_activities ,
20
- :contract_activities ,
21
- :timesheet_activities ,
22
- :application_activities ,
23
- :job_activities ,
24
- :account_activities ,
25
- :customer_activities ,
26
- :payment_method_activities ,
27
- :platform_transaction_activities ,
28
- :transaction_activities ,
29
- :project_activities ,
30
- :review_activities ,
31
- :installation_activities ,
32
- :repository_activities ,
33
- :ticket_activities
34
- ]
35
-
36
- @ user_attributes [
37
- :identities ,
38
- :owned_bounties ,
39
- :created_bounties ,
40
- # :attempts,
41
- :claims ,
42
- # :projects,
43
- :repositories ,
44
- :owned_installations ,
45
- :connected_installations ,
46
- :client_contracts ,
47
- :client_contracts ,
48
- :contractor_contracts
49
- ]
10
+ @ schema_from_table % {
11
+ identity_activities: Algora.Accounts.Identity ,
12
+ user_activities: Algora.Accounts.User ,
13
+ attempt_activities: Algora.Bounties.Attempt ,
14
+ bonus_activities: Algora.Bounties.Bonus ,
15
+ bounty_activities: Algora.Bounties.Bounty ,
16
+ claim_activities: Algora.Bounties.Claim ,
17
+ tip_activities: Algora.Bounties.Tip ,
18
+ message_activities: Algora.Chat.Message ,
19
+ thread_activities: Algora.Chat.Thread ,
20
+ contract_activities: Algora.Contracts.Contract ,
21
+ timesheet_activities: Algora.Contracts.Timesheet ,
22
+ application_activities: Algora.Jobs.Application ,
23
+ job_activities: Algora.Jobs.Job ,
24
+ account_activities: Algora.Payments.Account ,
25
+ customer_activities: Algora.Payments.Customer ,
26
+ payment_method_activities: Algora.Payments.PaymentMethod ,
27
+ platform_transaction_activities: Algora.Payments.PlatformTransaction ,
28
+ transaction_activities: Algora.Payments.Transaction ,
29
+ project_activities: Algora.Projects.Project ,
30
+ review_activities: Algora.Reviews.Project ,
31
+ installation_activities: Algora.Workplace.Installation ,
32
+ ticket_activities: Algora.Workspace.Ticket ,
33
+ repository_activities: Algora.Workspace.Repository
34
+ }
35
+
36
+ @ table_from_user_relation % {
37
+ # attempts: "attempt_activities",
38
+ claims: "claim_activities" ,
39
+ client_contracts: "contract_activities" ,
40
+ connected_installations: "installation_activities" ,
41
+ contractor_contracts: "contract_activities" ,
42
+ created_bounties: "bounty_activities" ,
43
+ owned_tips: "tip_activities" ,
44
+ created_tips: "tip_activities" ,
45
+ owned_bounties: "bounty_activities" ,
46
+ identities: "identity_activities" ,
47
+ owned_installations: "installation_activities" ,
48
+ # projects: "project_activities",
49
+ repositories: "repository_activities" ,
50
+ transactions: "transaction_activities"
51
+ }
52
+
53
+ @ tables Map . keys ( @ schema_from_table )
54
+ @ user_attributes Map . keys ( @ table_from_user_relation )
50
55
51
56
def tables , do: @ tables
52
57
def user_attributes , do: @ user_attributes
@@ -168,40 +173,11 @@ defmodule Algora.Activities do
168
173
end )
169
174
end
170
175
171
- def schema_from_table ( "identity_activities" ) , do: Algora.Accounts.Identity
172
- def schema_from_table ( "user_activities" ) , do: Algora.Accounts.User
173
- def schema_from_table ( "attempt_activities" ) , do: Algora.Bounties.Attempt
174
- def schema_from_table ( "bonus_activities" ) , do: Algora.Bounties.Bonus
175
- def schema_from_table ( "bounty_activities" ) , do: Algora.Bounties.Bounty
176
- def schema_from_table ( "claim_activities" ) , do: Algora.Bounties.Claim
177
- def schema_from_table ( "tip_activities" ) , do: Algora.Bounties.Tip
178
- def schema_from_table ( "message_activities" ) , do: Algora.Chat.Message
179
- def schema_from_table ( "thread_activities" ) , do: Algora.Chat.Thread
180
- def schema_from_table ( "contract_activities" ) , do: Algora.Contracts.Contract
181
- def schema_from_table ( "timesheet_activities" ) , do: Algora.Contracts.Timesheet
182
- def schema_from_table ( "application_activities" ) , do: Algora.Jobs.Application
183
- def schema_from_table ( "job_activities" ) , do: Algora.Jobs.Job
184
- def schema_from_table ( "account_activities" ) , do: Algora.Payments.Account
185
- def schema_from_table ( "customer_activities" ) , do: Algora.Payments.Customer
186
- def schema_from_table ( "payment_method_activities" ) , do: Algora.Payments.PaymentMethod
187
- def schema_from_table ( "platform_transaction_activities" ) , do: Algora.Payments.PlatformTransaction
188
- def schema_from_table ( "transaction_activities" ) , do: Algora.Payments.Transaction
189
- def schema_from_table ( "project_activities" ) , do: Algora.Projects.Project
190
- def schema_from_table ( "review_activities" ) , do: Algora.Reviews.Project
191
- def schema_from_table ( "installation_activities" ) , do: Algora.Workplace.Installation
192
- def schema_from_table ( "ticket_activities" ) , do: Algora.Workspace.Ticket
193
- def schema_from_table ( "repository_activities" ) , do: Algora.Workspace.Repository
194
-
195
- def table_from_user_relation ( :attempts ) , do: "attempt_activities"
196
- def table_from_user_relation ( :claims ) , do: "claim_activities"
197
- def table_from_user_relation ( :client_contracts ) , do: "contract_activities"
198
- def table_from_user_relation ( :connected_installations ) , do: "installation_activities"
199
- def table_from_user_relation ( :contractor_contracts ) , do: "contract_activities"
200
- def table_from_user_relation ( :created_bounties ) , do: "bounty_activities"
201
- def table_from_user_relation ( :owned_bounties ) , do: "bounty_activities"
202
- def table_from_user_relation ( :identities ) , do: "identity_activities"
203
- def table_from_user_relation ( :owned_installations ) , do: "installation_activities"
204
- def table_from_user_relation ( :projects ) , do: "project_activities"
205
- def table_from_user_relation ( :repositories ) , do: "repository_activities"
206
- def table_from_user_relation ( :transactions ) , do: "transaction_activities"
176
+ def schema_from_table ( name ) do
177
+ Map . fetch! ( @ schema_from_table , String . to_atom ( name ) )
178
+ end
179
+
180
+ def table_from_user_relation ( table ) do
181
+ Map . fetch! ( @ table_from_user_relation , table )
182
+ end
207
183
end
0 commit comments