first commit

This commit is contained in:
Oleh Astappiev 2024-10-16 15:57:59 +02:00
commit 3ca46c9ea2
No known key found for this signature in database
GPG key ID: 37D7AC22589E9632
19 changed files with 958 additions and 0 deletions

52
umami_websites.go Normal file
View file

@ -0,0 +1,52 @@
package traefik_umami_feeder
import (
"net/http"
"time"
)
type WebsitesResponse struct {
Data []Website `json:"data"`
Count int `json:"count"`
Page int `json:"page"`
PageSize int `json:"pageSize"`
OrderBy string `json:"orderBy"`
}
type Website struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
Domain string `json:"domain"`
CreatedAt time.Time `json:"createdAt,omitempty"`
}
func createWebsite(umamiHost string, umamiToken string, websiteDomain string) (*Website, error) {
var headers = make(http.Header)
headers.Set("Authorization", "Bearer "+umamiToken)
var result Website
err := sendRequestAndParse(umamiHost+"/api/websites", Website{
Name: websiteDomain,
Domain: websiteDomain,
}, headers, &result)
if err != nil {
return nil, err
}
return &result, nil
}
func fetchWebsites(umamiHost string, umamiToken string) (*[]Website, error) {
var headers = make(http.Header)
headers.Set("Authorization", "Bearer "+umamiToken)
var result WebsitesResponse
err := sendRequestAndParse(umamiHost+"/api/websites?pageSize=200", nil, headers, &result)
if err != nil {
return nil, err
}
return &result.Data, nil
}