/
main.go
49 lines (40 loc) · 1.17 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package main
import (
"github.com/VDliveson/go-serverless-yt/pkg/handlers"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/dynamodb"
"github.com/aws/aws-sdk-go/service/dynamodb/dynamodbiface"
)
var (
dynaClient dynamodbiface.DynamoDBAPI
)
func main() {
// region := os.Getenv("AWS_REGION") //ap-south-1 or us-west-2
// region := "us-west-2"
awsSession, err := session.NewSession(&aws.Config{
Region: aws.String("us-west-2")})
if err != nil {
return
}
dynaClient = dynamodb.New(awsSession)
lambda.Start(handler)
}
// const tableName = "LambdaInGoUser"
const tableName = "go-serverless-yt"
func handler(req events.APIGatewayProxyRequest) (*events.APIGatewayProxyResponse, error) {
switch req.HTTPMethod {
case "GET":
return handlers.GetUser(req, tableName, dynaClient)
case "POST":
return handlers.CreateUser(req, tableName, dynaClient)
case "PUT":
return handlers.UpdateUser(req, tableName, dynaClient)
case "DELETE":
return handlers.DeleteUser(req, tableName, dynaClient)
default:
return handlers.UnhandledMethod()
}
}