penambahan template selanjutnya

This commit is contained in:
2025-07-25 11:00:19 +07:00
parent 6c23369c06
commit 3af7a7ecbb
12 changed files with 63 additions and 73 deletions

View File

@@ -1,42 +1,26 @@
FROM golang:1.23 AS builder FROM golang:1.23-alpine AS builder
# Install curl dan Tailwind dependencies
RUN apt-get update && apt-get install -y curl ca-certificates
WORKDIR /app WORKDIR /app
# Copy go.mod dan go.sum untuk dependency management
COPY go.mod go.sum ./ COPY go.mod go.sum ./
RUN go mod download RUN go mod tidy
# Copy seluruh project
COPY . . COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main ./cmd/api RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main ./cmd/api
# RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
# Install Tailwind CSS untuk generate output.css
RUN go install github.com/a-h/templ/cmd/templ@latest && \
templ generate && \
curl -sL https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-linux-x64 -o tailwindcss && \
chmod +x tailwindcss && \
./tailwindcss -i cmd/web/assets/css/input.css -o cmd/web/assets/css/output.css
FROM alpine:latest FROM alpine:latest
# Set timezone ke Asia/Jakarta # Set timezone ke Asia/Jakarta
ENV TZ=Asia/Jakarta ENV TZ=Asia/Jakarta
# Install dependensi runtime yang diperlukan
RUN apk --no-cache add ca-certificates tzdata RUN apk --no-cache add ca-certificates tzdata
WORKDIR /root/ WORKDIR /root/
# Copy binary yang sudah ter-build dari stage sebelumnya
COPY --from=builder /app/main . COPY --from=builder /app/main .
COPY --from=builder /app/.env . COPY --from=builder /app/.env .
EXPOSE 8084
# Expose port aplikasi
EXPOSE 8803
# Jalankan aplikasi
CMD ["./main"] CMD ["./main"]

View File

@@ -7,9 +7,8 @@ import (
"net/http" "net/http"
"os/signal" "os/signal"
"syscall" "syscall"
"time"
"template_blueprint/internal/server" "template_blueprint/internal/server"
"time"
) )
func gracefulShutdown(apiServer *http.Server, done chan bool) { func gracefulShutdown(apiServer *http.Server, done chan bool) {

View File

@@ -1,21 +1 @@
package web package web
import (
"log"
"net/http"
)
func HelloWebHandler(w http.ResponseWriter, r *http.Request) {
err := r.ParseForm()
if err != nil {
http.Error(w, "Bad Request", http.StatusBadRequest)
}
name := r.FormValue("name")
component := HelloPost(name)
err = component.Render(r.Context(), w)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
log.Fatalf("Error rendering in HelloWebHandler: %e", err)
}
}

View File

@@ -3,14 +3,33 @@ services:
build: build:
context: . context: .
dockerfile: Dockerfile dockerfile: Dockerfile
container_name: api-template
restart: always restart: always
ports: ports:
- 8803:8803 - 8084:8084
volumes:
- .:/app
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
environment: environment:
TZ: Asia/Jakarta # TIMEZONE
MONGODB_DEV_HOST: 10.10.123.206 - TZ=Asia/Jakarta
MONGODB_DEV_PORT: 27017 # DATABASE SIMRS V3.0
MONGODB_DEV_USER: admin - SIMRS_STAG_HOST=10.10.123.223
MONGODB_DEV_PASS: stim*rs54 - SIMRS_STAG_PORT=5432
MONGODB_DEV_MASTER: master - SIMRS_STAG_NAME=simrs-stag
MONGODB_DEV_LOCAL: local - SIMRS_STAG_USER=simtest
- SIMRS_STAG_PASS=12345
# DATABASE SATU DATA
- SATUDATA_HOST=10.10.123.165
- SATUDATA_USER=stim
- SATUDATA_PASS=stim*RS54
- SATUDATA_NAME=satu_db
- SATUDATA_PORT=5000
# MONGODB DEV
- MONGODB_DEV_HOST=10.10.123.206
- MONGODB_DEV_PORT=27017
- MONGODB_DEV_USER=admin
- MONGODB_DEV_PASS=stim*rs54
- MONGODB_DEV_MASTER=master
- MONGODB_DEV_LOCAL=local

12
go.mod
View File

@@ -11,7 +11,7 @@ require (
github.com/jackc/pgx/v5 v5.7.5 github.com/jackc/pgx/v5 v5.7.5
github.com/joho/godotenv v1.5.1 github.com/joho/godotenv v1.5.1
github.com/testcontainers/testcontainers-go/modules/mongodb v0.35.0 github.com/testcontainers/testcontainers-go/modules/mongodb v0.35.0
go.mongodb.org/mongo-driver v1.17.3 go.mongodb.org/mongo-driver v1.17.4
gorm.io/driver/postgres v1.6.0 gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.30.1 gorm.io/gorm v1.30.1
) )
@@ -44,14 +44,14 @@ require (
github.com/go-playground/validator/v10 v10.25.0 // indirect github.com/go-playground/validator/v10 v10.25.0 // indirect
github.com/goccy/go-json v0.10.5 // indirect github.com/goccy/go-json v0.10.5 // indirect
github.com/gogo/protobuf v1.3.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/snappy v0.0.4 // indirect github.com/golang/snappy v1.0.0 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/jackc/puddle/v2 v2.2.2 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect github.com/jinzhu/now v1.1.5 // indirect
github.com/json-iterator/go v1.1.12 // indirect github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.17.4 // indirect github.com/klauspost/compress v1.18.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.10 // indirect github.com/klauspost/cpuid/v2 v2.2.10 // indirect
github.com/leodido/go-urn v1.4.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
@@ -91,10 +91,10 @@ require (
go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/otel/metric v1.24.0 // indirect
go.opentelemetry.io/otel/trace v1.24.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect
golang.org/x/arch v0.15.0 // indirect golang.org/x/arch v0.15.0 // indirect
golang.org/x/crypto v0.37.0 // indirect golang.org/x/crypto v0.40.0 // indirect
golang.org/x/net v0.37.0 // indirect golang.org/x/net v0.41.0 // indirect
golang.org/x/sync v0.16.0 // indirect golang.org/x/sync v0.16.0 // indirect
golang.org/x/sys v0.32.0 // indirect golang.org/x/sys v0.34.0 // indirect
golang.org/x/text v0.27.0 // indirect golang.org/x/text v0.27.0 // indirect
google.golang.org/protobuf v1.36.5 // indirect google.golang.org/protobuf v1.36.5 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect

13
go.sum
View File

@@ -72,6 +72,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs=
github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
@@ -101,6 +103,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4=
github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM=
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
@@ -198,6 +202,8 @@ github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFi
github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
go.mongodb.org/mongo-driver v1.17.3 h1:TQyXhnsWfWtgAhMtOgtYHMTkZIfBTpMTsMnd9ZBeHxQ= go.mongodb.org/mongo-driver v1.17.3 h1:TQyXhnsWfWtgAhMtOgtYHMTkZIfBTpMTsMnd9ZBeHxQ=
go.mongodb.org/mongo-driver v1.17.3/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= go.mongodb.org/mongo-driver v1.17.3/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
go.mongodb.org/mongo-driver v1.17.4 h1:jUorfmVzljjr0FLzYQsGP8cgN/qzzxlY9Vh0C9KFXVw=
go.mongodb.org/mongo-driver v1.17.4/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw=
go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo=
@@ -222,6 +228,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
@@ -233,6 +241,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -258,10 +268,13 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o=
golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw=
golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=

View File

@@ -31,10 +31,6 @@ func (s *Server) RegisterRoutes() http.Handler {
staticFiles, _ := fs.Sub(web.Files, "assets") staticFiles, _ := fs.Sub(web.Files, "assets")
r.StaticFS("/assets", http.FS(staticFiles)) r.StaticFS("/assets", http.FS(staticFiles))
r.POST("/hello", func(c *gin.Context) {
web.HelloWebHandler(c.Writer, c.Request)
})
v1 := r.Group("/api") v1 := r.Group("/api")
patient := v1.Group("/patient") patient := v1.Group("/patient")
{ {

View File

@@ -19,7 +19,7 @@ func InsertDataMaster(c *gin.Context) {
"code": 400, "code": 400,
}) })
} }
db := database.New(master).GetDB() db := database.New(master).GetMongoDB()
mongoDB := mongo.NewDatabaseService(db) mongoDB := mongo.NewDatabaseService(db)
ReqInsertData.ID = uuid.New().String() ReqInsertData.ID = uuid.New().String()
errInsert := mongoDB.InsertDataMaster(ReqInsertData) errInsert := mongoDB.InsertDataMaster(ReqInsertData)

