//gleam import gleam/http import gleam/http/request import gleam/httpc //Import firebase objects, document type import error import objects/document //get_doc function to retrieve a document from Google's Firestore Database pub fn get_doc( apikey apikey: String, apiver apiver: String, database database: String, doc doc: String, proj_id proj_id: String, ) -> Result(document.FireballDocument, error.FireballError) { //Init a request object case request.to( //Firestore url "https://firestore.googleapis.com/" //Firestore Web API version <> apiver <> "/projects/" //Project id <> proj_id <> "/databases/" //Database to use <> database <> "/documents/" //Document path <> doc <> "?key=" //API Key for the google cloud project <> apikey, ) { //Check output Ok(base_req) -> { //Add headers let req = //Add headers request.prepend_header(base_req, "Content-type", "application/json") //Set method |> request.set_method(http.Get) //Send the HTTP request to the server case httpc.send(req) { //Retrieve successful response Ok(resp) -> Ok(document.FireballDocument(data: resp.body, creation_time: "")) //Handle errors Error(_) -> Error(error.FireballError(err: "error while sending request")) } } //Handle errors Error(_) -> Error(error.FireballError(err: "error while forming request")) } }