Skip to content

Commit 74107d7

Browse files
Merge pull request #149 from fga-gpp-mds/adapter_refactoration
Aplicando o padrão adapter
2 parents 9864208 + 39d980f commit 74107d7

File tree

5 files changed

+139
-75
lines changed

5 files changed

+139
-75
lines changed

app/adapters/adapter.rb

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
module Adapter
2+
class GitHubProject
3+
def initialize(request)
4+
@logged_user = AuthorizeApiRequest.call(request.headers).result
5+
@client = Octokit::Client.new(access_token: @logged_user.access_token)
6+
end
7+
8+
def get_github_user
9+
user_login = @client.user.login
10+
p user_login
11+
return user_login
12+
end
13+
14+
def get_github_repos(user_login)
15+
@client.repositories(user_login)
16+
end
17+
18+
def get_github_orgs(user_login)
19+
@client.organizations(user_login)
20+
end
21+
22+
def get_github_orgs_repos(org)
23+
@client.organization_repositories(org.login)
24+
end
25+
26+
def get_contributors(github_slug)
27+
@client.contributors(github_slug)
28+
end
29+
end
30+
31+
class GitHubIssue
32+
def initialize(request)
33+
@logged_user = AuthorizeApiRequest.call(request.headers).result
34+
@client = Octokit::Client.new(access_token: @logged_user.access_token)
35+
end
36+
37+
def get_github_user
38+
user_login = @client.user.login
39+
end
40+
41+
def list_issues(github_slug)
42+
@client.list_issues(github_slug)
43+
end
44+
45+
def create_issue(github_slug, issue_params)
46+
@client.create_issue(github_slug, issue_params[:name], issue_params[:body])
47+
end
48+
49+
def update_issue(github_slug, issue_params)
50+
@client.update_issue(github_slug, issue_params[:number], issue_params[:name], issue_params[:body])
51+
end
52+
53+
def close_issue(path, issue_params)
54+
@client.close_issue(path, issue_params[:number])
55+
end
56+
end
57+
end

app/controllers/issues_controller.rb

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ class IssuesController < ApplicationController
55
before_action :set_path, except: [:update_assignees]
66

77
def index
8-
@issues = @client.list_issues(@path)
8+
client = Adapter::GitHubIssue.new(request)
9+
10+
@issues = client.list_issues(@path)
911

1012
convert_form_params(@issues)
1113

@@ -25,25 +27,31 @@ def index
2527
end
2628

2729
def create
28-
@issue = @client.create_issue(@path, issue_params[:name], issue_params[:body])
30+
client = Adapter::GitHubIssue.new(request)
31+
32+
@issue = client.create_issue(@project.github_slug, issue_params)
2933

3034
convert_form_params(@issue)
3135

3236
render json: @form_params, status: :created
3337
end
3438

3539
def update
36-
@issue = @client.update_issue(@path, issue_params[:number], issue_params[:name], issue_params[:body])
40+
client = Adapter::GitHubIssue.new(request)
41+
42+
@issue = client.update_issue(@project.github_slug, issue_params)
3743

3844
convert_form_params(@issue)
3945

4046
render json: @form_params
4147
end
4248

4349
def close
44-
@issue = @client.close_issue(@path, issue_params[:number])
50+
client = Adapter::GitHubIssue.new(request)
4551

46-
render status: 200
52+
client.close_issue(@path, issue_params)
53+
54+
render status: :ok
4755
end
4856

4957
def update_assignees
@@ -70,8 +78,7 @@ def update_assignees
7078
private
7179

7280
def set_authorization
73-
@current_user = AuthorizeApiRequest.call(request.headers).result
74-
@client = Octokit::Client.new(access_token: @current_user.access_token)
81+
client = Adapter::GitHubIssue.new(request)
7582
end
7683

7784
def set_project
@@ -84,9 +91,10 @@ def set_path
8491
if @project.name.include? "/"
8592
@path = @project.name
8693
else
87-
@name = @client.user.login
94+
client = Adapter::GitHubIssue.new(request)
95+
@name = client.get_github_user
8896
@repo = @project.name
89-
@path = @name + "/" + @repo
97+
@path = @name.to_s + "/" + @repo
9098
end
9199

92100
@path

app/controllers/projects_controller.rb

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,35 +29,34 @@ def get_gpa
2929
end
3030

3131
def github_projects_list
32-
@current_user = AuthorizeApiRequest.call(request.headers).result
33-
@client = Octokit::Client.new(access_token: @current_user.access_token)
32+
client = Adapter::GitHubProject.new(request)
33+
34+
user_login = client.get_github_user
35+
36+
@form_params_user = { user: [] }
37+
@form_params_user[:user].push(login: user_login)
3438

35-
user_login = @client.user.login
3639
user_repos = []
37-
@repos = @client.repositories(user_login)
38-
@form_params = { user: [] }
39-
@form_params[:user].push(login: user_login)
4040

41-
@repos.each do |repo|
41+
(client.get_github_repos(user_login)).each do |repo|
4242
user_repos.push(repo.name)
4343
end
44-
@form_params[:user].push(repos: user_repos)
4544

46-
@orgs = @client.organizations(user_login)
47-
@form_params2 = { orgs: [] }
48-
@orgs.each do |org|
49-
repos = @client.organization_repositories(org.login)
45+
@form_params_user[:user].push(repos: user_repos)
46+
47+
@form_params_orgs = { orgs: [] }
48+
49+
(client.get_github_orgs(user_login)).each do |org|
5050
repos_names = []
51-
repos.each do |repo|
51+
(client.get_github_orgs_repos(org)).each do |repo|
5252
repos_names.push(repo.name)
5353
end
54-
@form_params2[:orgs].push(name: org.login, repos: repos_names)
54+
@form_params_orgs[:orgs].push(name: org.login, repos: repos_names)
5555
end
5656

57-
@form_params3 = @form_params2.merge(@form_params)
58-
57+
@form_params_user_orgs = @form_params_orgs.merge(@form_params_user)
5958

60-
render json: @form_params3
59+
render json: @form_params_user_orgs
6160
end
6261

6362
def show
@@ -68,8 +67,6 @@ def create
6867
@project = Project.create(project_params)
6968
@project.user_id = @current_user.id
7069

71-
puts @project.github_slug
72-
7370
if @project.save
7471
render json: @project, status: :created
7572
else
@@ -90,12 +87,11 @@ def destroy
9087
end
9188

9289
def get_contributors
93-
@current_user = AuthorizeApiRequest.call(request.headers).result
94-
@client = Octokit::Client.new(access_token: @current_user.access_token)
90+
client = Adapter::GitHubProject.new(request)
9591

9692
contributors = []
9793

98-
@client.contributors(@project.github_slug).each do |contributor|
94+
(client.get_contributors(@project.github_slug)).each do |contributor|
9995
contributors.push(contributor.login)
10096
end
10197

0 commit comments

Comments
 (0)