Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions pkg/importer/meetup_repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ func NewGraphQLMeetupRepository(

const getFutureEventsQuery = `
query ($urlname: String!, $itemsNum: Int!, $cursor: String) {
events: groupByUrlname(urlname: $urlname) {
unifiedEvents(input: { first: $itemsNum, after: $cursor }) {
count
groupByUrlname(urlname: $urlname) {
events(first: $itemsNum, after: $cursor, filter: { status: [ACTIVE] }) {
totalCount
pageInfo {
endCursor
hasNextPage
Expand All @@ -66,12 +66,12 @@ const getFutureEventsQuery = `
name
urlname
}
host {
eventHosts {
name
}
images {
featuredEventPhoto {
id
baseUrl
preview
}
}
}
Expand All @@ -82,16 +82,16 @@ const getFutureEventsQuery = `

type MeetupFutureEventsResponse struct {
Data struct {
Events struct {
UnifiedEvents struct {
Count int `json:"count"`
PageInfo struct {
GroupByUrlname struct {
Events struct {
TotalCount int `json:"totalCount"`
PageInfo struct {
EndCursor string `json:"endCursor"`
HasNextPage bool `json:"hasNextPage"`
} `json:"pageInfo"`
Edges []MeetupEdge `json:"edges"`
} `json:"unifiedEvents"`
} `json:"events"`
} `json:"events"`
} `json:"groupByUrlname"`
} `json:"data"`
}

Expand Down Expand Up @@ -128,7 +128,7 @@ func (r *GraphQLMeetupRepository) GetEventsUntilDateForGroup(
return nil, err
}

for _, edge := range response.Data.Events.UnifiedEvents.Edges {
for _, edge := range response.Data.GroupByUrlname.Events.Edges {
event := edge.Node
events = append(events, event)

Expand All @@ -141,7 +141,7 @@ func (r *GraphQLMeetupRepository) GetEventsUntilDateForGroup(
break
}

pageInfo := response.Data.Events.UnifiedEvents.PageInfo
pageInfo := response.Data.GroupByUrlname.Events.PageInfo

if !pageInfo.HasNextPage {
break
Expand Down
8 changes: 4 additions & 4 deletions pkg/importer/meetup_repository_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,16 +136,16 @@ func generateMeetupResponse(
cursor string,
) *MeetupFutureEventsResponse {
response := &MeetupFutureEventsResponse{}
response.Data.Events.UnifiedEvents.Count = len(events)
response.Data.Events.UnifiedEvents.PageInfo.EndCursor = cursor
response.Data.Events.UnifiedEvents.PageInfo.HasNextPage = cursor != ""
response.Data.GroupByUrlname.Events.TotalCount = len(events)
response.Data.GroupByUrlname.Events.PageInfo.EndCursor = cursor
response.Data.GroupByUrlname.Events.PageInfo.HasNextPage = cursor != ""

edges := make([]MeetupEdge, 0, len(events))

for _, event := range events {
edges = append(edges, MeetupEdge{Node: event})
}

response.Data.Events.UnifiedEvents.Edges = edges
response.Data.GroupByUrlname.Events.Edges = edges
return response
}
2 changes: 1 addition & 1 deletion pkg/meetupproxy/meetupproxyconfig/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func NewConfig(ctx context.Context, awsConfigFactory appconfig.AwsConfigManager)

func setDefaults(_ context.Context, v *viper.Viper) error {
v.SetDefault(strings.ToLower(meetupAuthUrlKey), "https://secure.meetup.com/oauth2/access")
v.SetDefault(strings.ToLower(meetupApiUrlKey), "https://api.meetup.com/gql")
v.SetDefault(strings.ToLower(meetupApiUrlKey), "https://api.meetup.com/gql-ext")

meetupPrivateKeyBase64 := v.Get(strings.ToLower(meetupPrivateKeyBase64Key)).(string)
meetupPrivateKey, err := base64.StdEncoding.DecodeString(meetupPrivateKeyBase64)
Expand Down
2 changes: 1 addition & 1 deletion pkg/meetupproxy/meetupproxyconfig/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func TestNewConfig(t *testing.T) {
assert.Equal(t, "user123", cfg.MeetupUserID)
assert.Equal(t, []byte("private_key"), cfg.MeetupPrivateKey)
assert.Equal(t, "https://secure.meetup.com/oauth2/access", cfg.MeetupAuthURL)
assert.Equal(t, "https://api.meetup.com/gql", cfg.MeetupAPIURL)
assert.Equal(t, "https://api.meetup.com/gql-ext", cfg.MeetupAPIURL)
})

t.Run("successful load from .env file", func(t *testing.T) {
Expand Down
21 changes: 21 additions & 0 deletions pkg/shared/models/meetup.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ func (e *MeetupEvent) UnmarshalJSON(data []byte) error {
Name string `json:"name"`
URLName string `json:"urlname"`
} `json:"group"`
EventHosts []struct {
Name string `json:"name"`
} `json:"eventHosts"`
FeaturedPhoto *struct {
ID string `json:"id"`
BaseUrl string `json:"baseUrl"`
} `json:"featuredEventPhoto"`
*Alias
}{
Alias: (*Alias)(e),
Expand All @@ -52,5 +59,19 @@ func (e *MeetupEvent) UnmarshalJSON(data []byte) error {

e.GroupName = aux.Group.Name
e.GroupID = aux.Group.URLName

// Extract first event host name for backward compatibility
if len(aux.EventHosts) > 0 && aux.EventHosts[0].Name != "" {
e.Host = &MeetupHost{Name: aux.EventHosts[0].Name}
}

// Map featuredEventPhoto to Images for backward compatibility
if aux.FeaturedPhoto != nil && aux.FeaturedPhoto.ID != "" {
imageURL := aux.FeaturedPhoto.BaseUrl + aux.FeaturedPhoto.ID + "/676x380.jpg"
e.Images = []MeetupImage{
{BaseUrl: imageURL, Preview: imageURL},
}
}

return nil
}
16 changes: 8 additions & 8 deletions pkg/shared/models/meetup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@ func TestMeetupEvent_UnmarshalJSON(t *testing.T) {
"name": "Open SGF",
"urlname": "open-sgf"
},
"host": {
"name": "Levi Zitting"
},
"images": [
"eventHosts": [
{
"baseUrl": "https://secure-content.meetupstatic.com/images/classic-events/",
"preview": null
"name": "Levi Zitting"
}
]
],
"featuredEventPhoto": {
"id": "501234567",
"baseUrl": "https://secure-content.meetupstatic.com/images/classic-events/"
}
}`

var event MeetupEvent
Expand All @@ -60,7 +60,7 @@ func TestMeetupEvent_UnmarshalJSON(t *testing.T) {
assert.Len(t, event.Images, 1)
assert.Equal(
t,
"https://secure-content.meetupstatic.com/images/classic-events/",
"https://secure-content.meetupstatic.com/images/classic-events/501234567/676x380.jpg",
event.Images[0].BaseUrl,
)
}