Source file sihl.ml

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
module App = Core_app
module Cleaner = Core_cleaner
module Command = Core_command
module Configuration = Core_configuration
module Container = Core_container
module Log = Core_log
module Random = Core_random
module Schedule = Core_schedule
module Time = Core_time

module Web = struct
  include Web
  module Http = Web_http

  module Request = struct
    include Opium.Request

    let bearer_token req =
      match Opium.Request.header "authorization" req with
      | Some authorization ->
        (try Some (Scanf.sscanf authorization "Bearer %s" (fun b -> b)) with
        | _ -> None)
      | None -> None
    ;;
  end

  module Response = Opium.Response
  module Cooke = Opium.Cookie
  module Body = Opium.Body
  module Router = Opium.Router
  module Route = Opium.Route

  module Csrf = struct
    let find = Web_csrf.find
  end

  module Flash = struct
    let find_alert = Web_flash.find_alert
    let set_alert = Web_flash.set_alert
    let find_notice = Web_flash.find_notice
    let set_notice = Web_flash.set_notice
    let find = Web_flash.find
    let set = Web_flash.set
  end

  module Htmx = struct
    let is_htmx = Web_htmx.is_htmx
    let current_url = Web_htmx.current_url
    let prompt = Web_htmx.prompt
    let target = Web_htmx.target
    let trigger_name = Web_htmx.trigger_name
    let trigger_req = Web_htmx.trigger_req
    let set_push = Web_htmx.set_push
    let set_redirect = Web_htmx.set_redirect
    let set_refresh = Web_htmx.set_refresh
    let set_trigger = Web_htmx.set_trigger
    let set_trigger_after_settle = Web_htmx.set_trigger_after_settle
    let set_trigger_after_swap = Web_htmx.set_trigger_after_swap
  end

  module Id = struct
    let find = Web_id.find
  end

  module Session = struct
    let find = Web_session.find
    let set = Web_session.set
  end

  module Middleware = struct
    let csrf = Web_csrf.middleware
    let error = Web_error.middleware
    let flash = Web_flash.middleware
    let id = Web_id.middleware
    let static_file = Web_static.middleware
  end
end

module Database = struct
  include Database
  module Migration = Database_migration
end

module Contract = struct
  module Cache = Contract_cache
  module Database = Contract_database
  module Email = Contract_email
  module Email_template = Contract_email_template
  module Http = Contract_http
  module Migration = Contract_migration
  module Password_reset = Contract_password_reset
  module Queue = Contract_queue
  module Random = Contract_random
  module Schedule = Contract_schedule
  module Storage = Contract_storage
  module Token = Contract_token
  module User = Contract_user
end