Adding actor statistics API call
This commit is contained in:
parent
731c2b7ac9
commit
5041512453
@ -14,10 +14,17 @@ import (
|
|||||||
|
|
||||||
type InstanceStatsJson struct {
|
type InstanceStatsJson struct {
|
||||||
Timestamp time.Time `json:"timestamp"`
|
Timestamp time.Time `json:"timestamp"`
|
||||||
|
Instance string `json:"timestamp"`
|
||||||
ActivitiesCount int `json:"activitiescount"`
|
ActivitiesCount int `json:"activitiescount"`
|
||||||
ActorsCount int `json:"actorscount"`
|
ActorsCount int `json:"actorscount"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ActorStatsJson struct {
|
||||||
|
Timestamp time.Time `json:"timestamp"`
|
||||||
|
Actor string `json:"actor"`
|
||||||
|
ActivitiesCount int `json:"activitiescount"`
|
||||||
|
}
|
||||||
|
|
||||||
var metricsText string
|
var metricsText string
|
||||||
|
|
||||||
func enableCors(w *http.ResponseWriter) {
|
func enableCors(w *http.ResponseWriter) {
|
||||||
@ -223,8 +230,6 @@ func getInstanceStats(w http.ResponseWriter, r *http.Request) {
|
|||||||
enableCors(&w)
|
enableCors(&w)
|
||||||
instanceKeys, exists := r.URL.Query()["i"]
|
instanceKeys, exists := r.URL.Query()["i"]
|
||||||
|
|
||||||
// var err error
|
|
||||||
// var rows pgx.Rows
|
|
||||||
var instance string
|
var instance string
|
||||||
if exists {
|
if exists {
|
||||||
instance = instanceKeys[0]
|
instance = instanceKeys[0]
|
||||||
@ -232,6 +237,7 @@ func getInstanceStats(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
instancestatsjson := &InstanceStatsJson{}
|
instancestatsjson := &InstanceStatsJson{}
|
||||||
instancestatsjson.Timestamp = time.Now()
|
instancestatsjson.Timestamp = time.Now()
|
||||||
|
instancestatsjson.Instance = instance
|
||||||
|
|
||||||
if exists && instance != "" {
|
if exists && instance != "" {
|
||||||
var activitiescount int
|
var activitiescount int
|
||||||
@ -259,6 +265,36 @@ func getInstanceStats(w http.ResponseWriter, r *http.Request) {
|
|||||||
fmt.Fprintf(w, "%s", stringarray)
|
fmt.Fprintf(w, "%s", stringarray)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getActorStats(w http.ResponseWriter, r *http.Request) {
|
||||||
|
enableCors(&w)
|
||||||
|
actorKeys, exists := r.URL.Query()["a"]
|
||||||
|
|
||||||
|
var actor string
|
||||||
|
if exists {
|
||||||
|
actor = actorKeys[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
actorstatsjson := &ActorStatsJson{}
|
||||||
|
actorstatsjson.Timestamp = time.Now()
|
||||||
|
actorstatsjson.Actor = actor
|
||||||
|
|
||||||
|
if exists && actor != "" {
|
||||||
|
var actorscount int
|
||||||
|
|
||||||
|
selectActivities := pool.QueryRow(context.Background(), "SELECT count(*) FROM activities WHERE document->>'attributedTo' = $1", actor)
|
||||||
|
err := selectActivities.Scan(&actorscount)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error ", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
actorstatsjson.ActivitiesCount = actorscount
|
||||||
|
}
|
||||||
|
|
||||||
|
bytearray, _ := json.Marshal(actorstatsjson)
|
||||||
|
stringarray := string(bytearray)
|
||||||
|
fmt.Fprintf(w, "%s", stringarray)
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
pool = getDbPool()
|
pool = getDbPool()
|
||||||
|
|
||||||
@ -274,6 +310,7 @@ func main() {
|
|||||||
http.HandleFunc("/api/v1/search", getSearch)
|
http.HandleFunc("/api/v1/search", getSearch)
|
||||||
http.HandleFunc("/api/v1/trending", getTrending)
|
http.HandleFunc("/api/v1/trending", getTrending)
|
||||||
http.HandleFunc("/api/v1/instance/stats", getInstanceStats)
|
http.HandleFunc("/api/v1/instance/stats", getInstanceStats)
|
||||||
|
http.HandleFunc("/api/v1/actor/stats", getActorStats)
|
||||||
log.Print("Starting HTTP inbox on port http://0.0.0.0:6431")
|
log.Print("Starting HTTP inbox on port http://0.0.0.0:6431")
|
||||||
log.Fatal(http.ListenAndServe("0.0.0.0:6431", nil))
|
log.Fatal(http.ListenAndServe("0.0.0.0:6431", nil))
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user