35 lines
1.3 KiB
Go
35 lines
1.3 KiB
Go
package util
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func FindSubscriptionByChanName(t *testing.T, baseUrl string, subscriber Userdat, ownerUID string, chanName string) (subscriptionID string, channelID string) {
|
|
type subobj struct {
|
|
SubscriptionId string `json:"subscription_id"`
|
|
ChannelId string `json:"channel_id"`
|
|
ChannelInternalName string `json:"channel_internal_name"`
|
|
ChannelOwnerUserId string `json:"channel_owner_user_id"`
|
|
Confirmed bool `json:"confirmed"`
|
|
Active bool `json:"active"`
|
|
}
|
|
type sublist struct {
|
|
Subscriptions []subobj `json:"subscriptions"`
|
|
}
|
|
|
|
subs := RequestAuthGet[sublist](t, subscriber.AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions?direction=outgoing", subscriber.UID))
|
|
|
|
for _, sub := range subs.Subscriptions {
|
|
if sub.ChannelOwnerUserId == ownerUID && sub.ChannelInternalName == chanName {
|
|
fullSub := RequestAuthGet[subobj](t, subscriber.AdminKey, baseUrl, fmt.Sprintf("/api/v2/users/%s/subscriptions/%s", subscriber.UID, sub.SubscriptionId))
|
|
if fullSub.ChannelOwnerUserId == ownerUID && fullSub.ChannelInternalName == chanName {
|
|
return fullSub.SubscriptionId, fullSub.ChannelId
|
|
}
|
|
}
|
|
}
|
|
|
|
t.Fatalf("Could not find subscription for user %s to channel %s owned by %s", subscriber.UID, chanName, ownerUID)
|
|
return "", ""
|
|
}
|