From 9f62cc5878499abc379cb3e1406c1511bc9d249c Mon Sep 17 00:00:00 2001 From: npendery Date: Fri, 28 Apr 2017 14:19:27 -0600 Subject: [PATCH] Update github webhook controllers --- web/controllers/github_issue_comment_controller.ex | 6 +++--- web/controllers/github_issue_controller.ex | 14 ++++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/web/controllers/github_issue_comment_controller.ex b/web/controllers/github_issue_comment_controller.ex index 7e79091e3..4e10dd35f 100644 --- a/web/controllers/github_issue_comment_controller.ex +++ b/web/controllers/github_issue_comment_controller.ex @@ -7,7 +7,7 @@ defmodule CodeCorps.GithubIssueCommentController do case payload["action"] do "created" -> # create comment - attributes = convert_comment_attributes(payload) + attributes = comment_attributes(payload) changeset = %Comment{} |> Comment.create_changeset(attributes) case Repo.insert(changeset) do {:ok, _comment} -> @@ -19,7 +19,7 @@ defmodule CodeCorps.GithubIssueCommentController do "edited" -> # update comment comment = lookup_comment(payload) - attributes = convert_comment_attributes(payload) + attributes = comment_attributes(payload) changeset = comment |> Comment.changeset(attributes) case Repo.update(changeset) do {:ok, _comment} -> @@ -44,7 +44,7 @@ defmodule CodeCorps.GithubIssueCommentController do Comment |> Repo.get_by(github_id: comment_id) end - defp convert_comment_attributes(payload) do + defp comment_attributes(payload) do comment = payload["comment"] %{ "github_id" => comment["id"], diff --git a/web/controllers/github_issue_controller.ex b/web/controllers/github_issue_controller.ex index 08e830e8c..4eea8a09d 100644 --- a/web/controllers/github_issue_controller.ex +++ b/web/controllers/github_issue_controller.ex @@ -4,12 +4,10 @@ defmodule CodeCorps.GithubIssueController do alias CodeCorps.Task def handle(conn, payload) do - attributes = convert_task_attributes(payload) - task = lookup_task(payload) - case payload["action"] do "opened" -> # create task + attributes = task_attributes(payload) changeset = %Task{} |> Task.github_create_changeset(attributes) case Repo.insert(changeset) do {:ok, _task} -> @@ -20,6 +18,8 @@ defmodule CodeCorps.GithubIssueController do end "edited" -> # update task + task = lookup_task(payload) + attributes = task_attributes(payload) changeset = task |> Task.github_update_changeset(attributes) case Repo.update(changeset) do {:ok, _task} -> @@ -30,6 +30,7 @@ defmodule CodeCorps.GithubIssueController do end "deleted" -> # delete task + task = lookup_task(payload) Repo.delete(task) conn _ -> @@ -40,16 +41,17 @@ defmodule CodeCorps.GithubIssueController do defp lookup_task(payload) do task_issue_id = payload["issue"]["id"] - Task |> Repo.get_by(issue_id: task_issue_id) + Task |> Repo.get_by(github_id: task_issue_id) end - defp convert_task_attributes(payload) do + defp task_attributes(payload) do issue = payload["issue"] %{ + "id" => issue["id"], "title" => issue["title"], "markdown" => issue["body"], "task_list_id" => CodeCorps.TaskList |> Repo.get_by(name: "Inbox"), # Default to Inbox - "project_id" => CodeCorps.Project |> Repo.get_by(github_repo_id: payload["respository"]["id"]), + "project_id" => CodeCorps.Project |> Repo.get_by(github_id: payload["respository"]["id"]), "user_id" => CodeCorps.User |> Repo.get_by(github_id: issue["user"]["id"]) # Need to add funtion to create random CC user if no user in system } end