summaryrefslogtreecommitdiff
blob: 475d1f2b300500a6237d75e16eedcc53588bc98e (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
module Struct.Flags exposing
   (
      Type,
      maybe_get_parameter,
      force_get_parameter,
      get_parameters_as_url,
      get_session_token,
      get_user_id
   )

-- Elm -------------------------------------------------------------------------
import List

-- Shared ----------------------------------------------------------------------
import Util.List

--------------------------------------------------------------------------------
-- TYPES -----------------------------------------------------------------------
--------------------------------------------------------------------------------
type alias Type =
   {
      user_id : String,
      token : String,
      url_parameters : (List (List String))
   }

--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
parameter_as_url : (List String) -> String
parameter_as_url parameter =
   case parameter of
      [name, value] -> (name ++ "=" ++ value)
      _ -> ""

--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
maybe_get_parameter : String -> Type -> (Maybe String)
maybe_get_parameter parameter flags =
   case
      (Util.List.get_first
         (\e -> ((List.head e) == (Just parameter)))
         flags.url_parameters
      )
   of
      Nothing -> Nothing
      (Just a) ->
         case (List.tail a) of
            Nothing -> Nothing
            (Just b) -> (List.head b)

force_get_parameter : String -> Type -> String
force_get_parameter parameter flags =
   case (maybe_get_parameter parameter flags) of
      Nothing -> ""
      (Just str) -> str

get_parameters_as_url : Type -> String
get_parameters_as_url flags =
   (List.foldl
      (\parameter -> \current_parameters ->
         (current_parameters ++ "&" ++ (parameter_as_url parameter))
      )
      ""
      flags.url_parameters
   )

get_session_token : Type -> String
get_session_token flags = flags.token

get_user_id : Type -> String
get_user_id flags = flags.user_id