@churchsoln/dbms 1.0.47 → 1.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +21 -21
- package/Makefile +132 -132
- package/app.js +37 -37
- package/config/config.js +33 -33
- package/config/errorCodes.js +65 -65
- package/config/errorMsgs.js +82 -82
- package/constants/index.js +94 -94
- package/controllers/church.js +100 -100
- package/controllers/index.js +6 -6
- package/controllers/master.js +138 -138
- package/controllers/migration.js +24 -24
- package/controllers/seed.js +33 -33
- package/db-setup.js +87 -87
- package/deployment/docker-compose.local.yml +64 -64
- package/deployment/docker-compose.yml +62 -62
- package/deployment/nginx/nginx-certs/localhost.crt +22 -22
- package/deployment/nginx/nginx-certs/localhost.key +28 -28
- package/deployment/nginx/nginx.local.conf +72 -72
- package/middlewares/church-filter.js +16 -16
- package/migrations/church/20221226151615-create-province.js +27 -27
- package/migrations/church/20221226151616-create-city.js +41 -41
- package/migrations/church/20221226151617-create-subRole.js +25 -25
- package/migrations/church/20221226151618-create-membership.js +68 -68
- package/migrations/church/20221226151619-create-member.js +140 -140
- package/migrations/church/20221227151615-create-user.js +60 -60
- package/migrations/church/20230826140644-create-eventsUpdates.js +29 -29
- package/migrations/church/20230904143429-create-ministries.js +26 -26
- package/migrations/church/20231021160018-create-gallery.js +28 -28
- package/migrations/church/20231105074019-create-feedback.js +28 -28
- package/migrations/church/20231111113342-create-banner.js +29 -29
- package/migrations/church/20231216105640-create-directoryBoard.js +31 -31
- package/migrations/church/20240214160101-create-volunteer.js +31 -31
- package/migrations/church/20240330111437-create-download.js +29 -29
- package/migrations/church/20240427170617-create-links.js +26 -26
- package/migrations/church/20240815170617-create-userTransfer.js +63 -63
- package/migrations/church/20240815170620-create-subRolePermission.js +40 -40
- package/migrations/church/20240915170620-create-transferType.js +25 -25
- package/migrations/church/20240917170620-create-accounts.js +27 -27
- package/migrations/church/20240918170621-create-church.js +54 -54
- package/migrations/church/20240918170622-create-group.js +61 -61
- package/migrations/church/20240918170623-create-groupMembers.js +74 -74
- package/migrations/church/20240918170627-create-pledge.js +96 -96
- package/migrations/church/20240919170627-create-contributionBatch.js +42 -42
- package/migrations/church/20240919170628-create-contributionTransaction.js +82 -82
- package/migrations/church/20240919170629-create-contributionTransactionLine.js +74 -74
- package/migrations/church/20240919170630-update-groupMembers.js +77 -77
- package/migrations/church/20241204170631-create-pledgeAccount.js +55 -55
- package/migrations/church/20241204170632-create-memberStatus.js +26 -0
- package/migrations/church/20241204170633-update-member.js +33 -0
- package/migrations/church/20241204170634-update-membership.js +33 -0
- package/migrations/church/20241204170635-update-pledge.js +33 -0
- package/migrations/church/20241204170636-update-contributionTransactionLine.js +33 -0
- package/migrations/common/20221226140655-create-subscriptionPlan.js +31 -31
- package/migrations/common/20221226143006-create-role.js +25 -25
- package/migrations/common/20240815170619-create-permission.js +27 -27
- package/migrations/common/20240815170620-create-church.js +56 -56
- package/migrations/common/20240815170621-create-churchDomain.js +40 -40
- package/migrations/common/20240918170621-create-churchPermission.js +53 -53
- package/migrations/common/20240918170622-create-user.js +35 -35
- package/migrations/common/20240918170627-create-subscriptionPlanPermission.js +53 -53
- package/models/church/accounts.js +23 -27
- package/models/church/banner.js +29 -29
- package/models/church/church.js +62 -62
- package/models/church/city.js +23 -23
- package/models/church/contributionBatch.js +45 -45
- package/models/church/contributionTransaction.js +90 -90
- package/models/church/contributionTransactionLine.js +81 -80
- package/models/church/directoryBoard.js +33 -33
- package/models/church/download.js +35 -35
- package/models/church/eventsUpdates.js +29 -29
- package/models/church/feedback.js +27 -27
- package/models/church/gallery.js +33 -33
- package/models/church/group.js +78 -78
- package/models/church/groupMembers.js +73 -73
- package/models/church/index.js +30 -30
- package/models/church/links.js +22 -22
- package/models/church/member.js +156 -171
- package/models/church/memberStatus.js +22 -0
- package/models/church/membership.js +75 -81
- package/models/church/ministries.js +16 -16
- package/models/church/pledge.js +65 -65
- package/models/church/pledgeAccount.js +45 -37
- package/models/church/province.js +23 -23
- package/models/church/subRole.js +21 -21
- package/models/church/subRolePermission.js +22 -22
- package/models/church/transferType.js +15 -15
- package/models/church/user.js +78 -78
- package/models/church/userTransfer.js +45 -45
- package/models/church/volunteer.js +33 -33
- package/models/common/church.js +58 -58
- package/models/common/churchDomain.js +21 -21
- package/models/common/churchPermission.js +26 -26
- package/models/common/index.js +40 -40
- package/models/common/permission.js +17 -17
- package/models/common/role.js +15 -15
- package/models/common/subscriptionPlan.js +34 -34
- package/models/common/subscriptionPlanPermission.js +33 -33
- package/models/common/user.js +39 -39
- package/package.json +41 -41
- package/public/swagger/church.json +521 -521
- package/public/swagger/master.json +537 -537
- package/public/swagger/migration.json +83 -83
- package/public/swagger/seed.json +98 -98
- package/queues/db-create.js +9 -9
- package/queues/index.js +5 -5
- package/queues/master.js +9 -9
- package/queues/migration.js +9 -9
- package/queues/seed.js +9 -9
- package/redis/config.js +5 -5
- package/routes/index.js +30 -30
- package/routes/v1/church.js +45 -45
- package/routes/v1/index.js +7 -7
- package/routes/v1/master.js +68 -68
- package/routes/v1/migration.js +10 -10
- package/routes/v1/seed.js +12 -12
- package/seeders/church/20241005124245-province.js +101 -101
- package/seeders/church/20241005124547-city.js +87 -87
- package/seeders/church/20241005131418-transferType.js +40 -40
- package/seeders/church/20241005131419-memberStatus.js +34 -0
- package/seeders/common/20241005123516-subscriptionPlan.js +43 -43
- package/seeders/common/20241005124105-role.js +38 -38
- package/seeders/common/20241005153047-permission.js +252 -242
- package/seeders/common/20241005153048-user.js +48 -48
- package/services/church.js +312 -312
- package/services/index.js +6 -6
- package/services/master.js +344 -344
- package/services/migration.js +30 -30
- package/services/seed.js +39 -39
- package/utils/churchManager.js +98 -98
- package/utils/crypto.js +40 -40
- package/utils/docUpload.js +51 -51
- package/utils/encryptDecrypt.js +26 -26
- package/utils/index.js +33 -33
- package/utils/logger.js +104 -104
- package/utils/response.js +108 -108
- package/utils/swagger.js +25 -25
- package/utils/verifyToken.js +58 -58
- package/validators/church.js +154 -154
- package/validators/index.js +3 -3
- package/validators/master.js +152 -152
- package/workers/db-create.js +37 -37
- package/workers/index.js +4 -4
- package/workers/master.js +50 -50
- package/workers/migrations.js +63 -63
- package/workers/seed.js +85 -85
package/Dockerfile
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
FROM node:20.16.0-alpine
|
|
2
|
-
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
|
|
3
|
-
WORKDIR /home/node/app
|
|
4
|
-
COPY package*.json ./
|
|
5
|
-
COPY --chown=node:node . .
|
|
6
|
-
# Install build dependencies
|
|
7
|
-
RUN apk update && \
|
|
8
|
-
apk add --no-cache make gcc g++ python3
|
|
9
|
-
|
|
10
|
-
# Set registry and timeout
|
|
11
|
-
RUN npm config set registry https://registry.npmmirror.com
|
|
12
|
-
RUN npm rebuild bcrypt --build-from-source
|
|
13
|
-
RUN npm install --legacy-peer-deps --force --timeout=60000
|
|
14
|
-
RUN npm cache clean --force
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
# Clean up build dependencies
|
|
18
|
-
RUN apk del make gcc g++ python3 && \
|
|
19
|
-
rm -rf /var/cache/apk/* && \
|
|
20
|
-
npm cache clean --force
|
|
21
|
-
EXPOSE 5007
|
|
1
|
+
FROM node:20.16.0-alpine
|
|
2
|
+
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
|
|
3
|
+
WORKDIR /home/node/app
|
|
4
|
+
COPY package*.json ./
|
|
5
|
+
COPY --chown=node:node . .
|
|
6
|
+
# Install build dependencies
|
|
7
|
+
RUN apk update && \
|
|
8
|
+
apk add --no-cache make gcc g++ python3
|
|
9
|
+
|
|
10
|
+
# Set registry and timeout
|
|
11
|
+
RUN npm config set registry https://registry.npmmirror.com
|
|
12
|
+
RUN npm rebuild bcrypt --build-from-source
|
|
13
|
+
RUN npm install --frozen-lockfile --legacy-peer-deps --force --timeout=60000
|
|
14
|
+
RUN npm cache clean --force
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# Clean up build dependencies
|
|
18
|
+
RUN apk del make gcc g++ python3 && \
|
|
19
|
+
rm -rf /var/cache/apk/* && \
|
|
20
|
+
npm cache clean --force
|
|
21
|
+
EXPOSE 5007
|
|
22
22
|
CMD [ "npm", "run", "start" ]
|
package/Makefile
CHANGED
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
DOCKER_COMPOSE = docker compose
|
|
2
|
-
LOCAL_FILES = -f deployment/docker-compose.local.yml
|
|
3
|
-
DEV_FILES = -f deployment/docker-compose.yml
|
|
4
|
-
POSTGRES_DIR = ${HOME}/.churchsoln/postgres
|
|
5
|
-
REDIS_DIR = ${HOME}/.churchsoln/redis
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
.PHONY: help
|
|
9
|
-
help:
|
|
10
|
-
@echo "Usage:"
|
|
11
|
-
@echo " make up-local - Run the application locally"
|
|
12
|
-
@echo " make up-dev - Run the application in the dev environment"
|
|
13
|
-
@echo " make up-no-cache-local - Build and run the application locally without cache"
|
|
14
|
-
@echo " make up-no-cache-dev - Build and run the application in dev environment without cache"
|
|
15
|
-
@echo " make clean-local - Clean up local environment and unused resources"
|
|
16
|
-
@echo " make clean-dev - Clean up dev environment and unused resources"
|
|
17
|
-
@echo " make prune-resources - Remove all unused Docker resources"
|
|
18
|
-
@echo " make logs-local - View logs for local environment"
|
|
19
|
-
@echo " make logs-dev - View logs for dev environment"
|
|
20
|
-
@echo " make exec-local service - Execute command in running local service container"
|
|
21
|
-
@echo " make exec-dev service - Execute command in running dev service container"
|
|
22
|
-
@echo " make rebuild-local - Rebuild the local environment"
|
|
23
|
-
@echo " make rebuild-dev - Rebuild the dev environment"
|
|
24
|
-
@echo " make rebuild-service-local service - Rebuild a specific service in local environment"
|
|
25
|
-
@echo " make rebuild-service-dev service - Rebuild a specific service in dev environment"
|
|
26
|
-
@echo " make status-local - Show status of local environment"
|
|
27
|
-
@echo " make status-dev - Show status of dev environment"
|
|
28
|
-
|
|
29
|
-
.PHONY: ensure-dirs
|
|
30
|
-
ensure-dirs:
|
|
31
|
-
@echo "Checking for PostgreSQL, Image, Video and Documents directories in home..."
|
|
32
|
-
@if [ ! -d "$(POSTGRES_DIR)" ]; then \
|
|
33
|
-
echo "Creating PostgreSQL directory at $(POSTGRES_DIR)"; \
|
|
34
|
-
mkdir -p $(POSTGRES_DIR); \
|
|
35
|
-
else \
|
|
36
|
-
echo "PostgreSQL directory already exists"; \
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
.PHONY: up-local
|
|
40
|
-
up-local: ensure-dirs
|
|
41
|
-
$(DOCKER_COMPOSE) $(LOCAL_FILES) up --build -d
|
|
42
|
-
|
|
43
|
-
.PHONY: up-dev
|
|
44
|
-
up-dev: ensure-dirs
|
|
45
|
-
$(DOCKER_COMPOSE) $(DEV_FILES) up --build -d
|
|
46
|
-
|
|
47
|
-
.PHONY: up-no-cache-local
|
|
48
|
-
up-no-cache-local: ensure-dirs clean-local
|
|
49
|
-
$(DOCKER_COMPOSE) $(LOCAL_FILES) build --no-cache
|
|
50
|
-
$(DOCKER_COMPOSE) $(LOCAL_FILES) up -d
|
|
51
|
-
|
|
52
|
-
.PHONY: up-no-cache-dev
|
|
53
|
-
up-no-cache-dev: ensure-dirs clean-dev
|
|
54
|
-
$(DOCKER_COMPOSE) $(DEV_FILES) build --no-cache
|
|
55
|
-
$(DOCKER_COMPOSE) $(DEV_FILES) up -d
|
|
56
|
-
|
|
57
|
-
.PHONY: clean-local
|
|
58
|
-
clean-local:
|
|
59
|
-
$(DOCKER_COMPOSE) $(LOCAL_FILES) down --volumes --remove-orphans
|
|
60
|
-
@echo "Removing unused images and volumes..."
|
|
61
|
-
docker image prune -f
|
|
62
|
-
docker volume prune -f
|
|
63
|
-
|
|
64
|
-
.PHONY: clean-dev
|
|
65
|
-
clean-dev:
|
|
66
|
-
$(DOCKER_COMPOSE) $(DEV_FILES) down --volumes --remove-orphans
|
|
67
|
-
@echo "Removing unused images and volumes..."
|
|
68
|
-
docker image prune -f
|
|
69
|
-
docker volume prune -f
|
|
70
|
-
|
|
71
|
-
.PHONY: prune-resources
|
|
72
|
-
prune-resources:
|
|
73
|
-
@echo "Removing all unused Docker resources..."
|
|
74
|
-
docker system prune -a --volumes -f
|
|
75
|
-
|
|
76
|
-
.PHONY: logs-local
|
|
77
|
-
logs-local:
|
|
78
|
-
$(DOCKER_COMPOSE) $(LOCAL_FILES) logs -f
|
|
79
|
-
|
|
80
|
-
.PHONY: logs-dev
|
|
81
|
-
logs-dev:
|
|
82
|
-
$(DOCKER_COMPOSE) $(DEV_FILES) logs -f
|
|
83
|
-
|
|
84
|
-
.PHONY: exec-local
|
|
85
|
-
exec-local:
|
|
86
|
-
@if [ -z "$$service" ]; then \
|
|
87
|
-
echo "Please specify a service name."; \
|
|
88
|
-
exit 1; \
|
|
89
|
-
fi
|
|
90
|
-
$(DOCKER_COMPOSE) $(LOCAL_FILES) exec $(service) /bin/sh
|
|
91
|
-
|
|
92
|
-
.PHONY: exec-dev
|
|
93
|
-
exec-dev:
|
|
94
|
-
@if [ -z "$$service" ]; then \
|
|
95
|
-
echo "Please specify a service name."; \
|
|
96
|
-
exit 1; \
|
|
97
|
-
fi
|
|
98
|
-
$(DOCKER_COMPOSE) $(DEV_FILES) exec $(service) /bin/sh
|
|
99
|
-
|
|
100
|
-
.PHONY: rebuild-local
|
|
101
|
-
rebuild-local: clean-local up-local
|
|
102
|
-
|
|
103
|
-
.PHONY: rebuild-dev
|
|
104
|
-
rebuild-dev: clean-dev up-dev
|
|
105
|
-
|
|
106
|
-
.PHONY: rebuild-service-local
|
|
107
|
-
rebuild-service-local:
|
|
108
|
-
@if [ -z "$$service" ]; then \
|
|
109
|
-
echo "Please specify a service name."; \
|
|
110
|
-
exit 1; \
|
|
111
|
-
fi
|
|
112
|
-
$(DOCKER_COMPOSE) $(LOCAL_FILES) build --no-cache $(service)
|
|
113
|
-
$(DOCKER_COMPOSE) $(LOCAL_FILES) up -d $(service)
|
|
114
|
-
|
|
115
|
-
.PHONY: rebuild-service-dev
|
|
116
|
-
rebuild-service-dev:
|
|
117
|
-
@if [ -z "$$service" ]; then \
|
|
118
|
-
echo "Please specify a service name."; \
|
|
119
|
-
exit 1; \
|
|
120
|
-
fi
|
|
121
|
-
$(DOCKER_COMPOSE) $(DEV_FILES) build --no-cache $(service)
|
|
122
|
-
$(DOCKER_COMPOSE) $(DEV_FILES) up -d $(service)
|
|
123
|
-
|
|
124
|
-
.PHONY: status-local
|
|
125
|
-
status-local:
|
|
126
|
-
@echo "Status of local environment:"
|
|
127
|
-
$(DOCKER_COMPOSE) $(LOCAL_FILES) ps
|
|
128
|
-
|
|
129
|
-
.PHONY: status-dev
|
|
130
|
-
status-dev:
|
|
131
|
-
@echo "Status of dev environment:"
|
|
132
|
-
$(DOCKER_COMPOSE) $(DEV_FILES) ps
|
|
1
|
+
DOCKER_COMPOSE = docker compose
|
|
2
|
+
LOCAL_FILES = -f deployment/docker-compose.local.yml
|
|
3
|
+
DEV_FILES = -f deployment/docker-compose.yml
|
|
4
|
+
POSTGRES_DIR = ${HOME}/.churchsoln/postgres
|
|
5
|
+
REDIS_DIR = ${HOME}/.churchsoln/redis
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
.PHONY: help
|
|
9
|
+
help:
|
|
10
|
+
@echo "Usage:"
|
|
11
|
+
@echo " make up-local - Run the application locally"
|
|
12
|
+
@echo " make up-dev - Run the application in the dev environment"
|
|
13
|
+
@echo " make up-no-cache-local - Build and run the application locally without cache"
|
|
14
|
+
@echo " make up-no-cache-dev - Build and run the application in dev environment without cache"
|
|
15
|
+
@echo " make clean-local - Clean up local environment and unused resources"
|
|
16
|
+
@echo " make clean-dev - Clean up dev environment and unused resources"
|
|
17
|
+
@echo " make prune-resources - Remove all unused Docker resources"
|
|
18
|
+
@echo " make logs-local - View logs for local environment"
|
|
19
|
+
@echo " make logs-dev - View logs for dev environment"
|
|
20
|
+
@echo " make exec-local service - Execute command in running local service container"
|
|
21
|
+
@echo " make exec-dev service - Execute command in running dev service container"
|
|
22
|
+
@echo " make rebuild-local - Rebuild the local environment"
|
|
23
|
+
@echo " make rebuild-dev - Rebuild the dev environment"
|
|
24
|
+
@echo " make rebuild-service-local service - Rebuild a specific service in local environment"
|
|
25
|
+
@echo " make rebuild-service-dev service - Rebuild a specific service in dev environment"
|
|
26
|
+
@echo " make status-local - Show status of local environment"
|
|
27
|
+
@echo " make status-dev - Show status of dev environment"
|
|
28
|
+
|
|
29
|
+
.PHONY: ensure-dirs
|
|
30
|
+
ensure-dirs:
|
|
31
|
+
@echo "Checking for PostgreSQL, Image, Video and Documents directories in home..."
|
|
32
|
+
@if [ ! -d "$(POSTGRES_DIR)" ]; then \
|
|
33
|
+
echo "Creating PostgreSQL directory at $(POSTGRES_DIR)"; \
|
|
34
|
+
mkdir -p $(POSTGRES_DIR); \
|
|
35
|
+
else \
|
|
36
|
+
echo "PostgreSQL directory already exists"; \
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
.PHONY: up-local
|
|
40
|
+
up-local: ensure-dirs
|
|
41
|
+
$(DOCKER_COMPOSE) $(LOCAL_FILES) up --build -d
|
|
42
|
+
|
|
43
|
+
.PHONY: up-dev
|
|
44
|
+
up-dev: ensure-dirs
|
|
45
|
+
$(DOCKER_COMPOSE) $(DEV_FILES) up --build -d
|
|
46
|
+
|
|
47
|
+
.PHONY: up-no-cache-local
|
|
48
|
+
up-no-cache-local: ensure-dirs clean-local
|
|
49
|
+
$(DOCKER_COMPOSE) $(LOCAL_FILES) build --no-cache
|
|
50
|
+
$(DOCKER_COMPOSE) $(LOCAL_FILES) up -d
|
|
51
|
+
|
|
52
|
+
.PHONY: up-no-cache-dev
|
|
53
|
+
up-no-cache-dev: ensure-dirs clean-dev
|
|
54
|
+
$(DOCKER_COMPOSE) $(DEV_FILES) build --no-cache
|
|
55
|
+
$(DOCKER_COMPOSE) $(DEV_FILES) up -d
|
|
56
|
+
|
|
57
|
+
.PHONY: clean-local
|
|
58
|
+
clean-local:
|
|
59
|
+
$(DOCKER_COMPOSE) $(LOCAL_FILES) down --volumes --remove-orphans
|
|
60
|
+
@echo "Removing unused images and volumes..."
|
|
61
|
+
docker image prune -f
|
|
62
|
+
docker volume prune -f
|
|
63
|
+
|
|
64
|
+
.PHONY: clean-dev
|
|
65
|
+
clean-dev:
|
|
66
|
+
$(DOCKER_COMPOSE) $(DEV_FILES) down --volumes --remove-orphans
|
|
67
|
+
@echo "Removing unused images and volumes..."
|
|
68
|
+
docker image prune -f
|
|
69
|
+
docker volume prune -f
|
|
70
|
+
|
|
71
|
+
.PHONY: prune-resources
|
|
72
|
+
prune-resources:
|
|
73
|
+
@echo "Removing all unused Docker resources..."
|
|
74
|
+
docker system prune -a --volumes -f
|
|
75
|
+
|
|
76
|
+
.PHONY: logs-local
|
|
77
|
+
logs-local:
|
|
78
|
+
$(DOCKER_COMPOSE) $(LOCAL_FILES) logs -f
|
|
79
|
+
|
|
80
|
+
.PHONY: logs-dev
|
|
81
|
+
logs-dev:
|
|
82
|
+
$(DOCKER_COMPOSE) $(DEV_FILES) logs -f
|
|
83
|
+
|
|
84
|
+
.PHONY: exec-local
|
|
85
|
+
exec-local:
|
|
86
|
+
@if [ -z "$$service" ]; then \
|
|
87
|
+
echo "Please specify a service name."; \
|
|
88
|
+
exit 1; \
|
|
89
|
+
fi
|
|
90
|
+
$(DOCKER_COMPOSE) $(LOCAL_FILES) exec $(service) /bin/sh
|
|
91
|
+
|
|
92
|
+
.PHONY: exec-dev
|
|
93
|
+
exec-dev:
|
|
94
|
+
@if [ -z "$$service" ]; then \
|
|
95
|
+
echo "Please specify a service name."; \
|
|
96
|
+
exit 1; \
|
|
97
|
+
fi
|
|
98
|
+
$(DOCKER_COMPOSE) $(DEV_FILES) exec $(service) /bin/sh
|
|
99
|
+
|
|
100
|
+
.PHONY: rebuild-local
|
|
101
|
+
rebuild-local: clean-local up-local
|
|
102
|
+
|
|
103
|
+
.PHONY: rebuild-dev
|
|
104
|
+
rebuild-dev: clean-dev up-dev
|
|
105
|
+
|
|
106
|
+
.PHONY: rebuild-service-local
|
|
107
|
+
rebuild-service-local:
|
|
108
|
+
@if [ -z "$$service" ]; then \
|
|
109
|
+
echo "Please specify a service name."; \
|
|
110
|
+
exit 1; \
|
|
111
|
+
fi
|
|
112
|
+
$(DOCKER_COMPOSE) $(LOCAL_FILES) build --no-cache $(service)
|
|
113
|
+
$(DOCKER_COMPOSE) $(LOCAL_FILES) up -d $(service)
|
|
114
|
+
|
|
115
|
+
.PHONY: rebuild-service-dev
|
|
116
|
+
rebuild-service-dev:
|
|
117
|
+
@if [ -z "$$service" ]; then \
|
|
118
|
+
echo "Please specify a service name."; \
|
|
119
|
+
exit 1; \
|
|
120
|
+
fi
|
|
121
|
+
$(DOCKER_COMPOSE) $(DEV_FILES) build --no-cache $(service)
|
|
122
|
+
$(DOCKER_COMPOSE) $(DEV_FILES) up -d $(service)
|
|
123
|
+
|
|
124
|
+
.PHONY: status-local
|
|
125
|
+
status-local:
|
|
126
|
+
@echo "Status of local environment:"
|
|
127
|
+
$(DOCKER_COMPOSE) $(LOCAL_FILES) ps
|
|
128
|
+
|
|
129
|
+
.PHONY: status-dev
|
|
130
|
+
status-dev:
|
|
131
|
+
@echo "Status of dev environment:"
|
|
132
|
+
$(DOCKER_COMPOSE) $(DEV_FILES) ps
|
package/app.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
require("dotenv/config");
|
|
2
|
-
const path = require("path");
|
|
3
|
-
const express = require("express");
|
|
4
|
-
const cors = require("cors");
|
|
5
|
-
const helmet = require("helmet");
|
|
6
|
-
const { decryptData } = require("./utils/encryptDecrypt.js");
|
|
7
|
-
const morgan = require("morgan");
|
|
8
|
-
const app = express();
|
|
9
|
-
const routers = require("./routes/index.js");
|
|
10
|
-
const appLogger = require("./utils/logger");
|
|
11
|
-
const swaggerUi = require("swagger-ui-express");
|
|
12
|
-
const swaggerOptions = require("./utils/swagger");
|
|
13
|
-
require("./workers");
|
|
14
|
-
app.enable("trust proxy");
|
|
15
|
-
// middlewares section
|
|
16
|
-
app.use(appLogger.requestDetails(appLogger));
|
|
17
|
-
app.use(morgan("dev"));
|
|
18
|
-
app.use(helmet());
|
|
19
|
-
app.use(cors());
|
|
20
|
-
app.use(express.json());
|
|
21
|
-
app.use(express.json({ limit: "50mb" }));
|
|
22
|
-
app.use(express.urlencoded({ extended: true }));
|
|
23
|
-
app.use(express.urlencoded({ limit: "50mb", extended: true }));
|
|
24
|
-
app.use("/dbms/api/public", express.static(path.join(__dirname, "public")));
|
|
25
|
-
app.use("/dbms/api/uploads", express.static("/app/uploads"));
|
|
26
|
-
app.use("/dbms/api/docs", swaggerUi.serve, swaggerUi.setup(null, swaggerOptions));
|
|
27
|
-
app.use((req, res, next) => decryptData(req, res, next));
|
|
28
|
-
app.use((req, res, next) => {
|
|
29
|
-
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
30
|
-
res.setHeader("Access-Control-Allow-Headers", "*");
|
|
31
|
-
next();
|
|
32
|
-
});
|
|
33
|
-
app.use(routers);
|
|
34
|
-
|
|
35
|
-
const port = process.env.PORT || 5000;
|
|
36
|
-
const server = app.listen(port, () => console.log(`App listening at port ${port}`));
|
|
37
|
-
module.exports = server;
|
|
1
|
+
require("dotenv/config");
|
|
2
|
+
const path = require("path");
|
|
3
|
+
const express = require("express");
|
|
4
|
+
const cors = require("cors");
|
|
5
|
+
const helmet = require("helmet");
|
|
6
|
+
const { decryptData } = require("./utils/encryptDecrypt.js");
|
|
7
|
+
const morgan = require("morgan");
|
|
8
|
+
const app = express();
|
|
9
|
+
const routers = require("./routes/index.js");
|
|
10
|
+
const appLogger = require("./utils/logger");
|
|
11
|
+
const swaggerUi = require("swagger-ui-express");
|
|
12
|
+
const swaggerOptions = require("./utils/swagger");
|
|
13
|
+
require("./workers");
|
|
14
|
+
app.enable("trust proxy");
|
|
15
|
+
// middlewares section
|
|
16
|
+
app.use(appLogger.requestDetails(appLogger));
|
|
17
|
+
app.use(morgan("dev"));
|
|
18
|
+
app.use(helmet());
|
|
19
|
+
app.use(cors());
|
|
20
|
+
app.use(express.json());
|
|
21
|
+
app.use(express.json({ limit: "50mb" }));
|
|
22
|
+
app.use(express.urlencoded({ extended: true }));
|
|
23
|
+
app.use(express.urlencoded({ limit: "50mb", extended: true }));
|
|
24
|
+
app.use("/dbms/api/public", express.static(path.join(__dirname, "public")));
|
|
25
|
+
app.use("/dbms/api/uploads", express.static("/app/uploads"));
|
|
26
|
+
app.use("/dbms/api/docs", swaggerUi.serve, swaggerUi.setup(null, swaggerOptions));
|
|
27
|
+
app.use((req, res, next) => decryptData(req, res, next));
|
|
28
|
+
app.use((req, res, next) => {
|
|
29
|
+
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
30
|
+
res.setHeader("Access-Control-Allow-Headers", "*");
|
|
31
|
+
next();
|
|
32
|
+
});
|
|
33
|
+
app.use(routers);
|
|
34
|
+
|
|
35
|
+
const port = process.env.PORT || 5000;
|
|
36
|
+
const server = app.listen(port, () => console.log(`App listening at port ${port}`));
|
|
37
|
+
module.exports = server;
|
package/config/config.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
require("dotenv").config();
|
|
2
|
-
module.exports = {
|
|
3
|
-
localdev: {
|
|
4
|
-
user: "root",
|
|
5
|
-
username: "root",
|
|
6
|
-
password: "root",
|
|
7
|
-
database: "dbms",
|
|
8
|
-
host: "localhost",
|
|
9
|
-
port: "5432",
|
|
10
|
-
dialect: "postgres",
|
|
11
|
-
url: "postgres://root:root@localhost:5432/dbms",
|
|
12
|
-
},
|
|
13
|
-
development: {
|
|
14
|
-
user: process.env.POSTGRES_USER,
|
|
15
|
-
username: process.env.POSTGRES_USER,
|
|
16
|
-
password: process.env.POSTGRES_PASSWORD,
|
|
17
|
-
database: process.env.POSTGRES_DB,
|
|
18
|
-
host: process.env.POSTGRES_HOST,
|
|
19
|
-
port: process.env.POSTGRES_PORT,
|
|
20
|
-
dialect: "postgres",
|
|
21
|
-
url: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DB}`,
|
|
22
|
-
},
|
|
23
|
-
test: {
|
|
24
|
-
user: process.env.POSTGRES_USER,
|
|
25
|
-
username: process.env.POSTGRES_USER,
|
|
26
|
-
password: process.env.POSTGRES_PASSWORD,
|
|
27
|
-
database: process.env.POSTGRES_DB,
|
|
28
|
-
host: process.env.POSTGRES_HOST,
|
|
29
|
-
port: process.env.POSTGRES_PORT,
|
|
30
|
-
dialect: "postgres",
|
|
31
|
-
url: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DB}`,
|
|
32
|
-
},
|
|
33
|
-
};
|
|
1
|
+
require("dotenv").config();
|
|
2
|
+
module.exports = {
|
|
3
|
+
localdev: {
|
|
4
|
+
user: "root",
|
|
5
|
+
username: "root",
|
|
6
|
+
password: "root",
|
|
7
|
+
database: "dbms",
|
|
8
|
+
host: "localhost",
|
|
9
|
+
port: "5432",
|
|
10
|
+
dialect: "postgres",
|
|
11
|
+
url: "postgres://root:root@localhost:5432/dbms",
|
|
12
|
+
},
|
|
13
|
+
development: {
|
|
14
|
+
user: process.env.POSTGRES_USER,
|
|
15
|
+
username: process.env.POSTGRES_USER,
|
|
16
|
+
password: process.env.POSTGRES_PASSWORD,
|
|
17
|
+
database: process.env.POSTGRES_DB,
|
|
18
|
+
host: process.env.POSTGRES_HOST,
|
|
19
|
+
port: process.env.POSTGRES_PORT,
|
|
20
|
+
dialect: "postgres",
|
|
21
|
+
url: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DB}`,
|
|
22
|
+
},
|
|
23
|
+
test: {
|
|
24
|
+
user: process.env.POSTGRES_USER,
|
|
25
|
+
username: process.env.POSTGRES_USER,
|
|
26
|
+
password: process.env.POSTGRES_PASSWORD,
|
|
27
|
+
database: process.env.POSTGRES_DB,
|
|
28
|
+
host: process.env.POSTGRES_HOST,
|
|
29
|
+
port: process.env.POSTGRES_PORT,
|
|
30
|
+
dialect: "postgres",
|
|
31
|
+
url: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DB}`,
|
|
32
|
+
},
|
|
33
|
+
};
|
package/config/errorCodes.js
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
HTTP_CONTINUE: 100,
|
|
3
|
-
HTTP_SWITCHING_PROTOCOLS: 101,
|
|
4
|
-
HTTP_PROCESSING: 102, // RFC2518
|
|
5
|
-
HTTP_EARLY_HINTS: 103, // RFC8297
|
|
6
|
-
HTTP_OK: 200,
|
|
7
|
-
HTTP_CREATED: 201,
|
|
8
|
-
HTTP_ACCEPTED: 202,
|
|
9
|
-
HTTP_NON_AUTHORITATIVE_INFORMATION: 203,
|
|
10
|
-
HTTP_NO_CONTENT: 204,
|
|
11
|
-
HTTP_RESET_CONTENT: 205,
|
|
12
|
-
HTTP_PARTIAL_CONTENT: 206,
|
|
13
|
-
HTTP_MULTI_STATUS: 207, // RFC4918
|
|
14
|
-
HTTP_ALREADY_REPORTED: 208, // RFC5842
|
|
15
|
-
HTTP_IM_USED: 226, // RFC3229
|
|
16
|
-
HTTP_MULTIPLE_CHOICES: 300,
|
|
17
|
-
HTTP_MOVED_PERMANENTLY: 301,
|
|
18
|
-
HTTP_FOUND: 302,
|
|
19
|
-
HTTP_SEE_OTHER: 303,
|
|
20
|
-
HTTP_NOT_MODIFIED: 304,
|
|
21
|
-
HTTP_USE_PROXY: 305,
|
|
22
|
-
HTTP_RESERVED: 306,
|
|
23
|
-
HTTP_TEMPORARY_REDIRECT: 307,
|
|
24
|
-
HTTP_PERMANENTLY_REDIRECT: 308, // RFC7238
|
|
25
|
-
HTTP_BAD_REQUEST: 400,
|
|
26
|
-
HTTP_UNAUTHORIZED: 401,
|
|
27
|
-
HTTP_PAYMENT_REQUIRED: 402,
|
|
28
|
-
HTTP_FORBIDDEN: 403,
|
|
29
|
-
HTTP_NOT_FOUND: 404,
|
|
30
|
-
HTTP_METHOD_NOT_ALLOWED: 405,
|
|
31
|
-
HTTP_NOT_ACCEPTABLE: 406,
|
|
32
|
-
HTTP_PROXY_AUTHENTICATION_REQUIRED: 407,
|
|
33
|
-
HTTP_REQUEST_TIMEOUT: 408,
|
|
34
|
-
HTTP_CONFLICT: 409,
|
|
35
|
-
HTTP_GONE: 410,
|
|
36
|
-
HTTP_LENGTH_REQUIRED: 411,
|
|
37
|
-
HTTP_PRECONDITION_FAILED: 412,
|
|
38
|
-
HTTP_REQUEST_ENTITY_TOO_LARGE: 413,
|
|
39
|
-
HTTP_REQUEST_URI_TOO_LONG: 414,
|
|
40
|
-
HTTP_UNSUPPORTED_MEDIA_TYPE: 415,
|
|
41
|
-
HTTP_REQUESTED_RANGE_NOT_SATISFIABLE: 416,
|
|
42
|
-
HTTP_EXPECTATION_FAILED: 417,
|
|
43
|
-
HTTP_I_AM_A_TEAPOT: 418, // RFC2324
|
|
44
|
-
HTTP_MISDIRECTED_REQUEST: 421, // RFC7540
|
|
45
|
-
HTTP_UNPROCESSABLE_ENTITY: 422, // RFC4918
|
|
46
|
-
HTTP_LOCKED: 423, // RFC4918
|
|
47
|
-
HTTP_FAILED_DEPENDENCY: 424, // RFC4918
|
|
48
|
-
HTTP_RESERVED_FOR_WEBDAV_ADVANCED_COLLECTIONS_EXPIRED_PROPOSAL: 425, // RFC2817
|
|
49
|
-
HTTP_UPGRADE_REQUIRED: 426, // RFC2817
|
|
50
|
-
HTTP_PRECONDITION_REQUIRED: 428, // RFC6585
|
|
51
|
-
HTTP_TOO_MANY_REQUESTS: 429, // RFC6585
|
|
52
|
-
HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE: 431, // RFC6585
|
|
53
|
-
HTTP_UNAVAILABLE_FOR_LEGAL_REASONS: 451,
|
|
54
|
-
HTTP_INTERNAL_SERVER_ERROR: 500,
|
|
55
|
-
HTTP_NOT_IMPLEMENTED: 501,
|
|
56
|
-
HTTP_BAD_GATEWAY: 502,
|
|
57
|
-
HTTP_SERVICE_UNAVAILABLE: 503,
|
|
58
|
-
HTTP_GATEWAY_TIMEOUT: 504,
|
|
59
|
-
HTTP_VERSION_NOT_SUPPORTED: 505,
|
|
60
|
-
HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL: 506, // RFC2295
|
|
61
|
-
HTTP_INSUFFICIENT_STORAGE: 507, // RFC4918
|
|
62
|
-
HTTP_LOOP_DETECTED: 508, // RFC5842
|
|
63
|
-
HTTP_NOT_EXTENDED: 510, // RFC2774
|
|
64
|
-
HTTP_NETWORK_AUTHENTICATION_REQUIRED: 511, // RFC6585
|
|
65
|
-
};
|
|
1
|
+
module.exports = {
|
|
2
|
+
HTTP_CONTINUE: 100,
|
|
3
|
+
HTTP_SWITCHING_PROTOCOLS: 101,
|
|
4
|
+
HTTP_PROCESSING: 102, // RFC2518
|
|
5
|
+
HTTP_EARLY_HINTS: 103, // RFC8297
|
|
6
|
+
HTTP_OK: 200,
|
|
7
|
+
HTTP_CREATED: 201,
|
|
8
|
+
HTTP_ACCEPTED: 202,
|
|
9
|
+
HTTP_NON_AUTHORITATIVE_INFORMATION: 203,
|
|
10
|
+
HTTP_NO_CONTENT: 204,
|
|
11
|
+
HTTP_RESET_CONTENT: 205,
|
|
12
|
+
HTTP_PARTIAL_CONTENT: 206,
|
|
13
|
+
HTTP_MULTI_STATUS: 207, // RFC4918
|
|
14
|
+
HTTP_ALREADY_REPORTED: 208, // RFC5842
|
|
15
|
+
HTTP_IM_USED: 226, // RFC3229
|
|
16
|
+
HTTP_MULTIPLE_CHOICES: 300,
|
|
17
|
+
HTTP_MOVED_PERMANENTLY: 301,
|
|
18
|
+
HTTP_FOUND: 302,
|
|
19
|
+
HTTP_SEE_OTHER: 303,
|
|
20
|
+
HTTP_NOT_MODIFIED: 304,
|
|
21
|
+
HTTP_USE_PROXY: 305,
|
|
22
|
+
HTTP_RESERVED: 306,
|
|
23
|
+
HTTP_TEMPORARY_REDIRECT: 307,
|
|
24
|
+
HTTP_PERMANENTLY_REDIRECT: 308, // RFC7238
|
|
25
|
+
HTTP_BAD_REQUEST: 400,
|
|
26
|
+
HTTP_UNAUTHORIZED: 401,
|
|
27
|
+
HTTP_PAYMENT_REQUIRED: 402,
|
|
28
|
+
HTTP_FORBIDDEN: 403,
|
|
29
|
+
HTTP_NOT_FOUND: 404,
|
|
30
|
+
HTTP_METHOD_NOT_ALLOWED: 405,
|
|
31
|
+
HTTP_NOT_ACCEPTABLE: 406,
|
|
32
|
+
HTTP_PROXY_AUTHENTICATION_REQUIRED: 407,
|
|
33
|
+
HTTP_REQUEST_TIMEOUT: 408,
|
|
34
|
+
HTTP_CONFLICT: 409,
|
|
35
|
+
HTTP_GONE: 410,
|
|
36
|
+
HTTP_LENGTH_REQUIRED: 411,
|
|
37
|
+
HTTP_PRECONDITION_FAILED: 412,
|
|
38
|
+
HTTP_REQUEST_ENTITY_TOO_LARGE: 413,
|
|
39
|
+
HTTP_REQUEST_URI_TOO_LONG: 414,
|
|
40
|
+
HTTP_UNSUPPORTED_MEDIA_TYPE: 415,
|
|
41
|
+
HTTP_REQUESTED_RANGE_NOT_SATISFIABLE: 416,
|
|
42
|
+
HTTP_EXPECTATION_FAILED: 417,
|
|
43
|
+
HTTP_I_AM_A_TEAPOT: 418, // RFC2324
|
|
44
|
+
HTTP_MISDIRECTED_REQUEST: 421, // RFC7540
|
|
45
|
+
HTTP_UNPROCESSABLE_ENTITY: 422, // RFC4918
|
|
46
|
+
HTTP_LOCKED: 423, // RFC4918
|
|
47
|
+
HTTP_FAILED_DEPENDENCY: 424, // RFC4918
|
|
48
|
+
HTTP_RESERVED_FOR_WEBDAV_ADVANCED_COLLECTIONS_EXPIRED_PROPOSAL: 425, // RFC2817
|
|
49
|
+
HTTP_UPGRADE_REQUIRED: 426, // RFC2817
|
|
50
|
+
HTTP_PRECONDITION_REQUIRED: 428, // RFC6585
|
|
51
|
+
HTTP_TOO_MANY_REQUESTS: 429, // RFC6585
|
|
52
|
+
HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE: 431, // RFC6585
|
|
53
|
+
HTTP_UNAVAILABLE_FOR_LEGAL_REASONS: 451,
|
|
54
|
+
HTTP_INTERNAL_SERVER_ERROR: 500,
|
|
55
|
+
HTTP_NOT_IMPLEMENTED: 501,
|
|
56
|
+
HTTP_BAD_GATEWAY: 502,
|
|
57
|
+
HTTP_SERVICE_UNAVAILABLE: 503,
|
|
58
|
+
HTTP_GATEWAY_TIMEOUT: 504,
|
|
59
|
+
HTTP_VERSION_NOT_SUPPORTED: 505,
|
|
60
|
+
HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL: 506, // RFC2295
|
|
61
|
+
HTTP_INSUFFICIENT_STORAGE: 507, // RFC4918
|
|
62
|
+
HTTP_LOOP_DETECTED: 508, // RFC5842
|
|
63
|
+
HTTP_NOT_EXTENDED: 510, // RFC2774
|
|
64
|
+
HTTP_NETWORK_AUTHENTICATION_REQUIRED: 511, // RFC6585
|
|
65
|
+
};
|