package sihl
The modular functional web framework
Install
Dune Dependency
Authors
Maintainers
Sources
sihl-queue-0.1.9.tbz
sha256=77f0813d75a88edd14b3396e8b848d94c31c28803299b4b1bd4b78b1de4a2e80
sha512=a8907bc35ea14b7c3a7d638979a2a274860202b2de58b84b5621a4908db001ace493d8aa2e5383f4c8b1847efd256938592f63ef75a41521284b3640d3a7442a
doc/src/sihl.token/repo.ml.html
Source file repo.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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
module Repository = Sihl_repository module Database = Sihl_database module Migration = Sihl_migration module MariaDb (MigrationService : Migration.Sig.SERVICE) : Sig.REPOSITORY = struct module Sql = struct let find_request = Caqti_request.find Caqti_type.string Model.t {sql| SELECT uuid, token_value, token_data, token_kind, status, expires_at, created_at FROM token_tokens WHERE token_tokens.token_value = ? |sql} ;; let find_opt ~value = Database.Service.query (fun (module Connection : Caqti_lwt.CONNECTION) -> Connection.find_opt find_request value |> Lwt.map Database.Service.raise_error) ;; let find_by_id_request = Caqti_request.find Database.Id.t_string Model.t {sql| SELECT uuid, token_value, token_data, token_kind, status, expires_at, created_at FROM token_tokens WHERE token_tokens.uuid = ? |sql} ;; let find_by_id_opt ~id = Database.Service.query (fun (module Connection : Caqti_lwt.CONNECTION) -> Connection.find_opt find_by_id_request id |> Lwt.map Database.Service.raise_error) ;; let insert_request = Caqti_request.exec Model.t {sql| INSERT INTO token_tokens ( uuid, token_value, token_data, token_kind, status, expires_at, created_at ) VALUES ( $1, $2, $3, $4, $5, $6, $7 ) |sql} ;; let insert ~token = Database.Service.query (fun (module Connection : Caqti_lwt.CONNECTION) -> Connection.exec insert_request token |> Lwt.map Database.Service.raise_error) ;; let update_request = Caqti_request.exec Model.t {sql| UPDATE token_tokens SET token_data = $3, token_kind = $4, status = $5, expires_at = $6, created_at = $7 WHERE token_tokens.token_value = $2 |sql} ;; let update ~token = Database.Service.query (fun (module Connection : Caqti_lwt.CONNECTION) -> Connection.exec update_request token |> Lwt.map Database.Service.raise_error) ;; let clean_request = Caqti_request.exec Caqti_type.unit "TRUNCATE token_tokens;" let clean () = Database.Service.query (fun (module Connection : Caqti_lwt.CONNECTION) -> Connection.exec clean_request () |> Lwt.map Database.Service.raise_error) ;; end module Migration = struct let fix_collation = Migration.create_step ~label:"fix collation" "SET collation_server = 'utf8mb4_unicode_ci'" ;; let create_tokens_table = Migration.create_step ~label:"create tokens table" {sql| CREATE TABLE IF NOT EXISTS token_tokens ( id BIGINT UNSIGNED AUTO_INCREMENT, uuid BINARY(16) NOT NULL, token_value VARCHAR(128) NOT NULL, token_data VARCHAR(1024), token_kind VARCHAR(128) NOT NULL, status VARCHAR(128) NOT NULL, expires_at TIMESTAMP NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), CONSTRAINT unqiue_uuid UNIQUE KEY (uuid), CONSTRAINT unique_value UNIQUE KEY (token_value) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; |sql} ;; let migration () = Migration.(empty "tokens" |> add_step fix_collation |> add_step create_tokens_table) ;; end let register_migration () = MigrationService.register_migration (Migration.migration ()) let register_cleaner () = Repository.Service.register_cleaner Sql.clean let find_opt = Sql.find_opt let find_by_id_opt = Sql.find_by_id_opt let insert = Sql.insert let update = Sql.update end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>