Skip to content

Commit da360b6

Browse files
committed
use map for activity table lookups
1 parent f8926ca commit da360b6

File tree

1 file changed

+52
-76
lines changed

1 file changed

+52
-76
lines changed

lib/algora/activities/activities.ex

Lines changed: 52 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -7,46 +7,51 @@ defmodule Algora.Activities do
77
alias Algora.Repo
88
alias Ecto.Multi
99

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)
5055

5156
def tables, do: @tables
5257
def user_attributes, do: @user_attributes
@@ -168,40 +173,11 @@ defmodule Algora.Activities do
168173
end)
169174
end
170175

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
207183
end

0 commit comments

Comments
 (0)