View File

@@ -15,7 +15,7 @@ import (
func GetDataLog(c *gin.Context) { func GetDataLog(c *gin.Context) {
locals := os.Getenv("BLUEPRINT_DB_LOCAL") locals := os.Getenv("BLUEPRINT_DB_LOCAL")
db := database.New(locals).GetDB() db := database.New(locals).GetMongoDB()
if db == nil { if db == nil {
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"}) c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
return return

View File

@@ -12,7 +12,7 @@ import (
func InsertPatient(c *gin.Context) { func InsertPatient(c *gin.Context) {
local := os.Getenv("MONGODB_DEV_LOCAL") local := os.Getenv("MONGODB_DEV_LOCAL")
db := database.New(local).GetDB() db := database.New(local).GetMongoDB()
if db == nil { if db == nil {
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"}) c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
return return
@@ -39,7 +39,7 @@ func InsertPatient(c *gin.Context) {
func GetAllPatient(c *gin.Context) { func GetAllPatient(c *gin.Context) {
local := os.Getenv("MONGODB_DEV_LOCAL") local := os.Getenv("MONGODB_DEV_LOCAL")
db := database.New(local).GetDB() db := database.New(local).GetMongoDB()
if db == nil { if db == nil {
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"}) c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
return return

View File

@@ -1,7 +1,6 @@
package poliklinik package poliklinik
import ( import (
""
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"log" "log"
"net/http" "net/http"

View File

@@ -23,8 +23,8 @@ import (
// @Failure 500 {object} map[string]string "Database connection failed" // @Failure 500 {object} map[string]string "Database connection failed"
// @Router /api/localinsertuser [post] // @Router /api/localinsertuser [post]
func InsertUser(c *gin.Context) { func InsertUser(c *gin.Context) {
local := os.Getenv("BLUEPRINT_DB_LOCAL") local := os.Getenv("MONGODB_DEV_LOCAL")
db := database.New(local).GetDB() db := database.New(local).GetMongoDB()
if db == nil { if db == nil {
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"}) c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
return return
@@ -60,8 +60,8 @@ func InsertUser(c *gin.Context) {
// @Failure 500 {object} map[string]string "Database connection failed" // @Failure 500 {object} map[string]string "Database connection failed"
// @Router /api/local/getalluser [get] // @Router /api/local/getalluser [get]
func GetAllUser(c *gin.Context) { func GetAllUser(c *gin.Context) {
local := os.Getenv("BLUEPRINT_DB_LOCAL") local := os.Getenv("MONGODB_DEV_LOCAL")
db := database.New(local).GetDB() db := database.New(local).GetMongoDB()
if db == nil { if db == nil {
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"}) c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
return return
@@ -88,7 +88,7 @@ func GetAllUser(c *gin.Context) {
// @Router /api/local/getuser/{id} [get] // @Router /api/local/getuser/{id} [get]
func GetUserByID(c *gin.Context) { func GetUserByID(c *gin.Context) {
local := os.Getenv("BLUEPRINT_DB_LOCAL") local := os.Getenv("BLUEPRINT_DB_LOCAL")
db := database.New(local).GetDB() db := database.New(local).GetMongoDB()
if db == nil { if db == nil {
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"}) c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
return return
@@ -119,7 +119,7 @@ func GetUserByID(c *gin.Context) {
// @Router /users [put] // @Router /users [put]
func UpdateUser(c *gin.Context) { func UpdateUser(c *gin.Context) {
local := os.Getenv("BLUEPRINT_DB_LOCAL") local := os.Getenv("BLUEPRINT_DB_LOCAL")
db := database.New(local).GetDB() db := database.New(local).GetMongoDB()
if db == nil { if db == nil {
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"}) c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
return return
@@ -146,7 +146,7 @@ func UpdateUser(c *gin.Context) {
func DeleteUser(c *gin.Context) { func DeleteUser(c *gin.Context) {
local := os.Getenv("BLUEPRINT_DB_LOCAL") local := os.Getenv("BLUEPRINT_DB_LOCAL")
db := database.New(local).GetDB() db := database.New(local).GetMongoDB()
if db == nil { if db == nil {
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"}) c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
return return