fix some code style and add checks to ci

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2018-01-14 17:56:50 +01:00
parent fc89c563ec
commit 1217361b6c
64 changed files with 242 additions and 108 deletions

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Accounts.Account do
@moduledoc """
Represents an account (local and remote users)
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Accounts.{Account, User}

View File

@@ -5,7 +5,6 @@ defmodule Eventos.Accounts do
import Ecto.Query, warn: false
alias Eventos.Repo
import Logger
alias Eventos.Accounts.Account
@@ -37,12 +36,12 @@ defmodule Eventos.Accounts do
"""
def get_account!(id) do
account = Repo.get!(Account, id)
Repo.get!(Account, id)
end
def get_account_with_everything!(id) do
account = Repo.get!(Account, id)
|> Repo.preload :organized_events
Repo.preload(account, :organized_events)
end
@doc """
@@ -126,8 +125,8 @@ defmodule Eventos.Accounts do
end
def list_users_with_accounts do
Repo.all(User)
|> Repo.preload :account
users = Repo.all(User)
Repo.preload(users, :account)
end
@doc """
@@ -147,8 +146,8 @@ defmodule Eventos.Accounts do
def get_user!(id), do: Repo.get!(User, id)
def get_user_with_account!(id) do
Repo.get!(User, id)
|> Repo.preload :account
user = Repo.get!(User, id)
Repo.preload(user, :account)
end
@doc """
@@ -156,7 +155,7 @@ defmodule Eventos.Accounts do
"""
def find_by_email(email) do
user = Repo.get_by(User, email: email)
|> Repo.preload :account
Repo.preload(user, :account)
end
@doc """
@@ -199,23 +198,13 @@ defmodule Eventos.Accounts do
account_with_user = Ecto.Changeset.put_assoc(account, :user, user)
try do
coucou = Eventos.Repo.insert!(account_with_user)
Eventos.Repo.insert!(account_with_user)
user = find_by_email(email)
{:ok, user}
rescue
e in Ecto.InvalidChangesetError ->
Logger.debug(inspect e)
{:error, e.changeset.changes.user.errors}
end
# with {:ok, %Account{} = account} <- create_account(%{username: username, suspended: false, domain: nil, private_key: privkey, public_key: pubkey, uri: "h", url: "h"}) do
# case create_user(%{email: email, password: password, account: account}) do
# {:ok, %User{} = user } ->
# {:ok, user}
# {:error, %Ecto.Changeset{} = changeset} ->
# {:error, changeset}
# end
# end
end

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Accounts.User do
@moduledoc """
Represents a local user
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Accounts.{Account, User}

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Application do
@moduledoc """
The Eventos application
"""
use Application
# See https://hexdocs.pm/elixir/Application.html

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Events.Category do
@moduledoc """
Represents a category for events
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.Category

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Events.Event.TitleSlug do
@moduledoc """
Generates a slug for an event title
"""
alias Eventos.Events.Event
import Ecto.Query
alias Eventos.Repo
@@ -17,25 +20,16 @@ defmodule Eventos.Events.Event.TitleSlug do
nil -> slug
_event ->
slug
|> increment_slug
|> Eventos.Slug.increment_slug()
|> build_unique_slug(changeset)
end
end
defp increment_slug(slug) do
case List.pop_at(String.split(slug, "-"), -1) do
{nil, _} ->
slug
{suffix, slug_parts} ->
case Integer.parse(suffix) do
{id, _} -> Enum.join(slug_parts, "-") <> "-" <> Integer.to_string(id + 1)
:error -> slug <> "-1"
end
end
end
end
defmodule Eventos.Events.Event do
@moduledoc """
Represents an event
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Event, Participant, Request, Tag, Session, Track}
@@ -72,4 +66,4 @@ defmodule Eventos.Events.Event do
|> TitleSlug.maybe_generate_slug()
|> TitleSlug.unique_constraint()
end
end
end

View File

