immich-exporter/src/immich/auth.go
martin 107112b139
feat: use goroutines
Signed-off-by: martin <martin.labat92@gmail.com>
2023-02-13 13:46:10 +01:00

60 lines
1 KiB
Go

package immich
import (
"encoding/json"
"fmt"
"immich-exporter/src/models"
"io/ioutil"
"log"
"net/http"
"strings"
)
func Auth() {
url := models.GetURL() + "/api/auth/login"
method := "POST"
payload := strings.NewReader(`{
"email": "` + models.GetUsername() + `",
"password": "` + models.Getpassword() + `"}`)
client := &http.Client{}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
} else {
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
res, err := client.Do(req)
if err != nil {
log.Println(err)
return
} else {
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
log.Println(err)
return
}
if res.StatusCode == 400 {
log.Fatalln("Incorrect login")
} else {
var result models.StructLogin
if err := json.Unmarshal(body, &result); err != nil {
log.Println("Can not unmarshal JSON")
}
models.SetAccessToken(result.AccessToken)
}
}
}
}