Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
I
initial_project
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Нұрасыл Қайратұлы
initial_project
Commits
7a06930d
Commit
7a06930d
authored
Aug 09, 2024
by
Нұрасыл Қайратұлы
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
3144fc0a
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
541 additions
and
22 deletions
+541
-22
package-lock.json
server/package-lock.json
+362
-19
package.json
server/package.json
+4
-0
appDataSource.ts
server/src/appDataSource.ts
+2
-1
user.controller.ts
server/src/controllers/user.controller.ts
+30
-0
registration-user.dto.ts
server/src/dto/registration-user.dto.ts
+18
-0
sign-in-user.dto.ts
server/src/dto/sign-in-user.dto.ts
+14
-0
user.entity.ts
server/src/entities/user.entity.ts
+29
-0
index.ts
server/src/index.ts
+2
-1
IUser.interface.ts
server/src/interfaces/IUser.interface.ts
+6
-0
user.repository.ts
server/src/repositories/user.repository.ts
+42
-0
user.route.ts
server/src/routes/user.route.ts
+19
-0
category.service.ts
server/src/services/category.service.ts
+0
-1
user.service.ts
server/src/services/user.service.ts
+13
-0
No files found.
server/package-lock.json
View file @
7a06930d
...
...
@@ -9,11 +9,14 @@
"version"
:
"1.0.0"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"@types/lodash"
:
"^4.17.7"
,
"@types/multer"
:
"^1.4.11"
,
"bcrypt"
:
"^5.1.1"
,
"class-transformer"
:
"^0.5.1"
,
"class-validator"
:
"^0.14.1"
,
"cors"
:
"^2.8.5"
,
"express"
:
"^4.18.2"
,
"lodash"
:
"^4.17.21"
,
"multer"
:
"^1.4.5-lts.1"
,
"mysql"
:
"^2.18.1"
,
"nanoid"
:
"^3.3.6"
,
...
...
@@ -27,6 +30,7 @@
"typescript"
:
"^5.1.6"
},
"devDependencies"
:
{
"@types/bcrypt"
:
"^5.0.2"
,
"@types/cors"
:
"^2.8.17"
,
"@types/express"
:
"^4.17.17"
,
"@types/node"
:
"^20.4.2"
,
...
...
@@ -304,6 +308,39 @@
"@jridgewell/sourcemap-codec"
:
"^1.4.10"
}
},
"node_modules/@mapbox/node-pre-gyp"
:
{
"version"
:
"1.0.11"
,
"resolved"
:
"https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz"
,
"integrity"
:
"sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ=="
,
"dependencies"
:
{
"detect-libc"
:
"^2.0.0"
,
"https-proxy-agent"
:
"^5.0.0"
,
"make-dir"
:
"^3.1.0"
,
"node-fetch"
:
"^2.6.7"
,
"nopt"
:
"^5.0.0"
,
"npmlog"
:
"^5.0.1"
,
"rimraf"
:
"^3.0.2"
,
"semver"
:
"^7.3.5"
,
"tar"
:
"^6.1.11"
},
"bin"
:
{
"node-pre-gyp"
:
"bin/node-pre-gyp"
}
},
"node_modules/@mapbox/node-pre-gyp/node_modules/nopt"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz"
,
"integrity"
:
"sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ=="
,
"dependencies"
:
{
"abbrev"
:
"1"
},
"bin"
:
{
"nopt"
:
"bin/nopt.js"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/@nodelib/fs.scandir"
:
{
"version"
:
"2.1.5"
,
"resolved"
:
"https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
,
...
...
@@ -385,6 +422,15 @@
"resolved"
:
"https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz"
,
"integrity"
:
"sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="
},
"node_modules/@types/bcrypt"
:
{
"version"
:
"5.0.2"
,
"resolved"
:
"https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.2.tgz"
,
"integrity"
:
"sha512-6atioO8Y75fNcbmj0G7UjI9lXN2pQ/IGJ2FWT4a/btd0Lk9lQalHLKhkgKVZ3r+spnmWUKfbMi1GEe9wyHQfNQ=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/node"
:
"*"
}
},
"node_modules/@types/body-parser"
:
{
"version"
:
"1.19.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz"
,
...
...
@@ -444,6 +490,11 @@
"integrity"
:
"sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
,
"dev"
:
true
},
"node_modules/@types/lodash"
:
{
"version"
:
"4.17.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz"
,
"integrity"
:
"sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA=="
},
"node_modules/@types/mime"
:
{
"version"
:
"1.3.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz"
,
...
...
@@ -704,8 +755,7 @@
"node_modules/abbrev"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
,
"integrity"
:
"sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
,
"dev"
:
true
"integrity"
:
"sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"node_modules/accepts"
:
{
"version"
:
"1.3.8"
,
...
...
@@ -747,6 +797,17 @@
"node"
:
">=0.4.0"
}
},
"node_modules/agent-base"
:
{
"version"
:
"6.0.2"
,
"resolved"
:
"https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz"
,
"integrity"
:
"sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="
,
"dependencies"
:
{
"debug"
:
"4"
},
"engines"
:
{
"node"
:
">= 6.0.0"
}
},
"node_modules/ajv"
:
{
"version"
:
"6.12.6"
,
"resolved"
:
"https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
,
...
...
@@ -816,6 +877,37 @@
"resolved"
:
"https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz"
,
"integrity"
:
"sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
},
"node_modules/aproba"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz"
,
"integrity"
:
"sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
},
"node_modules/are-we-there-yet"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz"
,
"integrity"
:
"sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw=="
,
"deprecated"
:
"This package is no longer supported."
,
"dependencies"
:
{
"delegates"
:
"^1.0.0"
,
"readable-stream"
:
"^3.6.0"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/are-we-there-yet/node_modules/readable-stream"
:
{
"version"
:
"3.6.2"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
,
"integrity"
:
"sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="
,
"dependencies"
:
{
"inherits"
:
"^2.0.3"
,
"string_decoder"
:
"^1.1.1"
,
"util-deprecate"
:
"^1.0.1"
},
"engines"
:
{
"node"
:
">= 6"
}
},
"node_modules/arg"
:
{
"version"
:
"4.1.3"
,
"resolved"
:
"https://registry.npmjs.org/arg/-/arg-4.1.3.tgz"
,
...
...
@@ -870,6 +962,19 @@
}
]
},
"node_modules/bcrypt"
:
{
"version"
:
"5.1.1"
,
"resolved"
:
"https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz"
,
"integrity"
:
"sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww=="
,
"hasInstallScript"
:
true
,
"dependencies"
:
{
"@mapbox/node-pre-gyp"
:
"^1.0.11"
,
"node-addon-api"
:
"^5.0.0"
},
"engines"
:
{
"node"
:
">= 10.0.0"
}
},
"node_modules/bignumber.js"
:
{
"version"
:
"9.0.0"
,
"resolved"
:
"https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz"
,
...
...
@@ -1071,6 +1176,14 @@
"node"
:
">= 6"
}
},
"node_modules/chownr"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz"
,
"integrity"
:
"sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
,
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/class-transformer"
:
{
"version"
:
"0.5.1"
,
"resolved"
:
"https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz"
,
...
...
@@ -1170,11 +1283,18 @@
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
,
"integrity"
:
"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/color-support"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz"
,
"integrity"
:
"sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
,
"bin"
:
{
"color-support"
:
"bin.js"
}
},
"node_modules/concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
,
"dev"
:
true
"integrity"
:
"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/concat-stream"
:
{
"version"
:
"1.6.2"
,
...
...
@@ -1190,6 +1310,11 @@
"typedarray"
:
"^0.0.6"
}
},
"node_modules/console-control-strings"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"
,
"integrity"
:
"sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
},
"node_modules/content-disposition"
:
{
"version"
:
"0.5.4"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
,
...
...
@@ -1300,6 +1425,11 @@
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/delegates"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
,
"integrity"
:
"sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
},
"node_modules/depd"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
,
...
...
@@ -1317,6 +1447,14 @@
"npm"
:
"1.2.8000 || >= 1.4.16"
}
},
"node_modules/detect-libc"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz"
,
"integrity"
:
"sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw=="
,
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/diff"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/diff/-/diff-4.0.2.tgz"
,
...
...
@@ -1901,11 +2039,32 @@
"resolved"
:
"https://registry.npmjs.org/from/-/from-0.1.7.tgz"
,
"integrity"
:
"sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g=="
},
"node_modules/fs-minipass"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz"
,
"integrity"
:
"sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="
,
"dependencies"
:
{
"minipass"
:
"^3.0.0"
},
"engines"
:
{
"node"
:
">= 8"
}
},
"node_modules/fs-minipass/node_modules/minipass"
:
{
"version"
:
"3.3.6"
,
"resolved"
:
"https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz"
,
"integrity"
:
"sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="
,
"dependencies"
:
{
"yallist"
:
"^4.0.0"
},
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/fs.realpath"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
,
"integrity"
:
"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
,
"dev"
:
true
"integrity"
:
"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/fsevents"
:
{
"version"
:
"2.3.3"
,
...
...
@@ -1929,6 +2088,31 @@
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/gauge"
:
{
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz"
,
"integrity"
:
"sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q=="
,
"deprecated"
:
"This package is no longer supported."
,
"dependencies"
:
{
"aproba"
:
"^1.0.3 || ^2.0.0"
,
"color-support"
:
"^1.1.2"
,
"console-control-strings"
:
"^1.0.0"
,
"has-unicode"
:
"^2.0.1"
,
"object-assign"
:
"^4.1.1"
,
"signal-exit"
:
"^3.0.0"
,
"string-width"
:
"^4.2.3"
,
"strip-ansi"
:
"^6.0.1"
,
"wide-align"
:
"^1.1.2"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/gauge/node_modules/signal-exit"
:
{
"version"
:
"3.0.7"
,
"resolved"
:
"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
,
"integrity"
:
"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"node_modules/get-caller-file"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
,
...
...
@@ -1959,7 +2143,6 @@
"version"
:
"7.2.3"
,
"resolved"
:
"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
,
"integrity"
:
"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
,
"dev"
:
true
,
"dependencies"
:
{
"fs.realpath"
:
"^1.0.0"
,
"inflight"
:
"^1.0.4"
,
...
...
@@ -1991,7 +2174,6 @@
"version"
:
"1.1.11"
,
"resolved"
:
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
,
"integrity"
:
"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
,
"dev"
:
true
,
"dependencies"
:
{
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
...
...
@@ -2001,7 +2183,6 @@
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
,
"integrity"
:
"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
,
"dev"
:
true
,
"dependencies"
:
{
"brace-expansion"
:
"^1.1.7"
},
...
...
@@ -2102,6 +2283,11 @@
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has-unicode"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
,
"integrity"
:
"sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
},
"node_modules/hasown"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
,
...
...
@@ -2136,6 +2322,18 @@
"node"
:
">= 0.8"
}
},
"node_modules/https-proxy-agent"
:
{
"version"
:
"5.0.1"
,
"resolved"
:
"https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz"
,
"integrity"
:
"sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="
,
"dependencies"
:
{
"agent-base"
:
"6"
,
"debug"
:
"4"
},
"engines"
:
{
"node"
:
">= 6"
}
},
"node_modules/iconv-lite"
:
{
"version"
:
"0.4.24"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
,
...
...
@@ -2210,7 +2408,6 @@
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
,
"integrity"
:
"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="
,
"dev"
:
true
,
"dependencies"
:
{
"once"
:
"^1.3.0"
,
"wrappy"
:
"1"
...
...
@@ -2396,6 +2593,11 @@
"url"
:
"https://github.com/sponsors/sindresorhus"
}
},
"node_modules/lodash"
:
{
"version"
:
"4.17.21"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
,
"integrity"
:
"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash.assign"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz"
,
...
...
@@ -2411,7 +2613,6 @@
"version"
:
"6.0.0"
,
"resolved"
:
"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
,
"integrity"
:
"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
,
"dev"
:
true
,
"dependencies"
:
{
"yallist"
:
"^4.0.0"
},
...
...
@@ -2419,6 +2620,28 @@
"node"
:
">=10"
}
},
"node_modules/make-dir"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz"
,
"integrity"
:
"sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="
,
"dependencies"
:
{
"semver"
:
"^6.0.0"
},
"engines"
:
{
"node"
:
">=8"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/sindresorhus"
}
},
"node_modules/make-dir/node_modules/semver"
:
{
"version"
:
"6.3.1"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
,
"integrity"
:
"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
,
"bin"
:
{
"semver"
:
"bin/semver.js"
}
},
"node_modules/make-error"
:
{
"version"
:
"1.3.6"
,
"resolved"
:
"https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"
,
...
...
@@ -2538,6 +2761,29 @@
"node"
:
">=16 || 14 >=14.17"
}
},
"node_modules/minizlib"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz"
,
"integrity"
:
"sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="
,
"dependencies"
:
{
"minipass"
:
"^3.0.0"
,
"yallist"
:
"^4.0.0"
},
"engines"
:
{
"node"
:
">= 8"
}
},
"node_modules/minizlib/node_modules/minipass"
:
{
"version"
:
"3.3.6"
,
"resolved"
:
"https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz"
,
"integrity"
:
"sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="
,
"dependencies"
:
{
"yallist"
:
"^4.0.0"
},
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/mkdirp"
:
{
"version"
:
"0.5.6"
,
"resolved"
:
"https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz"
,
...
...
@@ -2645,6 +2891,30 @@
"node"
:
">= 0.6"
}
},
"node_modules/node-addon-api"
:
{
"version"
:
"5.1.0"
,
"resolved"
:
"https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz"
,
"integrity"
:
"sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
},
"node_modules/node-fetch"
:
{
"version"
:
"2.7.0"
,
"resolved"
:
"https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz"
,
"integrity"
:
"sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="
,
"dependencies"
:
{
"whatwg-url"
:
"^5.0.0"
},
"engines"
:
{
"node"
:
"4.x || >=6.0.0"
},
"peerDependencies"
:
{
"encoding"
:
"^0.1.0"
},
"peerDependenciesMeta"
:
{
"encoding"
:
{
"optional"
:
true
}
}
},
"node_modules/nodemon"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz"
,
...
...
@@ -2740,6 +3010,18 @@
"node"
:
">=0.10.0"
}
},
"node_modules/npmlog"
:
{
"version"
:
"5.0.1"
,
"resolved"
:
"https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz"
,
"integrity"
:
"sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw=="
,
"deprecated"
:
"This package is no longer supported."
,
"dependencies"
:
{
"are-we-there-yet"
:
"^2.0.0"
,
"console-control-strings"
:
"^1.1.0"
,
"gauge"
:
"^3.0.0"
,
"set-blocking"
:
"^2.0.0"
}
},
"node_modules/object-assign"
:
{
"version"
:
"4.1.1"
,
"resolved"
:
"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
,
...
...
@@ -2771,7 +3053,6 @@
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/once/-/once-1.4.0.tgz"
,
"integrity"
:
"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
,
"dev"
:
true
,
"dependencies"
:
{
"wrappy"
:
"1"
}
...
...
@@ -2879,7 +3160,6 @@
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
,
"integrity"
:
"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
,
"dev"
:
true
,
"engines"
:
{
"node"
:
">=0.10.0"
}
...
...
@@ -3253,7 +3533,6 @@
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
,
"integrity"
:
"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="
,
"dev"
:
true
,
"dependencies"
:
{
"glob"
:
"^7.1.3"
},
...
...
@@ -3331,7 +3610,6 @@
"version"
:
"7.6.0"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-7.6.0.tgz"
,
"integrity"
:
"sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg=="
,
"dev"
:
true
,
"dependencies"
:
{
"lru-cache"
:
"^6.0.0"
},
...
...
@@ -3397,6 +3675,11 @@
"node"
:
">= 0.8.0"
}
},
"node_modules/set-blocking"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
,
"integrity"
:
"sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
},
"node_modules/set-function-length"
:
{
"version"
:
"1.2.2"
,
"resolved"
:
"https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz"
,
...
...
@@ -3661,6 +3944,41 @@
"url"
:
"https://opencollective.com/unts"
}
},
"node_modules/tar"
:
{
"version"
:
"6.2.1"
,
"resolved"
:
"https://registry.npmjs.org/tar/-/tar-6.2.1.tgz"
,
"integrity"
:
"sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="
,
"dependencies"
:
{
"chownr"
:
"^2.0.0"
,
"fs-minipass"
:
"^2.0.0"
,
"minipass"
:
"^5.0.0"
,
"minizlib"
:
"^2.1.1"
,
"mkdirp"
:
"^1.0.3"
,
"yallist"
:
"^4.0.0"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/tar/node_modules/minipass"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz"
,
"integrity"
:
"sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="
,
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/tar/node_modules/mkdirp"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
,
"integrity"
:
"sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
,
"bin"
:
{
"mkdirp"
:
"bin/cmd.js"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/text-table"
:
{
"version"
:
"0.2.0"
,
"resolved"
:
"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
,
...
...
@@ -3723,6 +4041,11 @@
"nodetouch"
:
"bin/nodetouch.js"
}
},
"node_modules/tr46"
:
{
"version"
:
"0.0.3"
,
"resolved"
:
"https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
,
"integrity"
:
"sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/ts-api-utils"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz"
,
...
...
@@ -4075,6 +4398,20 @@
"node"
:
">= 0.8"
}
},
"node_modules/webidl-conversions"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
,
"integrity"
:
"sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/whatwg-url"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz"
,
"integrity"
:
"sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="
,
"dependencies"
:
{
"tr46"
:
"~0.0.3"
,
"webidl-conversions"
:
"^3.0.0"
}
},
"node_modules/which"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/which/-/which-2.0.2.tgz"
,
...
...
@@ -4089,6 +4426,14 @@
"node"
:
">= 8"
}
},
"node_modules/wide-align"
:
{
"version"
:
"1.1.5"
,
"resolved"
:
"https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz"
,
"integrity"
:
"sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg=="
,
"dependencies"
:
{
"string-width"
:
"^1.0.2 || 2 || 3 || 4"
}
},
"node_modules/wrap-ansi"
:
{
"version"
:
"7.0.0"
,
"resolved"
:
"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
,
...
...
@@ -4125,8 +4470,7 @@
"node_modules/wrappy"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
,
"integrity"
:
"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
,
"dev"
:
true
"integrity"
:
"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/xtend"
:
{
"version"
:
"4.0.2"
,
...
...
@@ -4147,8 +4491,7 @@
"node_modules/yallist"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
,
"integrity"
:
"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
,
"dev"
:
true
"integrity"
:
"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/yargs"
:
{
"version"
:
"17.7.2"
,
...
...
server/package.json
View file @
7a06930d
...
...
@@ -13,11 +13,14 @@
"author"
:
""
,
"license"
:
"ISC"
,
"dependencies"
:
{
"@types/lodash"
:
"^4.17.7"
,
"@types/multer"
:
"^1.4.11"
,
"bcrypt"
:
"^5.1.1"
,
"class-transformer"
:
"^0.5.1"
,
"class-validator"
:
"^0.14.1"
,
"cors"
:
"^2.8.5"
,
"express"
:
"^4.18.2"
,
"lodash"
:
"^4.17.21"
,
"multer"
:
"^1.4.5-lts.1"
,
"mysql"
:
"^2.18.1"
,
"nanoid"
:
"^3.3.6"
,
...
...
@@ -31,6 +34,7 @@
"typescript"
:
"^5.1.6"
},
"devDependencies"
:
{
"@types/bcrypt"
:
"^5.0.2"
,
"@types/cors"
:
"^2.8.17"
,
"@types/express"
:
"^4.17.17"
,
"@types/node"
:
"^20.4.2"
,
...
...
server/src/appDataSource.ts
View file @
7a06930d
import
{
DataSource
}
from
"typeorm"
;
import
{
Product
}
from
"./entities/product.entity"
;
import
{
Category
}
from
"./entities/category.entity"
;
import
{
User
}
from
"./entities/user.entity"
;
export
const
AppDataSource
=
new
DataSource
({
type
:
"postgres"
,
...
...
@@ -11,5 +12,5 @@ export const AppDataSource = new DataSource({
database
:
"postgres"
,
schema
:
"public"
,
synchronize
:
true
,
entities
:
[
Product
,
Category
]
entities
:
[
Product
,
Category
,
User
]
})
\ No newline at end of file
server/src/controllers/user.controller.ts
0 → 100644
View file @
7a06930d
import
{
UserService
}
from
"@/services/user.service"
;
import
{
RequestHandler
}
from
"express"
;
import
{
plainToInstance
}
from
'class-transformer'
;
// import { SignInUserDto } from "@/dto/sign-in-user.dto";
import
{
RegistrationUserDto
}
from
"@/dto/registration-user.dto"
;
export
class
UserController
{
private
service
:
UserService
;
constructor
()
{
this
.
service
=
new
UserService
();
}
signIn
:
RequestHandler
=
async
(
req
,
res
):
Promise
<
void
>
=>
{
res
.
send
(
req
.
headers
.
authorization
)
// try {
// const signInDto = plainToInstance(SignInUserDto, req.body)
// const user = await this.service.signIn(signInDto)
// res.send(user)
// } catch (e) {
// res.status(401).send((e as Error).message)
// }
}
registration
:
RequestHandler
=
async
(
req
,
res
):
Promise
<
void
>
=>
{
const
registrationInDto
=
plainToInstance
(
RegistrationUserDto
,
req
.
body
)
const
user
=
await
this
.
service
.
registration
(
registrationInDto
)
res
.
send
(
user
)
}
}
server/src/dto/registration-user.dto.ts
0 → 100644
View file @
7a06930d
import
{
Expose
}
from
'class-transformer'
;
import
{
IsNotEmpty
,
IsString
,
IsOptional
}
from
'class-validator'
;
export
class
RegistrationUserDto
{
@
Expose
()
@
IsNotEmpty
({
message
:
'Логин не должен быть пустым'
})
@
IsString
({
message
:
'Логин должен быть строкой'
})
username
!
:
string
;
@
Expose
()
@
IsNotEmpty
({
message
:
'Пароль не должен быть пустым'
})
@
IsString
({
message
:
'Пароль должен быть строкой'
})
password
!
:
string
;
@
Expose
()
@
IsOptional
()
displayName
?:
string
}
server/src/dto/sign-in-user.dto.ts
0 → 100644
View file @
7a06930d
import
{
Expose
}
from
'class-transformer'
;
import
{
IsNotEmpty
,
IsString
}
from
'class-validator'
;
export
class
SignInUserDto
{
@
Expose
()
@
IsNotEmpty
({
message
:
'Логин не должен быть пустым'
})
@
IsString
({
message
:
'Логин должен быть строкой'
})
username
!
:
string
;
@
Expose
()
@
IsNotEmpty
({
message
:
'Пароль не должен быть пустым'
})
@
IsString
({
message
:
'Пароль должен быть строкой'
})
password
!
:
string
;
}
server/src/entities/user.entity.ts
0 → 100644
View file @
7a06930d
import
{
Entity
,
PrimaryGeneratedColumn
,
Column
,
Unique
}
from
"typeorm"
;
import
bcrypt
from
'bcrypt'
;
@
Entity
()
@
Unique
([
'username'
])
export
class
User
{
@
PrimaryGeneratedColumn
()
id
!
:
number
;
@
Column
()
username
!
:
string
@
Column
()
password
!
:
string
@
Column
({
nullable
:
true
})
token
!
:
string
@
Column
({
nullable
:
true
})
displayName
!
:
string
async
comparePassword
(
password
:
string
):
Promise
<
boolean
>
{
return
await
bcrypt
.
compare
(
password
,
this
.
password
);
}
generateToken
()
{
this
.
token
=
crypto
.
randomUUID
();
}
}
\ No newline at end of file
server/src/index.ts
View file @
7a06930d
...
...
@@ -4,11 +4,12 @@ import App from './app';
import
logger
from
'./middlewares/logger'
;
import
{
ArticleRoute
}
from
'./routes/article.route'
;
import
{
ProductRoute
}
from
'./routes/product.route'
;
import
{
UserRoute
}
from
'./routes/user.route'
;
const
app
=
new
App
({
port
:
8000
,
middlewares
:
[
logger
(),
cors
()],
controllers
:
[
new
ArticleRoute
(),
new
ProductRoute
(),
new
CategoryRoute
()],
controllers
:
[
new
ArticleRoute
(),
new
ProductRoute
(),
new
CategoryRoute
()
,
new
UserRoute
()
],
});
app
.
listen
();
server/src/interfaces/IUser.interface.ts
0 → 100644
View file @
7a06930d
export
interface
IUser
{
id
:
number
username
:
string
password
?:
string
displayName
?:
string
}
\ No newline at end of file
server/src/repositories/user.repository.ts
0 → 100644
View file @
7a06930d
import
{
AppDataSource
}
from
"@/appDataSource"
;
import
{
Repository
}
from
"typeorm"
;
import
{
User
}
from
"@/entities/user.entity"
;
import
{
IUser
}
from
"@/interfaces/IUser.interface"
;
import
{
SignInUserDto
}
from
"@/dto/sign-in-user.dto"
;
import
{
RegistrationUserDto
}
from
"@/dto/registration-user.dto"
;
import
bcrypt
from
'bcrypt'
;
import
_
from
"lodash"
;
const
SALT_WORK_FACTOR
=
10
;
export
class
UserRepo
{
private
repo
:
Repository
<
User
>
constructor
()
{
this
.
repo
=
AppDataSource
.
getRepository
(
User
)
}
async
signIn
(
signInUserDto
:
SignInUserDto
):
Promise
<
IUser
>
{
const
userData
=
await
this
.
repo
.
findOne
({
where
:
{
username
:
signInUserDto
.
username
}})
if
(
!
userData
)
throw
new
Error
(
'Invalid username or password'
)
const
isCorrect
=
await
userData
.
comparePassword
(
signInUserDto
.
password
)
if
(
!
isCorrect
)
throw
new
Error
(
'Invalid username or password'
)
userData
.
generateToken
()
const
user
=
await
this
.
repo
.
save
(
userData
)
const
userWithoutPass
=
_
.
omit
(
user
,
'password'
)
return
userWithoutPass
}
async
registration
(
registrationUserDto
:
RegistrationUserDto
):
Promise
<
IUser
>
{
const
salt
=
await
bcrypt
.
genSalt
(
SALT_WORK_FACTOR
)
registrationUserDto
.
password
=
await
bcrypt
.
hash
(
registrationUserDto
.
password
,
salt
)
const
user
=
await
this
.
repo
.
save
(
registrationUserDto
)
const
userWithoutPass
=
_
.
omit
(
user
,
'password'
)
return
userWithoutPass
}
}
export
const
userRepo
=
new
UserRepo
()
\ No newline at end of file
server/src/routes/user.route.ts
0 → 100644
View file @
7a06930d
import
{
Router
}
from
'express'
;
import
{
IRoute
}
from
'../interfaces/IRoute.interface'
;
import
{
UserController
}
from
'@/controllers/user.controller'
;
export
class
UserRoute
implements
IRoute
{
public
path
=
'/user'
;
public
router
=
Router
();
private
controller
:
UserController
;
constructor
()
{
this
.
controller
=
new
UserController
();
this
.
init
();
}
private
init
()
{
this
.
router
.
post
(
'/registration'
,
this
.
controller
.
registration
);
this
.
router
.
post
(
'/signIn'
,
this
.
controller
.
signIn
);
}
}
server/src/services/category.service.ts
View file @
7a06930d
...
...
@@ -2,7 +2,6 @@ import { CategoryDto } from "@/dto/category.dto";
import
{
Category
}
from
"@/entities/category.entity"
;
import
{
categoryRepo
}
from
"@/repositories/category.repository"
;
export
class
CategoryService
{
getAllCategories
=
async
():
Promise
<
Category
[]
>
=>
{
return
await
categoryRepo
.
getAll
()
...
...
server/src/services/user.service.ts
0 → 100644
View file @
7a06930d
import
{
SignInUserDto
}
from
"@/dto/sign-in-user.dto"
import
{
RegistrationUserDto
}
from
"@/dto/registration-user.dto"
import
{
userRepo
}
from
"@/repositories/user.repository"
export
class
UserService
{
async
signIn
(
signInUserDto
:
SignInUserDto
)
{
return
await
userRepo
.
signIn
(
signInUserDto
)
}
async
registration
(
registrationUserDto
:
RegistrationUserDto
)
{
return
await
userRepo
.
registration
(
registrationUserDto
)
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment