openpodcast / api

OpenPodcast API server
https://openpodcast.dev
8 stars 2 forks source link

Add analytics metadata #66

Closed mre closed 1 year ago

mre commented 1 year ago

Example:

curl -H 'Authorization: Bearer xxx' localhost:8080/analytics/v1/ping | jq

Result:

{
  "meta": {
    "query": "ping",
    "accountId": 1,
    "date": "2023-02-21T12:32:28.944Z",
    "result": "success"
  },
  "data": [
    {
      "result": "Pong"
    }
  ]
}
mre commented 1 year ago

@woolfg, is the format okay?

mre commented 1 year ago

Added test query.

curl -H 'Authorization: Bearer xxxx' localhost:8080/analytics/v1/test | jq
{
  "meta": {
    "query": "test",
    "accountId": 1,
    "date": "2023-02-21T13:44:06.986Z",
    "result": "success"
  },
  "data": [
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "0-17",
      "spa_facet_type": "age",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 0,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    },
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "18-22",
      "spa_facet_type": "age",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 0,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    },
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "23-27",
      "spa_facet_type": "age",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 0,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    },
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "28-34",
      "spa_facet_type": "age",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 0,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    },
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "35-44",
      "spa_facet_type": "age",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 2,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    },
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "45-59",
      "spa_facet_type": "age",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 0,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    },
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "60-150",
      "spa_facet_type": "age",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 0,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    },
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "unknown",
      "spa_facet_type": "age",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 0,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    },
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "ALL",
      "spa_facet_type": "age_sum",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 2,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    },
    {
      "account_id": 1,
      "spa_date": "2022-10-29T22:00:00.000Z",
      "spa_facet": "DE",
      "spa_facet_type": "country",
      "spa_gender_not_specified": 0,
      "spa_gender_female": 2,
      "spa_gender_male": 0,
      "spa_gender_non_binary": 0
    }
  ]
}