objective categorical abstract machine language personal data server
65
fork

Configure Feed

Select the types of activity you want to include in your feed.

create-invite command

futurGH a39cf075 3c0694da

+28 -4
+17
bin/main.ml
··· 219 219 @ [ Dream.get "/xrpc/**" (Xrpc.service_proxy_handler db) 220 220 ; Dream.post "/xrpc/**" (Xrpc.service_proxy_handler db) ] 221 221 222 + let create_invite ?(uses = 1) () = 223 + let%lwt db = Data_store.connect ~create:true () in 224 + let%lwt () = Data_store.init db in 225 + let%lwt code = 226 + Api.Server.CreateInviteCode.create_invite_code ~db ~did:"admin" 227 + ~use_count:uses 228 + in 229 + print_endline 230 + ("invite code created with " ^ string_of_int uses ^ " use(s): " ^ code) 231 + |> Lwt.return 232 + 222 233 let migrate_blobs ?did () = 223 234 match did with 224 235 | Some did -> ··· 237 248 238 249 commands: 239 250 serve start the PDS 251 + create-invite [uses] create an invite code with an optional number of uses (default: 1) 240 252 migrate-blobs migrate all local blobs to S3 241 253 migrate-blobs <did> migrate blobs for a specific user to S3 242 254 ··· 248 260 match args with 249 261 | [] | ["serve"] -> 250 262 Lwt_main.run (serve ()) 263 + | ["create-invite"] -> 264 + Lwt_main.run (create_invite ()) 265 + | ["create-invite"; uses] -> 266 + let uses = int_of_string uses in 267 + Lwt_main.run (create_invite ~uses ()) 251 268 | ["migrate-blobs"] -> 252 269 Lwt_main.run (migrate_blobs ()) 253 270 | ["migrate-blobs"; did] ->
+11 -4
pegasus/lib/api/server/createInviteCode.ml
··· 10 10 Digestif.SHA256.(digest_string (did ^ Mist.Tid.now ()) |> to_hex) 11 11 0 8 12 12 13 + let create_invite_code ~db ~did ~use_count = 14 + let remaining = Int.max 1 (Int.min use_count 5) in 15 + let code = generate_code did in 16 + let%lwt () = Data_store.create_invite ~code ~did ~remaining db in 17 + Lwt.return code 18 + 13 19 let handler = 14 20 Xrpc.handler ~auth:Admin (fun {req; db; _} -> 15 21 let%lwt {use_count; for_account} = 16 22 Xrpc.parse_body req request_of_yojson 17 23 in 18 - let remaining = Int.max 1 (Int.min use_count 5) in 19 - let did = Option.value for_account ~default:"admin" in 20 - let code = generate_code did in 21 - let%lwt () = Data_store.create_invite ~code ~did ~remaining db in 24 + let%lwt code = 25 + create_invite_code ~db 26 + ~did:(Option.value for_account ~default:"admin") 27 + ~use_count 28 + in 22 29 Dream.json @@ Yojson.Safe.to_string @@ response_to_yojson {code} )