in cmd/main.go [25:76]
func main() {
fmt.Println("Starting Server")
post := model.Post{}
post.Id = "1"
post.Title = "my post"
post.Content = "post content"
post.Status = "posted"
post.CreateTimestamp = utils.GetLocalTimestampNow()
post.LastUpdateTimestamp = utils.GetLocalTimestampNow()
awsProfile, ok := os.LookupEnv("AWS_PROFILE")
log.Printf("AWS_PROFILE: %s", awsProfile)
var err error
var ps service.PostService
if ok {
log.Printf("Use AWS profile")
awsCfg, err = config.LoadDefaultConfig(ctx,
config.WithSharedConfigProfile(awsProfile),
)
if err != nil {
log.Fatalf("Error loading profile %v", err)
}
} else {
log.Printf("Use default role")
awsCfg, err = config.LoadDefaultConfig(ctx)
}
ddbSvc := dynamodb.NewFromConfig(awsCfg)
log.Printf("DDB service created")
ps, _ = service.NewDdbPostService(ddbSvc)
postServiceHandlers := api.PostServiceApi{PostService: ps}
router := gin.Default()
router.GET("/health", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "OK",
})
})
router.GET("/post/:id", postServiceHandlers.PostServiceGetApi)
router.POST("/post", postServiceHandlers.PostServiceAddApi)
_ = router.Run(":80")
}