@@ -7,7 +7,6 @@ defmodule Eventos.Events do
alias Eventos.Repo
alias Eventos.Events.Event
alias Eventos.Accounts.Account
@doc """
Returns the list of events.

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Events.Participant do
@moduledoc """
Represents a participant, an account participating to an event
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Participant, Event}

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Events.Request do
@moduledoc """
Represents an account request to join an event
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Request, Event}

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Events.Session do
@moduledoc """
Represents a session for an event (such as a talk at a conference)
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Session, Event, Track}

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Events.Tag.TitleSlug do
@moduledoc """
Generates slugs for tags
"""
alias Eventos.Events.Tag
import Ecto.Query
alias Eventos.Repo
@@ -17,25 +20,16 @@ defmodule Eventos.Events.Tag.TitleSlug do
nil -> slug
_story ->
slug
|> increment_slug
|> Eventos.Slug.increment_slug()
|> build_unique_slug(changeset)
end
end
defp increment_slug(slug) do
case List.pop_at(String.split(slug, "-"), -1) do
{nil, _} ->
slug
{suffix, slug_parts} ->
case Integer.parse(suffix) do
{id, _} -> Enum.join(slug_parts, "-") <> "-" <> Integer.to_string(id + 1)
:error -> slug <> "-1"
end
end
end
end
defmodule Eventos.Events.Tag do
@moduledoc """
Represents a tag for events
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.Tag
@@ -56,4 +50,4 @@ defmodule Eventos.Events.Tag do
|> TitleSlug.maybe_generate_slug()
|> TitleSlug.unique_constraint()
end
end
end

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Events.Track do
@moduledoc """
Represents a track for an event (such as a theme) having multiple sessions
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Track, Event, Session}

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Groups.Group.TitleSlug do
@moduledoc """
Slug generation for groups
"""
alias Eventos.Groups.Group
import Ecto.Query
alias Eventos.Repo
@@ -17,25 +20,16 @@ defmodule Eventos.Groups.Group.TitleSlug do
nil -> slug
_story ->
slug
|> increment_slug
|> Eventos.Slug.increment_slug()
|> build_unique_slug(changeset)
end
end
defp increment_slug(slug) do
case List.pop_at(String.split(slug, "-"), -1) do
{nil, _} ->
slug
{suffix, slug_parts} ->
case Integer.parse(suffix) do
{id, _} -> Enum.join(slug_parts, "-") <> "-" <> Integer.to_string(id + 1)
:error -> slug <> "-1"
end
end
end
end
defmodule Eventos.Groups.Group do
@moduledoc """
Represents a group
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Groups.{Group, Member, Request}
@@ -63,4 +57,4 @@ defmodule Eventos.Groups.Group do
|> TitleSlug.maybe_generate_slug()
|> TitleSlug.unique_constraint()
end
end
end

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Groups.Member do
@moduledoc """
Represents the membership of an account to a group
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Groups.{Member, Group}

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Groups.Request do
@moduledoc """
Represents a group request, when an user wants to be member of a group
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Groups.Request

View File

@@ -1,3 +1,3 @@
Postgrex.Types.define(Eventos.PostgresTypes,
[Geo.PostGIS.Extension] ++ Ecto.Adapters.Postgres.extensions(),
json: Poison)
json: Poison)

View File

@@ -1,4 +1,7 @@
defmodule Eventos.Repo do
@moduledoc """
Eventos Repo
"""
use Ecto.Repo, otp_app: :eventos
@doc """

16
lib/eventos/slug.ex Normal file
View File

@@ -0,0 +1,16 @@
defmodule Eventos.Slug do
@moduledoc """
Common functions for slug generation
"""
def increment_slug(slug) do
case List.pop_at(String.split(slug, "-"), -1) do
{nil, _} ->
slug
{suffix, slug_parts} ->
case Integer.parse(suffix) do
{id, _} -> Enum.join(slug_parts, "-") <> "-" <> Integer.to_string(id + 1)
:error -> slug <> "-1"
end
end
end
end