Added grpc web service

This commit is contained in:
2024-11-17 11:07:26 -05:00
parent 1f1cd68192
commit 1ad11d7e08
10 changed files with 590 additions and 30 deletions

41
grpc/server.go Normal file
View File

@@ -0,0 +1,41 @@
package grpc
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/siteworxpro/img-proxy-url-generator/generator"
"log"
"strings"
)
type GeneratorService struct {
UnimplementedGeneratorServer
imgGenerator *generator.Generator
}
func NewService(imgGenerator *generator.Generator) *GeneratorService {
return &GeneratorService{imgGenerator: imgGenerator}
}
func (s *GeneratorService) Generate(c context.Context, r *UrlRequest) (*UrlResponse, error) {
var err error
format := generator.DEF
if r.Format != nil {
format, err = s.imgGenerator.StringToFormat(r.Format.String())
if err != nil {
return nil, err
}
}
url, err := s.imgGenerator.GenerateUrl(*r.Image, r.Params, format)
if err != nil {
return nil, err
}
log.Println(fmt.Sprintf("%s - [%s] - (%s)", *r.Image, strings.Join(r.Params, ","), url))
return &UrlResponse{Url: aws.String(url)}, nil
}