this repo has no description

:sparkles: creating docker configuration

+4
.dockerignore
··· 1 + bin/ 2 + *.hurl 3 + .git/ 4 + .jj/
+17
Dockerfile
··· 1 + FROM golang:1.24 AS base 2 + 3 + WORKDIR /build 4 + 5 + COPY go.mod go.sum ./ 6 + 7 + RUN go mod download 8 + 9 + COPY . . 10 + 11 + RUN go build -o bin/gateway cmd/app/main.go 12 + 13 + ENV PORT=8000 14 + EXPOSE 8000 15 + 16 + # Start the application 17 + CMD ["/build/bin/gateway"]
+7
Dockerfile-stubby
··· 1 + FROM node:24 2 + 3 + RUN npm install -g stubby 4 + 5 + WORKDIR /app 6 + 7 + CMD ["stubby", "-d", "mock.yml"]
+4 -3
cmd/app/main.go
··· 18 18 19 19 func main() { 20 20 providers := providers.NewUseProviders([]providers.Provider{ 21 - providers.NewBraintreeProvider(getEnv("BRAINTREE_URL", "localhost:8000")), 22 - providers.NewStripeProvider(getEnv("STRIPE_URL", "localhost:8001")), 21 + providers.NewBraintreeProvider(getEnv("BRAINTREE_URL", "localhost:8001")), 22 + providers.NewStripeProvider(getEnv("STRIPE_URL", "localhost:8002")), 23 23 }) 24 24 paymentsService := service.NewPaymentService(providers) 25 25 26 - server := web.NewServer(paymentsService, "8000") 26 + port := getEnv("PORT", "8000") 27 + server := web.NewServer(paymentsService, port) 27 28 server.ConfigureRouter() 28 29 29 30 if err := server.Start(); err != nil {
+29
docker-compose.yml
··· 1 + services: 2 + api-gateway: 3 + build: 4 + dockerfile: $PWD/Dockerfile 5 + ports: 6 + - "8000:8000" 7 + environment: 8 + PORT: 8000 9 + BRAINTREE_URL: stripe 10 + STRIPE_URL: braintree 11 + depends_on: 12 + - stripe 13 + - braintree 14 + 15 + stripe: 16 + build: 17 + dockerfile: $PWD/Dockerfile-stubby 18 + environment: 19 + PORT: 8882 20 + volumes: 21 + - $PWD/mocks/stripe.yml:/app/mock.yml 22 + 23 + braintree: 24 + build: 25 + dockerfile: $PWD/Dockerfile-stubby 26 + environment: 27 + PORT: 8882 28 + volumes: 29 + - $PWD/mocks/braintree.yml:/app/mock.yml
+27
mocks/braintree.yml
··· 1 + - request: 2 + url: ^/charge$ 3 + method: POST 4 + headers: 5 + content-type: application/json 6 + response: 7 + - status: 200 8 + latency: 5000 9 + headers: 10 + content-type: application/json 11 + server: stubbedServer/4.2 12 + body: > 13 + { 14 + "amount": 1000, 15 + "currency": "BRL", 16 + "description": "", 17 + "paymentMethod": { 18 + "type": "card", 19 + "card": { 20 + "number": "", 21 + "holderName": "", 22 + "cvv": "", 23 + "expirationDate": "22/2025", 24 + "installments": 1 25 + } 26 + } 27 + }
+25
mocks/stripe.yml
··· 1 + - request: 2 + url: ^/transactions$ 3 + method: POST 4 + headers: 5 + content-type: application/json 6 + response: 7 + - status: 200 8 + latency: 5000 9 + headers: 10 + content-type: application/json 11 + server: stubbedServer/4.2 12 + body: > 13 + { 14 + "amount": 1000, 15 + "currency": "BRL", 16 + "statementDescriptor": "", 17 + "paymentType": "card", 18 + "card": { 19 + "number": "", 20 + "holder": "", 21 + "cvv": "", 22 + "expiration": "22/2025", 23 + "installmentNumber": 1 24 + } 25 + }