Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
context.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
open Common type t = { ua : string; secrets : Slack_t.secrets; } let make_secrets ?slack_access_token ?slack_signing_secret () : Slack_t.secrets = { slack_access_token; slack_signing_secret } let make ~ua ~secrets = { ua; secrets } let get_secrets_from_file path = let secrets = get_local_file_with path ~f:Slack_j.secrets_of_string in match secrets.slack_access_token with | None -> slack_lib_fail "slack_access_token is not defined in file '%s'" path | _ -> secrets let get_ctx ?(secrets_path = "secrets.json") ?(ua = "slack_api") () = make ~ua ~secrets:(get_secrets_from_file secrets_path) let empty_ctx () = make ~ua:"slack_api" ~secrets:(make_secrets ()) let get_slack_access_token ctx = match ctx.secrets.slack_access_token with | None -> slack_lib_fail "no slack token" | Some access_token -> access_token