Skip to content
Snippets Groups Projects
Commit 10715b81 authored by Francé Wilke's avatar Francé Wilke
Browse files

Add provider_id to api logs

parent 715cfebf
Branches
Tags v2.0.2
No related merge requests found
......@@ -2,8 +2,8 @@ package api_logs
import (
"github.com/thoas/go-funk"
"gitlab.com/uafrica/go-utils/string_utils"
"net/url"
"strconv"
"strings"
"time"
......@@ -37,14 +37,24 @@ func GenerateIncomingAPILog(startTime time.Time, requestID *string, claim map[st
userID, _ := claim["UserID"].(int64)
username, _ := claim["Username"].(string)
accountID, _ := claim["AccountID"].(int64)
providerID, _ := claim["ProviderID"].(int64)
if accountID == 0 {
if accountIDParam, ok := req.QueryStringParameters["account_id"]; ok {
if i64, err := strconv.ParseInt(accountIDParam, 10, 64); err == nil && i64 > 0 {
if i64, err := string_utils.StringToInt64(accountIDParam); err == nil && i64 > 0 {
accountID = i64
}
}
}
if providerID == 0 {
if providerIDParam, ok := req.QueryStringParameters["provider_id"]; ok {
if i64, err := string_utils.StringToInt64(providerIDParam); err == nil && i64 > 0 {
providerID = i64
}
}
}
typeString := "api-incoming"
if funk.Contains(req.Path, "webhook") {
typeString = "webhook-incoming"
......@@ -67,6 +77,7 @@ func GenerateIncomingAPILog(startTime time.Time, requestID *string, claim map[st
UserID: userID,
Username: username,
AccountID: accountID,
ProviderID: providerID,
Request: ApiLogRequest{
Headers: req.Headers,
QueryParameters: req.QueryStringParameters,
......@@ -99,6 +110,8 @@ func GenerateOutgoingAPILog(startTime time.Time, requestID *string, claim map[st
userID, _ := claim["UserID"].(int64)
username, _ := claim["Username"].(string)
accountID, _ := claim["AccountID"].(int64)
providerID, _ := claim["ProviderID"].(int64)
params := map[string]string{}
parsedURL, err := url.Parse(urlString)
if err == nil {
......@@ -125,6 +138,7 @@ func GenerateOutgoingAPILog(startTime time.Time, requestID *string, claim map[st
UserID: userID,
Username: username,
AccountID: accountID,
ProviderID: providerID,
Request: ApiLogRequest{
Headers: requestHeaders,
QueryParameters: params,
......@@ -155,6 +169,7 @@ type ApiLog struct {
InitialAuthUsername string `json:"initial_auth_username,omitempty"`
InitialAuthType string `json:"initial_auth_type,omitempty"`
AccountID int64 `json:"account_id,omitempty"`
ProviderID int64 `json:"provider_id,omitempty"`
UserID int64 `json:"user_id,omitempty"`
Username string `json:"username,omitempty"`
SourceIP string `json:"source_ip,omitempty"` //only logged for incoming API
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment