Skip to content

Commit

Permalink
fix handling of different event types
Browse files Browse the repository at this point in the history
  • Loading branch information
Ivan Vlasic committed Sep 2, 2021
1 parent 9743236 commit 5d3dd88
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions functions/ws/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package main

import (
"context"
"encoding/json"
"fmt"

"github.com/aws/aws-lambda-go/events"
Expand All @@ -13,16 +14,22 @@ func main() {
lambda.Start(handler)
}

func handler(ctx context.Context, req interface{}) (interface{}, error) {
func handler(ctx context.Context, event interface{}) (interface{}, error) {
h, err := ws.NewHandler()
if err != nil {
return nil, err
}
switch req.(type) {
case events.APIGatewayProxyRequest:
return h.HandleApiGatewayRequest(ctx, req.(events.APIGatewayWebsocketProxyRequest))
case events.SQSEvent:
return nil, h.HandleSQSEvent(ctx, req.(events.SQSEvent))
data, err := json.Marshal(event)
if err != nil {
return nil, err
}
gwr := events.APIGatewayWebsocketProxyRequest{}
if err := json.Unmarshal(data, &gwr); err == nil {
return h.HandleApiGatewayRequest(ctx, gwr)
}
sqsr := events.SQSEvent{}
if err := json.Unmarshal(data, &sqsr); err == nil {
return nil, h.HandleSQSEvent(ctx, sqsr)
}
return nil, fmt.Errorf("unknown event type")
}

0 comments on commit 5d3dd88

Please sign in to comment.