summaryrefslogtreecommitdiffstats
path: root/src/Types.elm
blob: ce487b64c953373c07793a037310c51b6f690a8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
module Types exposing (..)

import Http
import Time


type alias Model =
    { posts : Maybe (List Post)
    , composeInputValue : String
    , now : Time.Posix
    }


type Msg
    = NoOp
    | RequestLogout
      -- TIME
    | SetNowPosix Time.Posix
      -- POSTS
    | GetPosts
    | GotPosts (Result Http.Error (List Post))
    | LikePost Post
    | LikedPost (Result Http.Error Post)
      -- COMPOSE POST
    | ComposeInputChanged String
    | ComposePost
    | ComposedPost (Result Http.Error Post)


type alias Author =
    { id : String
    , name : String
    }


type alias Post =
    { id : String
    , content : String
    , author : Author
    , createdAt : Time.Posix
    , likes : Int
    }