code-corps/code-corps-api

View on GitHub
lib/code_corps/policy/github_repo.ex

Summary

Maintainability
Test Coverage
defmodule CodeCorps.Policy.GithubRepo do
  @moduledoc """
  Handles `User` authorization of actions on `GithubRepo` records
  """
  import CodeCorps.Policy.Helpers, only: [get_project: 1, administered_by?: 2]

  alias CodeCorps.{GithubRepo, User}

  def update?(%User{} = user, %GithubRepo{project_id: nil}, %{"project_id" => _} = params) do
    params |> get_project |> administered_by?(user)
  end
  def update?(%User{} = user, %GithubRepo{} = github_repo, %{}) do
    github_repo |> get_project |> administered_by?(user)
  end
end