Skip to content

Commit

Permalink
feat: add sync checker function #4
Browse files Browse the repository at this point in the history
  • Loading branch information
noobj committed Sep 30, 2022
1 parent c844be8 commit 868894c
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 7 deletions.
1 change: 1 addition & 0 deletions cmd/ahorro/login/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ func Handler(ctx context.Context, request events.APIGatewayProxyRequest) (events
resp := events.APIGatewayV2HTTPResponse{
StatusCode: 200,
IsBase64Encoded: false,
Body: "logged-in",
Headers: map[string]string{
"Content-Type": "application/json",
},
Expand Down
3 changes: 1 addition & 2 deletions cmd/ahorro/sync/callback/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ func Handler(ctx context.Context, request events.APIGatewayV2HTTPRequest) (event

env := config.GetInstance()

randStateTable := env.DynamoRandTable
session, _ := session.NewSession()
svc := dynamodb.New(session)
input := &dynamodb.GetItemInput{
Expand All @@ -46,7 +45,7 @@ func Handler(ctx context.Context, request events.APIGatewayV2HTTPRequest) (event
S: aws.String(user.Id.Hex()),
},
},
TableName: aws.String(randStateTable),
TableName: aws.String(env.DynamoRandTable),
}

item, err := svc.GetItem(input)
Expand Down
69 changes: 69 additions & 0 deletions cmd/ahorro/sync/checker/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package main

import (
"context"
"fmt"
"log"
"time"

"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/noobj/go-serverless-services/internal/config"
"github.com/noobj/go-serverless-services/internal/helpers/helper"
jwtMiddleWare "github.com/noobj/go-serverless-services/internal/middleware/jwt_auth"
)

var internalErrorhandler = func() (events.APIGatewayProxyResponse, error) {
return helper.GenerateErrorResponse[events.APIGatewayProxyResponse](500)
}

func Handler(ctx context.Context, request events.APIGatewayV2HTTPRequest) (events.APIGatewayProxyResponse, error) {
taskId, taskIdExist := request.QueryStringParameters["taskId"]
if !taskIdExist {
log.Println("Request has no task id")
return helper.GenerateErrorResponse[events.APIGatewayProxyResponse](400, "request query error")
}

env := config.GetInstance()

session, _ := session.NewSession()
svc := dynamodb.New(session)
input := &dynamodb.GetItemInput{
Key: map[string]*dynamodb.AttributeValue{
"TaskId": {
S: aws.String(taskId),
},
},
TableName: aws.String(env.DynamoTaskTable),
}

for i := 0; i < 10; i++ {
item, err := svc.GetItem(input)

if err != nil {
fmt.Println("Fetch task status error", err)
return internalErrorhandler()
}

if item.Item == nil {
return helper.GenerateErrorResponse[events.APIGatewayProxyResponse](400, "task id not found")
}

status := *item.Item["Completed"].N

if status != fmt.Sprint(helper.Pending) {
return helper.GenerateApiResponse[events.APIGatewayProxyResponse](status)
}

time.Sleep(time.Second)
}

return helper.GenerateApiResponse[events.APIGatewayProxyResponse](helper.Pending)
}

func main() {
lambda.Start(jwtMiddleWare.Auth(Handler))
}
4 changes: 0 additions & 4 deletions cmd/ahorro/sync/receiver/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ import (
drive "google.golang.org/api/drive/v3"
)

type Specification struct {
DynamoRandTable string `required:"true" split_words:"true"`
}

func Handler(ctx context.Context, request events.APIGatewayV2HTTPRequest) (events.APIGatewayProxyResponse, error) {
user, ok := helper.GetUserFromContext(ctx)
if !ok {
Expand Down
11 changes: 10 additions & 1 deletion serverless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ functions:
package:
include:
- bin/sync_callback
sync_hanlder:
sync_handler:
handler: bin/sync_handler
events:
- sqs:
Expand All @@ -132,6 +132,15 @@ functions:
package:
include:
- bin/sync_handler
sync_checker:
handler: bin/sync_checker
events:
- httpApi:
path: /sync/check
method: get
package:
include:
- bin/sync_checker
resources:
Resources:
AhorroSyncQueue:
Expand Down

0 comments on commit 868894c

Please sign in to comment.