From 28bd7661f5c04855b253d53420fb2825863ce3ad Mon Sep 17 00:00:00 2001 From: magdo Date: Tue, 17 Mar 2026 23:53:10 +0100 Subject: [PATCH] =?UTF-8?q?frontend=20elm=C3=A9let?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 8 +- .../negyedik gyakorlat/coverage/clover.xml | 418 --------- .../coverage/coverage-final.json | 27 - .../api/controllers/AuthController.js.html | 394 --------- .../api/controllers/UserController.js.html | 397 --------- .../lcov-report/api/controllers/index.html | 131 --- .../api/middlewares/authMiddleware.js.html | 217 ----- .../api/middlewares/corsMiddleware.js.html | 151 ---- .../lcov-report/api/middlewares/index.html | 146 ---- .../api/middlewares/scopeMiddleware.js.html | 139 --- .../api/routers/authRoutes.js.html | 214 ----- .../lcov-report/api/routers/index.html | 131 --- .../api/routers/userRoutes.js.html | 232 ----- .../auth/commands/LoginUserCommand.js.html | 121 --- .../commands/LoginUserCommandHandler.js.html | 265 ------ .../auth/commands/RegisterUserCommand.js.html | 124 --- .../RegisterUserCommandHandler.js.html | 334 -------- .../application/auth/commands/index.html | 161 ---- .../application/services/Container.js.html | 256 ------ .../application/services/EmailService.js.html | 178 ---- .../application/services/JwtService.js.html | 427 ---------- .../application/services/index.html | 146 ---- .../commands/UpdateUserProfileCommand.js.html | 121 --- .../UpdateUserProfileCommandHandler.js.html | 181 ---- .../application/user/commands/index.html | 131 --- .../user/queries/GetAllUsersQuery.js.html | 118 --- .../queries/GetAllUsersQueryHandler.js.html | 160 ---- .../user/queries/GetMeQuery.js.html | 118 --- .../user/queries/GetMeQueryHandler.js.html | 178 ---- .../user/queries/GetUserByIdQuery.js.html | 118 --- .../queries/GetUserByIdQueryHandler.js.html | 190 ----- .../application/user/queries/index.html | 191 ----- .../coverage/lcov-report/base.css | 224 ----- .../coverage/lcov-report/block-navigation.js | 87 -- .../irepositories/IUserRepository.js.html | 265 ------ .../domain/irepositories/index.html | 116 --- .../lcov-report/domain/models/User.js.html | 313 ------- .../lcov-report/domain/models/index.html | 116 --- .../coverage/lcov-report/favicon.png | Bin 445 -> 0 bytes .../coverage/lcov-report/index.html | 266 ------ .../db/DatabaseConnection.js.html | 307 ------- .../lcov-report/infrastructure/db/index.html | 116 --- .../repositories/UserRepository.js.html | 475 ----------- .../infrastructure/repositories/index.html | 116 --- .../coverage/lcov-report/prettify.css | 1 - .../coverage/lcov-report/prettify.js | 2 - .../lcov-report/sort-arrow-sprite.png | Bin 138 -> 0 bytes .../coverage/lcov-report/sorter.js | 210 ----- Backend/negyedik gyakorlat/coverage/lcov.info | 804 ------------------ Frontend_ppt/common/it_logo.pdf | Bin 0 -> 6171 bytes Frontend_ppt/common/sze_logo.pdf | Bin 0 -> 4099 bytes Frontend_ppt/common/webfejl.sty | 230 +++++ Frontend_ppt/react_js/axios.tex | 37 + Frontend_ppt/react_js/build_deploy.tex | 38 + Frontend_ppt/react_js/components.tex | 53 ++ Frontend_ppt/react_js/context.tex | 133 +++ Frontend_ppt/react_js/effects.tex | 43 + Frontend_ppt/react_js/forms.tex | 38 + Frontend_ppt/react_js/hooks.tex | 55 ++ .../react_js/other_relevant_libraries.tex | 37 + Frontend_ppt/react_js/performance.tex | 36 + Frontend_ppt/react_js/react.tex | 80 ++ Frontend_ppt/react_js/react_js.pdf | Bin 0 -> 977152 bytes Frontend_ppt/react_js/react_js.tex | 31 + Frontend_ppt/react_js/routing.tex | 98 +++ Frontend_ppt/react_js/state.tex | 50 ++ Frontend_ppt/react_js/tailwind.tex | 38 + Frontend_ppt/react_js/testing.tex | 33 + Frontend_ppt/react_js/typescript_nextjs.tex | 35 + 69 files changed, 1072 insertions(+), 9534 deletions(-) delete mode 100644 Backend/negyedik gyakorlat/coverage/clover.xml delete mode 100644 Backend/negyedik gyakorlat/coverage/coverage-final.json delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/AuthController.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/UserController.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/authMiddleware.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/corsMiddleware.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/scopeMiddleware.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/authRoutes.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/userRoutes.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/LoginUserCommand.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/LoginUserCommandHandler.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/RegisterUserCommand.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/RegisterUserCommandHandler.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/services/Container.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/services/EmailService.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/services/JwtService.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/services/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/UpdateUserProfileCommand.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/UpdateUserProfileCommandHandler.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetAllUsersQuery.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetAllUsersQueryHandler.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetMeQuery.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetMeQueryHandler.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetUserByIdQuery.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetUserByIdQueryHandler.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/base.css delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/block-navigation.js delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/domain/irepositories/IUserRepository.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/domain/irepositories/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/domain/models/User.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/domain/models/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/favicon.png delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/db/DatabaseConnection.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/db/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/repositories/UserRepository.js.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/repositories/index.html delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/prettify.css delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/prettify.js delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/sort-arrow-sprite.png delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov-report/sorter.js delete mode 100644 Backend/negyedik gyakorlat/coverage/lcov.info create mode 100644 Frontend_ppt/common/it_logo.pdf create mode 100644 Frontend_ppt/common/sze_logo.pdf create mode 100644 Frontend_ppt/common/webfejl.sty create mode 100644 Frontend_ppt/react_js/axios.tex create mode 100644 Frontend_ppt/react_js/build_deploy.tex create mode 100644 Frontend_ppt/react_js/components.tex create mode 100644 Frontend_ppt/react_js/context.tex create mode 100644 Frontend_ppt/react_js/effects.tex create mode 100644 Frontend_ppt/react_js/forms.tex create mode 100644 Frontend_ppt/react_js/hooks.tex create mode 100644 Frontend_ppt/react_js/other_relevant_libraries.tex create mode 100644 Frontend_ppt/react_js/performance.tex create mode 100644 Frontend_ppt/react_js/react.tex create mode 100644 Frontend_ppt/react_js/react_js.pdf create mode 100644 Frontend_ppt/react_js/react_js.tex create mode 100644 Frontend_ppt/react_js/routing.tex create mode 100644 Frontend_ppt/react_js/state.tex create mode 100644 Frontend_ppt/react_js/tailwind.tex create mode 100644 Frontend_ppt/react_js/testing.tex create mode 100644 Frontend_ppt/react_js/typescript_nextjs.tex diff --git a/.gitignore b/.gitignore index 10dc884..d64f2e8 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,10 @@ */*/package-lock.json */*/yarn.lock -Thumbs.* \ No newline at end of file +Thumbs.* + +# tömörített fájlok +*.zip +*.tar.gz +*.rar +*.7z diff --git a/Backend/negyedik gyakorlat/coverage/clover.xml b/Backend/negyedik gyakorlat/coverage/clover.xml deleted file mode 100644 index c50d4ab..0000000 --- a/Backend/negyedik gyakorlat/coverage/clover.xml +++ /dev/null @@ -1,418 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Backend/negyedik gyakorlat/coverage/coverage-final.json b/Backend/negyedik gyakorlat/coverage/coverage-final.json deleted file mode 100644 index 9c590f5..0000000 --- a/Backend/negyedik gyakorlat/coverage/coverage-final.json +++ /dev/null @@ -1,27 +0,0 @@ -{"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\controllers\\AuthController.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\controllers\\AuthController.js","statementMap":{"0":{"start":{"line":1,"column":28},"end":{"line":1,"column":90}},"1":{"start":{"line":2,"column":25},"end":{"line":2,"column":84}},"2":{"start":{"line":10,"column":4},"end":{"line":10,"column":65}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":59}},"4":{"start":{"line":12,"column":4},"end":{"line":12,"column":33}},"5":{"start":{"line":19,"column":4},"end":{"line":46,"column":5}},"6":{"start":{"line":20,"column":40},"end":{"line":20,"column":48}},"7":{"start":{"line":22,"column":22},"end":{"line":22,"column":68}},"8":{"start":{"line":23,"column":21},"end":{"line":23,"column":74}},"9":{"start":{"line":26,"column":6},"end":{"line":30,"column":8}},"10":{"start":{"line":32,"column":6},"end":{"line":37,"column":9}},"11":{"start":{"line":40,"column":21},"end":{"line":43,"column":66}},"12":{"start":{"line":45,"column":6},"end":{"line":45,"column":56}},"13":{"start":{"line":53,"column":4},"end":{"line":78,"column":5}},"14":{"start":{"line":54,"column":34},"end":{"line":54,"column":42}},"15":{"start":{"line":56,"column":22},"end":{"line":56,"column":59}},"16":{"start":{"line":57,"column":21},"end":{"line":57,"column":71}},"17":{"start":{"line":60,"column":6},"end":{"line":64,"column":8}},"18":{"start":{"line":66,"column":6},"end":{"line":71,"column":9}},"19":{"start":{"line":74,"column":21},"end":{"line":75,"column":67}},"20":{"start":{"line":77,"column":6},"end":{"line":77,"column":56}},"21":{"start":{"line":85,"column":4},"end":{"line":99,"column":5}},"22":{"start":{"line":87,"column":6},"end":{"line":92,"column":9}},"23":{"start":{"line":94,"column":6},"end":{"line":96,"column":9}},"24":{"start":{"line":98,"column":6},"end":{"line":98,"column":53}},"25":{"start":{"line":103,"column":0},"end":{"line":103,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":2},"end":{"line":9,"column":3}},"loc":{"start":{"line":9,"column":79},"end":{"line":13,"column":3}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":2},"end":{"line":18,"column":3}},"loc":{"start":{"line":18,"column":27},"end":{"line":47,"column":3}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":52,"column":2},"end":{"line":52,"column":3}},"loc":{"start":{"line":52,"column":24},"end":{"line":79,"column":3}},"line":52},"3":{"name":"(anonymous_3)","decl":{"start":{"line":84,"column":2},"end":{"line":84,"column":3}},"loc":{"start":{"line":84,"column":25},"end":{"line":100,"column":3}},"line":84}},"branchMap":{"0":{"loc":{"start":{"line":40,"column":21},"end":{"line":43,"column":66}},"type":"cond-expr","locations":[{"start":{"line":43,"column":57},"end":{"line":43,"column":60}},{"start":{"line":43,"column":63},"end":{"line":43,"column":66}}],"line":40},"1":{"loc":{"start":{"line":40,"column":21},"end":{"line":43,"column":54}},"type":"binary-expr","locations":[{"start":{"line":40,"column":21},"end":{"line":40,"column":55}},{"start":{"line":41,"column":21},"end":{"line":41,"column":61}},{"start":{"line":42,"column":21},"end":{"line":42,"column":54}},{"start":{"line":43,"column":21},"end":{"line":43,"column":54}}],"line":40},"2":{"loc":{"start":{"line":74,"column":21},"end":{"line":75,"column":67}},"type":"cond-expr","locations":[{"start":{"line":75,"column":58},"end":{"line":75,"column":61}},{"start":{"line":75,"column":64},"end":{"line":75,"column":67}}],"line":74},"3":{"loc":{"start":{"line":74,"column":21},"end":{"line":75,"column":55}},"type":"binary-expr","locations":[{"start":{"line":74,"column":21},"end":{"line":74,"column":54}},{"start":{"line":75,"column":21},"end":{"line":75,"column":55}}],"line":74}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0],"1":[0,0,0,0],"2":[0,0],"3":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\controllers\\UserController.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\controllers\\UserController.js","statementMap":{"0":{"start":{"line":1,"column":19},"end":{"line":1,"column":71}},"1":{"start":{"line":2,"column":25},"end":{"line":2,"column":83}},"2":{"start":{"line":3,"column":25},"end":{"line":3,"column":83}},"3":{"start":{"line":4,"column":33},"end":{"line":4,"column":100}},"4":{"start":{"line":12,"column":4},"end":{"line":12,"column":47}},"5":{"start":{"line":13,"column":4},"end":{"line":13,"column":59}},"6":{"start":{"line":14,"column":4},"end":{"line":14,"column":59}},"7":{"start":{"line":15,"column":4},"end":{"line":15,"column":75}},"8":{"start":{"line":22,"column":4},"end":{"line":36,"column":5}},"9":{"start":{"line":24,"column":21},"end":{"line":24,"column":36}},"10":{"start":{"line":26,"column":20},"end":{"line":26,"column":42}},"11":{"start":{"line":27,"column":19},"end":{"line":27,"column":61}},"12":{"start":{"line":29,"column":6},"end":{"line":32,"column":9}},"13":{"start":{"line":34,"column":21},"end":{"line":34,"column":68}},"14":{"start":{"line":35,"column":6},"end":{"line":35,"column":56}},"15":{"start":{"line":43,"column":4},"end":{"line":54,"column":5}},"16":{"start":{"line":44,"column":20},"end":{"line":44,"column":42}},"17":{"start":{"line":45,"column":20},"end":{"line":45,"column":68}},"18":{"start":{"line":47,"column":6},"end":{"line":51,"column":9}},"19":{"start":{"line":53,"column":6},"end":{"line":53,"column":53}},"20":{"start":{"line":61,"column":4},"end":{"line":79,"column":5}},"21":{"start":{"line":62,"column":21},"end":{"line":62,"column":31}},"22":{"start":{"line":63,"column":21},"end":{"line":63,"column":33}},"23":{"start":{"line":65,"column":6},"end":{"line":67,"column":7}},"24":{"start":{"line":66,"column":8},"end":{"line":66,"column":66}},"25":{"start":{"line":69,"column":20},"end":{"line":69,"column":48}},"26":{"start":{"line":70,"column":19},"end":{"line":70,"column":67}},"27":{"start":{"line":72,"column":6},"end":{"line":75,"column":9}},"28":{"start":{"line":77,"column":21},"end":{"line":77,"column":68}},"29":{"start":{"line":78,"column":6},"end":{"line":78,"column":56}},"30":{"start":{"line":86,"column":4},"end":{"line":100,"column":5}},"31":{"start":{"line":87,"column":21},"end":{"line":87,"column":36}},"32":{"start":{"line":88,"column":23},"end":{"line":88,"column":31}},"33":{"start":{"line":90,"column":22},"end":{"line":90,"column":64}},"34":{"start":{"line":91,"column":19},"end":{"line":91,"column":77}},"35":{"start":{"line":93,"column":6},"end":{"line":96,"column":9}},"36":{"start":{"line":98,"column":21},"end":{"line":98,"column":67}},"37":{"start":{"line":99,"column":6},"end":{"line":99,"column":56}},"38":{"start":{"line":104,"column":0},"end":{"line":104,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":2},"end":{"line":11,"column":3}},"loc":{"start":{"line":11,"column":116},"end":{"line":16,"column":3}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":2},"end":{"line":21,"column":3}},"loc":{"start":{"line":21,"column":24},"end":{"line":37,"column":3}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":42,"column":2},"end":{"line":42,"column":3}},"loc":{"start":{"line":42,"column":25},"end":{"line":55,"column":3}},"line":42},"3":{"name":"(anonymous_3)","decl":{"start":{"line":60,"column":2},"end":{"line":60,"column":3}},"loc":{"start":{"line":60,"column":26},"end":{"line":80,"column":3}},"line":60},"4":{"name":"(anonymous_4)","decl":{"start":{"line":85,"column":2},"end":{"line":85,"column":3}},"loc":{"start":{"line":85,"column":27},"end":{"line":101,"column":3}},"line":85}},"branchMap":{"0":{"loc":{"start":{"line":34,"column":21},"end":{"line":34,"column":68}},"type":"cond-expr","locations":[{"start":{"line":34,"column":59},"end":{"line":34,"column":62}},{"start":{"line":34,"column":65},"end":{"line":34,"column":68}}],"line":34},"1":{"loc":{"start":{"line":65,"column":6},"end":{"line":67,"column":7}},"type":"if","locations":[{"start":{"line":65,"column":6},"end":{"line":67,"column":7}},{"start":{},"end":{}}],"line":65},"2":{"loc":{"start":{"line":77,"column":21},"end":{"line":77,"column":68}},"type":"cond-expr","locations":[{"start":{"line":77,"column":59},"end":{"line":77,"column":62}},{"start":{"line":77,"column":65},"end":{"line":77,"column":68}}],"line":77},"3":{"loc":{"start":{"line":98,"column":21},"end":{"line":98,"column":67}},"type":"cond-expr","locations":[{"start":{"line":98,"column":58},"end":{"line":98,"column":61}},{"start":{"line":98,"column":64},"end":{"line":98,"column":67}}],"line":98}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\middlewares\\authMiddleware.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\middlewares\\authMiddleware.js","statementMap":{"0":{"start":{"line":1,"column":19},"end":{"line":1,"column":67}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":35}},"2":{"start":{"line":14,"column":2},"end":{"line":41,"column":3}},"3":{"start":{"line":16,"column":18},"end":{"line":16,"column":65}},"4":{"start":{"line":18,"column":4},"end":{"line":23,"column":5}},"5":{"start":{"line":19,"column":6},"end":{"line":22,"column":9}},"6":{"start":{"line":26,"column":20},"end":{"line":26,"column":49}},"7":{"start":{"line":29,"column":4},"end":{"line":32,"column":6}},"8":{"start":{"line":35,"column":4},"end":{"line":35,"column":11}},"9":{"start":{"line":37,"column":4},"end":{"line":40,"column":7}},"10":{"start":{"line":44,"column":0},"end":{"line":44,"column":32}}},"fnMap":{"0":{"name":"authMiddleware","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":23}},"loc":{"start":{"line":13,"column":40},"end":{"line":42,"column":1}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":4},"end":{"line":23,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":23,"column":5}},{"start":{},"end":{}}],"line":18}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"f":{"0":0},"b":{"0":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\middlewares\\corsMiddleware.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\middlewares\\corsMiddleware.js","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":28}},"1":{"start":{"line":4,"column":23},"end":{"line":4,"column":91}},"2":{"start":{"line":6,"column":20},"end":{"line":20,"column":1}},"3":{"start":{"line":22,"column":0},"end":{"line":22,"column":35}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":10},"end":{"line":7,"column":11}},"loc":{"start":{"line":7,"column":38},"end":{"line":16,"column":3}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":23},"end":{"line":4,"column":91}},"type":"binary-expr","locations":[{"start":{"line":4,"column":23},"end":{"line":4,"column":62}},{"start":{"line":4,"column":66},"end":{"line":4,"column":91}}],"line":4}},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0},"b":{"0":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\middlewares\\scopeMiddleware.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\middlewares\\scopeMiddleware.js","statementMap":{"0":{"start":{"line":6,"column":2},"end":{"line":15,"column":4}},"1":{"start":{"line":18,"column":0},"end":{"line":18,"column":33}}},"fnMap":{"0":{"name":"scopeMiddleware","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":36},"end":{"line":16,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":10}},"loc":{"start":{"line":6,"column":29},"end":{"line":15,"column":3}},"line":6}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0,"1":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\routers\\authRoutes.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\routers\\authRoutes.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":34}},"1":{"start":{"line":10,"column":17},"end":{"line":10,"column":33}},"2":{"start":{"line":13,"column":25},"end":{"line":13,"column":60}},"3":{"start":{"line":20,"column":2},"end":{"line":20,"column":76}},"4":{"start":{"line":20,"column":41},"end":{"line":20,"column":74}},"5":{"start":{"line":27,"column":2},"end":{"line":27,"column":70}},"6":{"start":{"line":27,"column":38},"end":{"line":27,"column":68}},"7":{"start":{"line":33,"column":2},"end":{"line":33,"column":72}},"8":{"start":{"line":33,"column":39},"end":{"line":33,"column":70}},"9":{"start":{"line":38,"column":2},"end":{"line":38,"column":57}},"10":{"start":{"line":38,"column":36},"end":{"line":38,"column":55}},"11":{"start":{"line":40,"column":2},"end":{"line":40,"column":16}},"12":{"start":{"line":43,"column":0},"end":{"line":43,"column":34}}},"fnMap":{"0":{"name":"createAuthRoutes","decl":{"start":{"line":9,"column":9},"end":{"line":9,"column":25}},"loc":{"start":{"line":9,"column":37},"end":{"line":41,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":27},"end":{"line":20,"column":28}},"loc":{"start":{"line":20,"column":41},"end":{"line":20,"column":74}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":27,"column":24},"end":{"line":27,"column":25}},"loc":{"start":{"line":27,"column":38},"end":{"line":27,"column":68}},"line":27},"3":{"name":"(anonymous_3)","decl":{"start":{"line":33,"column":25},"end":{"line":33,"column":26}},"loc":{"start":{"line":33,"column":39},"end":{"line":33,"column":70}},"line":33},"4":{"name":"(anonymous_4)","decl":{"start":{"line":38,"column":22},"end":{"line":38,"column":23}},"loc":{"start":{"line":38,"column":36},"end":{"line":38,"column":55}},"line":38}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\routers\\userRoutes.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\api\\routers\\userRoutes.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":34}},"1":{"start":{"line":2,"column":23},"end":{"line":2,"column":63}},"2":{"start":{"line":11,"column":17},"end":{"line":11,"column":33}},"3":{"start":{"line":14,"column":25},"end":{"line":14,"column":60}},"4":{"start":{"line":20,"column":2},"end":{"line":20,"column":82}},"5":{"start":{"line":20,"column":50},"end":{"line":20,"column":80}},"6":{"start":{"line":27,"column":2},"end":{"line":27,"column":85}},"7":{"start":{"line":27,"column":50},"end":{"line":27,"column":83}},"8":{"start":{"line":33,"column":2},"end":{"line":33,"column":81}},"9":{"start":{"line":33,"column":48},"end":{"line":33,"column":79}},"10":{"start":{"line":39,"column":2},"end":{"line":39,"column":85}},"11":{"start":{"line":39,"column":51},"end":{"line":39,"column":83}},"12":{"start":{"line":44,"column":2},"end":{"line":44,"column":57}},"13":{"start":{"line":44,"column":36},"end":{"line":44,"column":55}},"14":{"start":{"line":46,"column":2},"end":{"line":46,"column":16}},"15":{"start":{"line":49,"column":0},"end":{"line":49,"column":34}}},"fnMap":{"0":{"name":"createUserRoutes","decl":{"start":{"line":10,"column":9},"end":{"line":10,"column":25}},"loc":{"start":{"line":10,"column":37},"end":{"line":47,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":36},"end":{"line":20,"column":37}},"loc":{"start":{"line":20,"column":50},"end":{"line":20,"column":80}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":27,"column":36},"end":{"line":27,"column":37}},"loc":{"start":{"line":27,"column":50},"end":{"line":27,"column":83}},"line":27},"3":{"name":"(anonymous_3)","decl":{"start":{"line":33,"column":34},"end":{"line":33,"column":35}},"loc":{"start":{"line":33,"column":48},"end":{"line":33,"column":79}},"line":33},"4":{"name":"(anonymous_4)","decl":{"start":{"line":39,"column":37},"end":{"line":39,"column":38}},"loc":{"start":{"line":39,"column":51},"end":{"line":39,"column":83}},"line":39},"5":{"name":"(anonymous_5)","decl":{"start":{"line":44,"column":22},"end":{"line":44,"column":23}},"loc":{"start":{"line":44,"column":36},"end":{"line":44,"column":55}},"line":44}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\auth\\commands\\LoginUserCommand.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\auth\\commands\\LoginUserCommand.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":23}},"1":{"start":{"line":8,"column":4},"end":{"line":8,"column":29}},"2":{"start":{"line":12,"column":0},"end":{"line":12,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":31},"end":{"line":9,"column":3}},"line":6}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\auth\\commands\\LoginUserCommandHandler.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\auth\\commands\\LoginUserCommandHandler.js","statementMap":{"0":{"start":{"line":1,"column":15},"end":{"line":1,"column":34}},"1":{"start":{"line":2,"column":19},"end":{"line":2,"column":55}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":35}},"3":{"start":{"line":12,"column":4},"end":{"line":12,"column":25}},"4":{"start":{"line":21,"column":32},"end":{"line":21,"column":39}},"5":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"6":{"start":{"line":25,"column":6},"end":{"line":25,"column":57}},"7":{"start":{"line":29,"column":17},"end":{"line":31,"column":6}},"8":{"start":{"line":33,"column":4},"end":{"line":35,"column":5}},"9":{"start":{"line":34,"column":6},"end":{"line":34,"column":51}},"10":{"start":{"line":38,"column":28},"end":{"line":38,"column":73}},"11":{"start":{"line":40,"column":4},"end":{"line":42,"column":5}},"12":{"start":{"line":41,"column":6},"end":{"line":41,"column":51}},"13":{"start":{"line":45,"column":18},"end":{"line":48,"column":6}},"14":{"start":{"line":51,"column":52},"end":{"line":51,"column":56}},"15":{"start":{"line":53,"column":4},"end":{"line":56,"column":6}},"16":{"start":{"line":60,"column":0},"end":{"line":60,"column":41}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":2},"end":{"line":11,"column":3}},"loc":{"start":{"line":11,"column":22},"end":{"line":13,"column":3}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":2},"end":{"line":20,"column":3}},"loc":{"start":{"line":20,"column":24},"end":{"line":57,"column":3}},"line":20}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},{"start":{},"end":{}}],"line":24},"1":{"loc":{"start":{"line":24,"column":8},"end":{"line":24,"column":27}},"type":"binary-expr","locations":[{"start":{"line":24,"column":8},"end":{"line":24,"column":14}},{"start":{"line":24,"column":18},"end":{"line":24,"column":27}}],"line":24},"2":{"loc":{"start":{"line":33,"column":4},"end":{"line":35,"column":5}},"type":"if","locations":[{"start":{"line":33,"column":4},"end":{"line":35,"column":5}},{"start":{},"end":{}}],"line":33},"3":{"loc":{"start":{"line":40,"column":4},"end":{"line":42,"column":5}},"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":42,"column":5}},{"start":{},"end":{}}],"line":40}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0},"f":{"0":0,"1":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\auth\\commands\\RegisterUserCommand.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\auth\\commands\\RegisterUserCommand.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":21}},"1":{"start":{"line":8,"column":4},"end":{"line":8,"column":23}},"2":{"start":{"line":9,"column":4},"end":{"line":9,"column":29}},"3":{"start":{"line":13,"column":0},"end":{"line":13,"column":37}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":37},"end":{"line":10,"column":3}},"line":6}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\auth\\commands\\RegisterUserCommandHandler.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\auth\\commands\\RegisterUserCommandHandler.js","statementMap":{"0":{"start":{"line":1,"column":15},"end":{"line":1,"column":34}},"1":{"start":{"line":2,"column":19},"end":{"line":2,"column":55}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":35}},"3":{"start":{"line":12,"column":4},"end":{"line":12,"column":25}},"4":{"start":{"line":13,"column":4},"end":{"line":13,"column":37}},"5":{"start":{"line":22,"column":38},"end":{"line":22,"column":45}},"6":{"start":{"line":25,"column":4},"end":{"line":27,"column":5}},"7":{"start":{"line":26,"column":6},"end":{"line":26,"column":63}},"8":{"start":{"line":29,"column":4},"end":{"line":31,"column":5}},"9":{"start":{"line":30,"column":6},"end":{"line":30,"column":69}},"10":{"start":{"line":34,"column":23},"end":{"line":34,"column":51}},"11":{"start":{"line":35,"column":4},"end":{"line":37,"column":5}},"12":{"start":{"line":36,"column":6},"end":{"line":36,"column":46}},"13":{"start":{"line":40,"column":25},"end":{"line":42,"column":6}},"14":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"15":{"start":{"line":45,"column":6},"end":{"line":45,"column":61}},"16":{"start":{"line":49,"column":27},"end":{"line":49,"column":58}},"17":{"start":{"line":52,"column":17},"end":{"line":58,"column":6}},"18":{"start":{"line":61,"column":4},"end":{"line":65,"column":5}},"19":{"start":{"line":62,"column":6},"end":{"line":64,"column":9}},"20":{"start":{"line":63,"column":8},"end":{"line":63,"column":70}},"21":{"start":{"line":68,"column":18},"end":{"line":71,"column":6}},"22":{"start":{"line":74,"column":52},"end":{"line":74,"column":56}},"23":{"start":{"line":76,"column":4},"end":{"line":79,"column":6}},"24":{"start":{"line":83,"column":0},"end":{"line":83,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":2},"end":{"line":11,"column":3}},"loc":{"start":{"line":11,"column":36},"end":{"line":14,"column":3}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":2},"end":{"line":21,"column":3}},"loc":{"start":{"line":21,"column":24},"end":{"line":80,"column":3}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":62,"column":60},"end":{"line":62,"column":61}},"loc":{"start":{"line":62,"column":67},"end":{"line":64,"column":7}},"line":62}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":4},"end":{"line":27,"column":5}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":27,"column":5}},{"start":{},"end":{}}],"line":25},"1":{"loc":{"start":{"line":25,"column":8},"end":{"line":25,"column":36}},"type":"binary-expr","locations":[{"start":{"line":25,"column":8},"end":{"line":25,"column":13}},{"start":{"line":25,"column":17},"end":{"line":25,"column":23}},{"start":{"line":25,"column":27},"end":{"line":25,"column":36}}],"line":25},"2":{"loc":{"start":{"line":29,"column":4},"end":{"line":31,"column":5}},"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":31,"column":5}},{"start":{},"end":{}}],"line":29},"3":{"loc":{"start":{"line":35,"column":4},"end":{"line":37,"column":5}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":37,"column":5}},{"start":{},"end":{}}],"line":35},"4":{"loc":{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":46,"column":5}},{"start":{},"end":{}}],"line":44},"5":{"loc":{"start":{"line":61,"column":4},"end":{"line":65,"column":5}},"type":"if","locations":[{"start":{"line":61,"column":4},"end":{"line":65,"column":5}},{"start":{},"end":{}}],"line":61}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\services\\Container.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\services\\Container.js","statementMap":{"0":{"start":{"line":57,"column":0},"end":{"line":57,"column":27}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":16},"end":{"line":15,"column":3}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":2},"end":{"line":17,"column":3}},"loc":{"start":{"line":17,"column":50},"end":{"line":23,"column":3}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":25,"column":2},"end":{"line":25,"column":3}},"loc":{"start":{"line":25,"column":30},"end":{"line":45,"column":3}},"line":25},"3":{"name":"(anonymous_3)","decl":{"start":{"line":47,"column":2},"end":{"line":47,"column":3}},"loc":{"start":{"line":47,"column":16},"end":{"line":54,"column":3}},"line":47}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":26},"end":{"line":17,"column":48}},"type":"default-arg","locations":[{"start":{"line":17,"column":37},"end":{"line":17,"column":48}}],"line":17},"1":{"loc":{"start":{"line":25,"column":16},"end":{"line":25,"column":28}},"type":"default-arg","locations":[{"start":{"line":25,"column":24},"end":{"line":25,"column":28}}],"line":25}},"s":{"0":1},"f":{"0":22,"1":22,"2":19,"3":9},"b":{"0":[1],"1":[17]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6d069147677c6d63ea84f3a595b401d772672ea8"} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\services\\EmailService.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\services\\EmailService.js","statementMap":{"0":{"start":{"line":20,"column":4},"end":{"line":20,"column":47}},"1":{"start":{"line":26,"column":4},"end":{"line":26,"column":77}},"2":{"start":{"line":27,"column":4},"end":{"line":27,"column":16}},"3":{"start":{"line":31,"column":0},"end":{"line":31,"column":30}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":2},"end":{"line":8,"column":3}},"loc":{"start":{"line":8,"column":16},"end":{"line":21,"column":3}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":2},"end":{"line":23,"column":3}},"loc":{"start":{"line":23,"column":46},"end":{"line":28,"column":3}},"line":23}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0,"1":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\services\\JwtService.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\services\\JwtService.js","statementMap":{"0":{"start":{"line":1,"column":12},"end":{"line":1,"column":35}},"1":{"start":{"line":9,"column":4},"end":{"line":9,"column":71}},"2":{"start":{"line":10,"column":4},"end":{"line":10,"column":56}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":35}},"4":{"start":{"line":20,"column":4},"end":{"line":20,"column":73}},"5":{"start":{"line":29,"column":4},"end":{"line":33,"column":5}},"6":{"start":{"line":30,"column":6},"end":{"line":30,"column":44}},"7":{"start":{"line":32,"column":6},"end":{"line":32,"column":50}},"8":{"start":{"line":42,"column":4},"end":{"line":44,"column":5}},"9":{"start":{"line":43,"column":6},"end":{"line":43,"column":18}},"10":{"start":{"line":46,"column":18},"end":{"line":46,"column":39}},"11":{"start":{"line":48,"column":4},"end":{"line":50,"column":5}},"12":{"start":{"line":49,"column":6},"end":{"line":49,"column":18}},"13":{"start":{"line":52,"column":4},"end":{"line":52,"column":20}},"14":{"start":{"line":61,"column":4},"end":{"line":63,"column":5}},"15":{"start":{"line":62,"column":6},"end":{"line":62,"column":18}},"16":{"start":{"line":65,"column":4},"end":{"line":65,"column":36}},"17":{"start":{"line":73,"column":25},"end":{"line":73,"column":62}},"18":{"start":{"line":75,"column":4},"end":{"line":81,"column":6}},"19":{"start":{"line":91,"column":22},"end":{"line":91,"column":36}},"20":{"start":{"line":93,"column":4},"end":{"line":99,"column":5}},"21":{"start":{"line":94,"column":6},"end":{"line":94,"column":50}},"22":{"start":{"line":95,"column":11},"end":{"line":99,"column":5}},"23":{"start":{"line":96,"column":6},"end":{"line":96,"column":55}},"24":{"start":{"line":97,"column":11},"end":{"line":99,"column":5}},"25":{"start":{"line":98,"column":6},"end":{"line":98,"column":45}},"26":{"start":{"line":102,"column":4},"end":{"line":102,"column":26}},"27":{"start":{"line":110,"column":4},"end":{"line":110,"column":27}},"28":{"start":{"line":114,"column":0},"end":{"line":114,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":2},"end":{"line":8,"column":3}},"loc":{"start":{"line":8,"column":16},"end":{"line":12,"column":3}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":2},"end":{"line":19,"column":3}},"loc":{"start":{"line":19,"column":25},"end":{"line":21,"column":3}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":28,"column":2},"end":{"line":28,"column":3}},"loc":{"start":{"line":28,"column":21},"end":{"line":34,"column":3}},"line":28},"3":{"name":"(anonymous_3)","decl":{"start":{"line":41,"column":2},"end":{"line":41,"column":3}},"loc":{"start":{"line":41,"column":37},"end":{"line":53,"column":3}},"line":41},"4":{"name":"(anonymous_4)","decl":{"start":{"line":60,"column":2},"end":{"line":60,"column":3}},"loc":{"start":{"line":60,"column":35},"end":{"line":66,"column":3}},"line":60},"5":{"name":"(anonymous_5)","decl":{"start":{"line":72,"column":2},"end":{"line":72,"column":3}},"loc":{"start":{"line":72,"column":21},"end":{"line":82,"column":3}},"line":72},"6":{"name":"(anonymous_6)","decl":{"start":{"line":89,"column":2},"end":{"line":89,"column":3}},"loc":{"start":{"line":89,"column":15},"end":{"line":103,"column":3}},"line":89},"7":{"name":"(anonymous_7)","decl":{"start":{"line":109,"column":2},"end":{"line":109,"column":3}},"loc":{"start":{"line":109,"column":18},"end":{"line":111,"column":3}},"line":109}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":18},"end":{"line":9,"column":70}},"type":"binary-expr","locations":[{"start":{"line":9,"column":18},"end":{"line":9,"column":40}},{"start":{"line":9,"column":44},"end":{"line":9,"column":70}}],"line":9},"1":{"loc":{"start":{"line":10,"column":21},"end":{"line":10,"column":55}},"type":"binary-expr","locations":[{"start":{"line":10,"column":21},"end":{"line":10,"column":47}},{"start":{"line":10,"column":51},"end":{"line":10,"column":55}}],"line":10},"2":{"loc":{"start":{"line":42,"column":4},"end":{"line":44,"column":5}},"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":44,"column":5}},{"start":{},"end":{}}],"line":42},"3":{"loc":{"start":{"line":48,"column":4},"end":{"line":50,"column":5}},"type":"if","locations":[{"start":{"line":48,"column":4},"end":{"line":50,"column":5}},{"start":{},"end":{}}],"line":48},"4":{"loc":{"start":{"line":48,"column":8},"end":{"line":48,"column":51}},"type":"binary-expr","locations":[{"start":{"line":48,"column":8},"end":{"line":48,"column":26}},{"start":{"line":48,"column":30},"end":{"line":48,"column":51}}],"line":48},"5":{"loc":{"start":{"line":61,"column":4},"end":{"line":63,"column":5}},"type":"if","locations":[{"start":{"line":61,"column":4},"end":{"line":63,"column":5}},{"start":{},"end":{}}],"line":61},"6":{"loc":{"start":{"line":61,"column":8},"end":{"line":61,"column":45}},"type":"binary-expr","locations":[{"start":{"line":61,"column":8},"end":{"line":61,"column":16}},{"start":{"line":61,"column":20},"end":{"line":61,"column":45}}],"line":61},"7":{"loc":{"start":{"line":93,"column":4},"end":{"line":99,"column":5}},"type":"if","locations":[{"start":{"line":93,"column":4},"end":{"line":99,"column":5}},{"start":{"line":95,"column":11},"end":{"line":99,"column":5}}],"line":93},"8":{"loc":{"start":{"line":95,"column":11},"end":{"line":99,"column":5}},"type":"if","locations":[{"start":{"line":95,"column":11},"end":{"line":99,"column":5}},{"start":{"line":97,"column":11},"end":{"line":99,"column":5}}],"line":95},"9":{"loc":{"start":{"line":97,"column":11},"end":{"line":99,"column":5}},"type":"if","locations":[{"start":{"line":97,"column":11},"end":{"line":99,"column":5}},{"start":{},"end":{}}],"line":97}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\commands\\UpdateUserProfileCommand.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\commands\\UpdateUserProfileCommand.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":25}},"1":{"start":{"line":8,"column":4},"end":{"line":8,"column":21}},"2":{"start":{"line":12,"column":0},"end":{"line":12,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":28},"end":{"line":9,"column":3}},"line":6}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\commands\\UpdateUserProfileCommandHandler.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\commands\\UpdateUserProfileCommandHandler.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":25}},"1":{"start":{"line":16,"column":29},"end":{"line":16,"column":36}},"2":{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},"3":{"start":{"line":19,"column":6},"end":{"line":19,"column":42}},"4":{"start":{"line":22,"column":17},"end":{"line":25,"column":6}},"5":{"start":{"line":27,"column":49},"end":{"line":27,"column":53}},"6":{"start":{"line":28,"column":4},"end":{"line":28,"column":31}},"7":{"start":{"line":32,"column":0},"end":{"line":32,"column":49}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":22},"end":{"line":8,"column":3}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":2},"end":{"line":15,"column":3}},"loc":{"start":{"line":15,"column":24},"end":{"line":29,"column":3}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},{"start":{},"end":{}}],"line":18}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0},"b":{"0":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetAllUsersQuery.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetAllUsersQuery.js","statementMap":{"0":{"start":{"line":11,"column":0},"end":{"line":11,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":16},"end":{"line":8,"column":3}},"line":6}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetAllUsersQueryHandler.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetAllUsersQueryHandler.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":25}},"1":{"start":{"line":16,"column":18},"end":{"line":18,"column":6}},"2":{"start":{"line":21,"column":4},"end":{"line":21,"column":54}},"3":{"start":{"line":21,"column":48},"end":{"line":21,"column":52}},"4":{"start":{"line":25,"column":0},"end":{"line":25,"column":41}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":22},"end":{"line":8,"column":3}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":2},"end":{"line":15,"column":3}},"loc":{"start":{"line":15,"column":22},"end":{"line":22,"column":3}},"line":15},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":21},"end":{"line":21,"column":22}},"loc":{"start":{"line":21,"column":48},"end":{"line":21,"column":52}},"line":21}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0,"1":0,"2":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetMeQuery.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetMeQuery.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":25}},"1":{"start":{"line":11,"column":0},"end":{"line":11,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":22},"end":{"line":8,"column":3}},"line":6}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetMeQueryHandler.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetMeQueryHandler.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":25}},"1":{"start":{"line":16,"column":23},"end":{"line":16,"column":28}},"2":{"start":{"line":18,"column":17},"end":{"line":20,"column":6}},"3":{"start":{"line":22,"column":4},"end":{"line":24,"column":5}},"4":{"start":{"line":23,"column":6},"end":{"line":23,"column":40}},"5":{"start":{"line":26,"column":49},"end":{"line":26,"column":53}},"6":{"start":{"line":27,"column":4},"end":{"line":27,"column":31}},"7":{"start":{"line":31,"column":0},"end":{"line":31,"column":35}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":22},"end":{"line":8,"column":3}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":2},"end":{"line":15,"column":3}},"loc":{"start":{"line":15,"column":22},"end":{"line":28,"column":3}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":4},"end":{"line":24,"column":5}},"type":"if","locations":[{"start":{"line":22,"column":4},"end":{"line":24,"column":5}},{"start":{},"end":{}}],"line":22}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0},"b":{"0":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetUserByIdQuery.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetUserByIdQuery.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":25}},"1":{"start":{"line":11,"column":0},"end":{"line":11,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":22},"end":{"line":8,"column":3}},"line":6}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetUserByIdQueryHandler.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\application\\user\\queries\\GetUserByIdQueryHandler.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":25}},"1":{"start":{"line":16,"column":23},"end":{"line":16,"column":28}},"2":{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},"3":{"start":{"line":19,"column":6},"end":{"line":19,"column":51}},"4":{"start":{"line":22,"column":17},"end":{"line":24,"column":6}},"5":{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},"6":{"start":{"line":27,"column":6},"end":{"line":27,"column":40}},"7":{"start":{"line":30,"column":49},"end":{"line":30,"column":53}},"8":{"start":{"line":31,"column":4},"end":{"line":31,"column":31}},"9":{"start":{"line":35,"column":0},"end":{"line":35,"column":41}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":22},"end":{"line":8,"column":3}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":2},"end":{"line":15,"column":3}},"loc":{"start":{"line":15,"column":22},"end":{"line":32,"column":3}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},{"start":{},"end":{}}],"line":18},"1":{"loc":{"start":{"line":18,"column":8},"end":{"line":18,"column":32}},"type":"binary-expr","locations":[{"start":{"line":18,"column":8},"end":{"line":18,"column":15}},{"start":{"line":18,"column":19},"end":{"line":18,"column":32}}],"line":18},"2":{"loc":{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},{"start":{},"end":{}}],"line":26}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"f":{"0":0,"1":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\domain\\irepositories\\IUserRepository.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\domain\\irepositories\\IUserRepository.js","statementMap":{"0":{"start":{"line":12,"column":4},"end":{"line":12,"column":61}},"1":{"start":{"line":21,"column":4},"end":{"line":21,"column":64}},"2":{"start":{"line":29,"column":4},"end":{"line":29,"column":60}},"3":{"start":{"line":38,"column":4},"end":{"line":38,"column":59}},"4":{"start":{"line":47,"column":4},"end":{"line":47,"column":59}},"5":{"start":{"line":56,"column":4},"end":{"line":56,"column":59}},"6":{"start":{"line":60,"column":0},"end":{"line":60,"column":33}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":2},"end":{"line":11,"column":3}},"loc":{"start":{"line":11,"column":21},"end":{"line":13,"column":3}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":2},"end":{"line":20,"column":3}},"loc":{"start":{"line":20,"column":27},"end":{"line":22,"column":3}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":28,"column":2},"end":{"line":28,"column":3}},"loc":{"start":{"line":28,"column":18},"end":{"line":30,"column":3}},"line":28},"3":{"name":"(anonymous_3)","decl":{"start":{"line":37,"column":2},"end":{"line":37,"column":3}},"loc":{"start":{"line":37,"column":21},"end":{"line":39,"column":3}},"line":37},"4":{"name":"(anonymous_4)","decl":{"start":{"line":46,"column":2},"end":{"line":46,"column":3}},"loc":{"start":{"line":46,"column":21},"end":{"line":48,"column":3}},"line":46},"5":{"name":"(anonymous_5)","decl":{"start":{"line":55,"column":2},"end":{"line":55,"column":3}},"loc":{"start":{"line":55,"column":19},"end":{"line":57,"column":3}},"line":55}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\domain\\models\\User.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\domain\\models\\User.js","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":17}},"1":{"start":{"line":8,"column":4},"end":{"line":8,"column":21}},"2":{"start":{"line":9,"column":4},"end":{"line":9,"column":23}},"3":{"start":{"line":10,"column":4},"end":{"line":10,"column":29}},"4":{"start":{"line":11,"column":4},"end":{"line":11,"column":31}},"5":{"start":{"line":12,"column":4},"end":{"line":12,"column":31}},"6":{"start":{"line":21,"column":38},"end":{"line":21,"column":42}},"7":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"8":{"start":{"line":25,"column":6},"end":{"line":25,"column":47}},"9":{"start":{"line":28,"column":4},"end":{"line":30,"column":5}},"10":{"start":{"line":29,"column":6},"end":{"line":29,"column":49}},"11":{"start":{"line":32,"column":4},"end":{"line":34,"column":5}},"12":{"start":{"line":33,"column":6},"end":{"line":33,"column":69}},"13":{"start":{"line":36,"column":4},"end":{"line":36,"column":94}},"14":{"start":{"line":45,"column":23},"end":{"line":45,"column":51}},"15":{"start":{"line":46,"column":4},"end":{"line":46,"column":34}},"16":{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},"17":{"start":{"line":55,"column":6},"end":{"line":55,"column":47}},"18":{"start":{"line":57,"column":4},"end":{"line":57,"column":31}},"19":{"start":{"line":58,"column":4},"end":{"line":58,"column":32}},"20":{"start":{"line":66,"column":4},"end":{"line":72,"column":6}},"21":{"start":{"line":76,"column":0},"end":{"line":76,"column":22}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":3}},"loc":{"start":{"line":6,"column":63},"end":{"line":13,"column":3}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":2},"end":{"line":20,"column":3}},"loc":{"start":{"line":20,"column":22},"end":{"line":37,"column":3}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":44,"column":2},"end":{"line":44,"column":3}},"loc":{"start":{"line":44,"column":29},"end":{"line":47,"column":3}},"line":44},"3":{"name":"(anonymous_3)","decl":{"start":{"line":53,"column":2},"end":{"line":53,"column":3}},"loc":{"start":{"line":53,"column":22},"end":{"line":59,"column":3}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":65,"column":2},"end":{"line":65,"column":3}},"loc":{"start":{"line":65,"column":17},"end":{"line":73,"column":3}},"line":65}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},{"start":{},"end":{}}],"line":24},"1":{"loc":{"start":{"line":24,"column":8},"end":{"line":24,"column":41}},"type":"binary-expr","locations":[{"start":{"line":24,"column":8},"end":{"line":24,"column":13}},{"start":{"line":24,"column":17},"end":{"line":24,"column":41}}],"line":24},"2":{"loc":{"start":{"line":28,"column":4},"end":{"line":30,"column":5}},"type":"if","locations":[{"start":{"line":28,"column":4},"end":{"line":30,"column":5}},{"start":{},"end":{}}],"line":28},"3":{"loc":{"start":{"line":28,"column":8},"end":{"line":28,"column":43}},"type":"binary-expr","locations":[{"start":{"line":28,"column":8},"end":{"line":28,"column":14}},{"start":{"line":28,"column":18},"end":{"line":28,"column":43}}],"line":28},"4":{"loc":{"start":{"line":32,"column":4},"end":{"line":34,"column":5}},"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":34,"column":5}},{"start":{},"end":{}}],"line":32},"5":{"loc":{"start":{"line":32,"column":8},"end":{"line":32,"column":40}},"type":"binary-expr","locations":[{"start":{"line":32,"column":8},"end":{"line":32,"column":17}},{"start":{"line":32,"column":21},"end":{"line":32,"column":40}}],"line":32},"6":{"loc":{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},"type":"if","locations":[{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},{"start":{},"end":{}}],"line":54},"7":{"loc":{"start":{"line":54,"column":8},"end":{"line":54,"column":47}},"type":"binary-expr","locations":[{"start":{"line":54,"column":8},"end":{"line":54,"column":16}},{"start":{"line":54,"column":20},"end":{"line":54,"column":47}}],"line":54}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\infrastructure\\db\\DatabaseConnection.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\infrastructure\\db\\DatabaseConnection.js","statementMap":{"0":{"start":{"line":1,"column":25},"end":{"line":1,"column":50}},"1":{"start":{"line":9,"column":4},"end":{"line":9,"column":23}},"2":{"start":{"line":16,"column":4},"end":{"line":19,"column":5}},"3":{"start":{"line":17,"column":6},"end":{"line":17,"column":57}},"4":{"start":{"line":18,"column":6},"end":{"line":18,"column":13}},"5":{"start":{"line":21,"column":4},"end":{"line":31,"column":5}},"6":{"start":{"line":22,"column":6},"end":{"line":24,"column":9}},"7":{"start":{"line":26,"column":6},"end":{"line":26,"column":35}},"8":{"start":{"line":27,"column":6},"end":{"line":27,"column":54}},"9":{"start":{"line":29,"column":6},"end":{"line":29,"column":63}},"10":{"start":{"line":30,"column":6},"end":{"line":30,"column":18}},"11":{"start":{"line":39,"column":4},"end":{"line":41,"column":5}},"12":{"start":{"line":40,"column":6},"end":{"line":40,"column":71}},"13":{"start":{"line":42,"column":4},"end":{"line":42,"column":23}},"14":{"start":{"line":49,"column":4},"end":{"line":53,"column":5}},"15":{"start":{"line":50,"column":6},"end":{"line":50,"column":38}},"16":{"start":{"line":51,"column":6},"end":{"line":51,"column":44}},"17":{"start":{"line":52,"column":6},"end":{"line":52,"column":25}},"18":{"start":{"line":61,"column":4},"end":{"line":67,"column":5}},"19":{"start":{"line":62,"column":6},"end":{"line":62,"column":44}},"20":{"start":{"line":63,"column":6},"end":{"line":63,"column":18}},"21":{"start":{"line":65,"column":6},"end":{"line":65,"column":62}},"22":{"start":{"line":66,"column":6},"end":{"line":66,"column":19}},"23":{"start":{"line":72,"column":27},"end":{"line":72,"column":51}},"24":{"start":{"line":74,"column":0},"end":{"line":74,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":2},"end":{"line":8,"column":3}},"loc":{"start":{"line":8,"column":16},"end":{"line":10,"column":3}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":2},"end":{"line":15,"column":3}},"loc":{"start":{"line":15,"column":18},"end":{"line":32,"column":3}},"line":15},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":2},"end":{"line":38,"column":3}},"loc":{"start":{"line":38,"column":14},"end":{"line":43,"column":3}},"line":38},"3":{"name":"(anonymous_3)","decl":{"start":{"line":48,"column":2},"end":{"line":48,"column":3}},"loc":{"start":{"line":48,"column":21},"end":{"line":54,"column":3}},"line":48},"4":{"name":"(anonymous_4)","decl":{"start":{"line":60,"column":2},"end":{"line":60,"column":3}},"loc":{"start":{"line":60,"column":22},"end":{"line":68,"column":3}},"line":60}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":4},"end":{"line":19,"column":5}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":19,"column":5}},{"start":{},"end":{}}],"line":16},"1":{"loc":{"start":{"line":23,"column":13},"end":{"line":23,"column":92}},"type":"cond-expr","locations":[{"start":{"line":23,"column":54},"end":{"line":23,"column":80}},{"start":{"line":23,"column":83},"end":{"line":23,"column":92}}],"line":23},"2":{"loc":{"start":{"line":39,"column":4},"end":{"line":41,"column":5}},"type":"if","locations":[{"start":{"line":39,"column":4},"end":{"line":41,"column":5}},{"start":{},"end":{}}],"line":39},"3":{"loc":{"start":{"line":49,"column":4},"end":{"line":53,"column":5}},"type":"if","locations":[{"start":{"line":49,"column":4},"end":{"line":53,"column":5}},{"start":{},"end":{}}],"line":49}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]}} -,"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\infrastructure\\repositories\\UserRepository.js": {"path":"D:\\munka\\Egyetem\\25_26_II\\GKNB_MSTM071\\Backend\\negyedik gyakorlat\\src\\infrastructure\\repositories\\UserRepository.js","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":1,"column":77}},"1":{"start":{"line":2,"column":13},"end":{"line":2,"column":48}},"2":{"start":{"line":10,"column":4},"end":{"line":10,"column":12}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":25}},"4":{"start":{"line":20,"column":21},"end":{"line":22,"column":6}},"5":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"6":{"start":{"line":25,"column":6},"end":{"line":25,"column":18}},"7":{"start":{"line":28,"column":4},"end":{"line":28,"column":36}},"8":{"start":{"line":37,"column":21},"end":{"line":39,"column":6}},"9":{"start":{"line":41,"column":4},"end":{"line":43,"column":5}},"10":{"start":{"line":42,"column":6},"end":{"line":42,"column":18}},"11":{"start":{"line":45,"column":4},"end":{"line":45,"column":36}},"12":{"start":{"line":53,"column":22},"end":{"line":55,"column":6}},"13":{"start":{"line":57,"column":4},"end":{"line":57,"column":63}},"14":{"start":{"line":57,"column":37},"end":{"line":57,"column":61}},"15":{"start":{"line":66,"column":21},"end":{"line":72,"column":6}},"16":{"start":{"line":74,"column":4},"end":{"line":74,"column":36}},"17":{"start":{"line":83,"column":21},"end":{"line":91,"column":6}},"18":{"start":{"line":93,"column":4},"end":{"line":93,"column":36}},"19":{"start":{"line":102,"column":4},"end":{"line":109,"column":5}},"20":{"start":{"line":103,"column":6},"end":{"line":105,"column":9}},"21":{"start":{"line":106,"column":6},"end":{"line":106,"column":18}},"22":{"start":{"line":108,"column":6},"end":{"line":108,"column":19}},"23":{"start":{"line":119,"column":4},"end":{"line":126,"column":6}},"24":{"start":{"line":130,"column":0},"end":{"line":130,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":2},"end":{"line":9,"column":3}},"loc":{"start":{"line":9,"column":22},"end":{"line":12,"column":3}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":2},"end":{"line":19,"column":3}},"loc":{"start":{"line":19,"column":21},"end":{"line":29,"column":3}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":36,"column":2},"end":{"line":36,"column":3}},"loc":{"start":{"line":36,"column":27},"end":{"line":46,"column":3}},"line":36},"3":{"name":"(anonymous_3)","decl":{"start":{"line":52,"column":2},"end":{"line":52,"column":3}},"loc":{"start":{"line":52,"column":18},"end":{"line":58,"column":3}},"line":52},"4":{"name":"(anonymous_4)","decl":{"start":{"line":57,"column":25},"end":{"line":57,"column":26}},"loc":{"start":{"line":57,"column":37},"end":{"line":57,"column":61}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":65,"column":2},"end":{"line":65,"column":3}},"loc":{"start":{"line":65,"column":21},"end":{"line":75,"column":3}},"line":65},"6":{"name":"(anonymous_6)","decl":{"start":{"line":82,"column":2},"end":{"line":82,"column":3}},"loc":{"start":{"line":82,"column":21},"end":{"line":94,"column":3}},"line":82},"7":{"name":"(anonymous_7)","decl":{"start":{"line":101,"column":2},"end":{"line":101,"column":3}},"loc":{"start":{"line":101,"column":19},"end":{"line":110,"column":3}},"line":101},"8":{"name":"(anonymous_8)","decl":{"start":{"line":118,"column":2},"end":{"line":118,"column":3}},"loc":{"start":{"line":118,"column":22},"end":{"line":127,"column":3}},"line":118}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":26,"column":5}},{"start":{},"end":{}}],"line":24},"1":{"loc":{"start":{"line":41,"column":4},"end":{"line":43,"column":5}},"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":43,"column":5}},{"start":{},"end":{}}],"line":41}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0},"b":{"0":[0,0],"1":[0,0]}} -} diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/AuthController.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/AuthController.js.html deleted file mode 100644 index 83ccbfa..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/AuthController.js.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - Code coverage report for api/controllers/AuthController.js - - - - - - - - - -
-
-

All files / api/controllers AuthController.js

-
- -
- 0% - Statements - 0/26 -
- - -
- 0% - Branches - 0/10 -
- - -
- 0% - Functions - 0/4 -
- - -
- 0% - Lines - 0/26 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const RegisterUserCommand = require('../../application/auth/commands/RegisterUserCommand');
-const LoginUserCommand = require('../../application/auth/commands/LoginUserCommand');
- 
-/**
- * Auth Controller
- * Authentication endpoints using CQRS Commands with cookie-based JWT
- */
-class AuthController {
-  constructor(registerUserCommandHandler, loginUserCommandHandler, jwtService) {
-    this.registerUserCommandHandler = registerUserCommandHandler;
-    this.loginUserCommandHandler = loginUserCommandHandler;
-    this.jwtService = jwtService;
-  }
- 
-  /**
-   * POST /api/auth/register - User regisztráció
-   */
-  async register(req, res) {
-    try {
-      const { name, email, password } = req.body;
- 
-      const command = new RegisterUserCommand(name, email, password);
-      const result = await this.registerUserCommandHandler.handle(command);
- 
-      // Set JWT token in httpOnly cookie
-      res.cookie(
-        this.jwtService.getCookieName(),
-        result.token,
-        this.jwtService.getCookieOptions()
-      );
- 
-      res.status(201).json({
-        message: 'User registered successfully',
-        data: {
-          user: result.user
-        }
-      });
-    } catch (error) {
-      // Validációs hibák -> 400
-      const status = error.message.includes('required') || 
-                     error.message.includes('already exists') ||
-                     error.message.includes('Invalid') ||
-                     error.message.includes('must be') ? 400 : 500;
- 
-      res.status(status).json({ error: error.message });
-    }
-  }
- 
-  /**
-   * POST /api/auth/login - User bejelentkezés
-   */
-  async login(req, res) {
-    try {
-      const { email, password } = req.body;
- 
-      const command = new LoginUserCommand(email, password);
-      const result = await this.loginUserCommandHandler.handle(command);
- 
-      // Set JWT token in httpOnly cookie
-      res.cookie(
-        this.jwtService.getCookieName(),
-        result.token,
-        this.jwtService.getCookieOptions()
-      );
- 
-      res.status(200).json({
-        message: 'Login successful',
-        data: {
-          user: result.user
-        }
-      });
-    } catch (error) {
-      // Validációs vagy auth hibák -> 401
-      const status = error.message.includes('Invalid') || 
-                     error.message.includes('required') ? 401 : 500;
- 
-      res.status(status).json({ error: error.message });
-    }
-  }
- 
-  /**
-   * POST /api/auth/logout - User kijelentkezés
-   */
-  async logout(req, res) {
-    try {
-      // Clear the auth cookie
-      res.clearCookie(this.jwtService.getCookieName(), {
-        httpOnly: true,
-        secure: process.env.NODE_ENV === 'production',
-        sameSite: 'strict',
-        path: '/'
-      });
- 
-      res.status(200).json({
-        message: 'Logout successful'
-      });
-    } catch (error) {
-      res.status(500).json({ error: error.message });
-    }
-  }
-}
- 
-module.exports = AuthController;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/UserController.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/UserController.js.html deleted file mode 100644 index 45dbf13..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/UserController.js.html +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - Code coverage report for api/controllers/UserController.js - - - - - - - - - -
-
-

All files / api/controllers UserController.js

-
- -
- 0% - Statements - 0/39 -
- - -
- 0% - Branches - 0/8 -
- - -
- 0% - Functions - 0/5 -
- - -
- 0% - Lines - 0/39 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const GetMeQuery = require('../../application/user/queries/GetMeQuery');
-const GetAllUsersQuery = require('../../application/user/queries/GetAllUsersQuery');
-const GetUserByIdQuery = require('../../application/user/queries/GetUserByIdQuery');
-const UpdateUserProfileCommand = require('../../application/user/commands/UpdateUserProfileCommand');
- 
-/**
- * User Controller
- * User-related endpoints using CQRS pattern (protected by JWT)
- */
-class UserController {
-  constructor(getMeQueryHandler, getAllUsersQueryHandler, getUserByIdQueryHandler, updateUserProfileCommandHandler) {
-    this.getMeQueryHandler = getMeQueryHandler;
-    this.getAllUsersQueryHandler = getAllUsersQueryHandler;
-    this.getUserByIdQueryHandler = getUserByIdQueryHandler;
-    this.updateUserProfileCommandHandler = updateUserProfileCommandHandler;
-  }
- 
-  /**
-   * GET /api/users/me - Bejelentkezett user adatai (protected)
-   */
-  async getMe(req, res) {
-    try {
-      // req.user-t az authMiddleware tölti ki a JWT-ből
-      const userId = req.user.userId;
- 
-      const query = new GetMeQuery(userId);
-      const user = await this.getMeQueryHandler.handle(query);
- 
-      res.status(200).json({
-        message: 'User retrieved successfully',
-        data: user
-      });
-    } catch (error) {
-      const status = error.message.includes('not found') ? 404 : 500;
-      res.status(status).json({ error: error.message });
-    }
-  }
- 
-  /**
-   * GET /api/users - Összes user lekérése (protected)
-   */
-  async getAll(req, res) {
-    try {
-      const query = new GetAllUsersQuery();
-      const users = await this.getAllUsersQueryHandler.handle(query);
- 
-      res.status(200).json({
-        message: 'Users retrieved successfully',
-        data: users,
-        count: users.length
-      });
-    } catch (error) {
-      res.status(500).json({ error: error.message });
-    }
-  }
- 
-  /**
-   * GET /api/users/:id - User lekérése ID alapján (protected)
-   */
-  async getById(req, res) {
-    try {
-      const { id } = req.params;
-      const userId = parseInt(id);
- 
-      if (isNaN(userId)) {
-        return res.status(400).json({ error: 'Invalid user ID' });
-      }
- 
-      const query = new GetUserByIdQuery(userId);
-      const user = await this.getUserByIdQueryHandler.handle(query);
- 
-      res.status(200).json({
-        message: 'User retrieved successfully',
-        data: user
-      });
-    } catch (error) {
-      const status = error.message.includes('not found') ? 404 : 500;
-      res.status(status).json({ error: error.message });
-    }
-  }
- 
-  /**
-   * PUT /api/users/me - User profil frissítése (protected)
-   */
-  async updateMe(req, res) {
-    try {
-      const userId = req.user.userId;
-      const { name } = req.body;
- 
-      const command = new UpdateUserProfileCommand(userId, name);
-      const user = await this.updateUserProfileCommandHandler.handle(command);
- 
-      res.status(200).json({
-        message: 'Profile updated successfully',
-        data: user
-      });
-    } catch (error) {
-      const status = error.message.includes('required') ? 400 : 500;
-      res.status(status).json({ error: error.message });
-    }
-  }
-}
- 
-module.exports = UserController;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/index.html deleted file mode 100644 index 24b2429..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/controllers/index.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - Code coverage report for api/controllers - - - - - - - - - -
-
-

All files api/controllers

-
- -
- 0% - Statements - 0/65 -
- - -
- 0% - Branches - 0/18 -
- - -
- 0% - Functions - 0/9 -
- - -
- 0% - Lines - 0/65 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
AuthController.js -
-
0%0/260%0/100%0/40%0/26
UserController.js -
-
0%0/390%0/80%0/50%0/39
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/authMiddleware.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/authMiddleware.js.html deleted file mode 100644 index 942bdea..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/authMiddleware.js.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - Code coverage report for api/middlewares/authMiddleware.js - - - - - - - - - -
-
-

All files / api/middlewares authMiddleware.js

-
- -
- 0% - Statements - 0/11 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/11 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const JwtService = require('../../application/services/JwtService');
- 
-const jwtService = new JwtService();
- 
-/**
- * Authentication Middleware - JWT token ellenőrzés (Cookie-based)
- * 
- * Ezt a middleware-t használd protected route-okon!
- * 
- * Példa használat:
- * router.get('/me', authMiddleware, userController.getMe);
- */
-function authMiddleware(req, res, next) {
-  try {
-    // 1. Token kinyerése cookieból
-    const token = jwtService.extractTokenFromCookies(req.cookies);
-    
-    if (!token) {
-      return res.status(401).json({ 
-        error: 'Authentication required',
-        message: 'No token provided in cookies'
-      });
-    }
- 
-    // 2. Token verifikálása
-    const decoded = jwtService.verifyToken(token);
- 
-    // 3. User adatok elhelyezése req.user-ben (controller-ek használhatják)
-    req.user = {
-      userId: decoded.userId,
-      email: decoded.email
-    };
- 
-    // 4. Folytatás
-    next();
-  } catch (error) {
-    return res.status(401).json({ 
-      error: 'Authentication failed',
-      message: error.message
-    });
-  }
-}
- 
-module.exports = authMiddleware;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/corsMiddleware.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/corsMiddleware.js.html deleted file mode 100644 index fc33282..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/corsMiddleware.js.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - Code coverage report for api/middlewares/corsMiddleware.js - - - - - - - - - -
-
-

All files / api/middlewares corsMiddleware.js

-
- -
- 0% - Statements - 0/4 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/4 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const cors = require('cors');
- 
-// Engedélyezett origin-ek whitelist (környezeti változóból)
-const allowedOrigins = process.env.ALLOWED_ORIGINS?.split(',') || ['http://localhost:3000'];
- 
-const corsOptions = {
-  origin: function (origin, callback) {
-    // TODO 1: Ha nincs origin (pl. Postman, curl, backend-backend hívás), engedélyezd
-    // Tipp: if (!origin) return callback(null, true);
-    
-    // TODO 2: Ha az origin benne van az allowedOrigins-ban, engedélyezd
-    // Tipp: if (allowedOrigins.includes(origin)) return callback(null, true);
-    
-    // TODO 3: Egyébként tiltsd le CORS hibával
-    // Tipp: callback(new Error('Not allowed by CORS'));
-  },
-  credentials: true, // Cookie/Auth header engedélyezése
-  methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
-  allowedHeaders: ['Content-Type', 'Authorization']
-};
- 
-module.exports = cors(corsOptions);
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/index.html deleted file mode 100644 index 9e1da4d..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - Code coverage report for api/middlewares - - - - - - - - - -
-
-

All files api/middlewares

-
- -
- 0% - Statements - 0/17 -
- - -
- 0% - Branches - 0/4 -
- - -
- 0% - Functions - 0/4 -
- - -
- 0% - Lines - 0/17 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
authMiddleware.js -
-
0%0/110%0/20%0/10%0/11
corsMiddleware.js -
-
0%0/40%0/20%0/10%0/4
scopeMiddleware.js -
-
0%0/2100%0/00%0/20%0/2
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/scopeMiddleware.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/scopeMiddleware.js.html deleted file mode 100644 index 81d6f35..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/middlewares/scopeMiddleware.js.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - Code coverage report for api/middlewares/scopeMiddleware.js - - - - - - - - - -
-
-

All files / api/middlewares scopeMiddleware.js

-
- -
- 0% - Statements - 0/2 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/2 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Request szintű DI scope létrehozása
- * Middleware ami minden kéréshez új DI scope-ot készít
- */
-function scopeMiddleware(container) {
-  return (req, res, next) => {
-    // TODO 1: Hozz létre request-specifikus scope-ot
-    // Tipp: const scope = container.createScope();
-    
-    // TODO 2: Tárold el a scope-ot req.scope alatt
-    // Tipp: req.scope = scope;
-    
-    // TODO 3: Hívd meg a next()-et
-    // Tipp: next();
-  };
-}
- 
-module.exports = scopeMiddleware;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/authRoutes.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/authRoutes.js.html deleted file mode 100644 index 5771f7c..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/authRoutes.js.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - Code coverage report for api/routers/authRoutes.js - - - - - - - - - -
-
-

All files / api/routers authRoutes.js

-
- -
- 0% - Statements - 0/13 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/5 -
- - -
- 0% - Lines - 0/9 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const express = require('express');
- 
-/**
- * Auth Routes
- * Public endpoints (nincs JWT védelem)
- * 
- * @param {Container} container - DI Container
- */
-function createAuthRoutes(container) {
-  const router = express.Router();
- 
-  // AuthController lekérése a DI Container-ből
-  const authController = container.resolve('AuthController');
- 
-  /**
-   * POST /api/auth/register - User regisztráció
-   * Body: { name, email, password }
-   * Response: { user, token }
-   */
-  router.post('/register', (req, res) => authController.register(req, res));
- 
-  /**
-   * POST /api/auth/login - User bejelentkezés
-   * Body: { email, password }
-   * Response: { user, token }
-   */
-  router.post('/login', (req, res) => authController.login(req, res));
- 
-  /**
-   * POST /api/auth/logout - User kijelentkezés
-   * Clears the authentication cookie
-   */
-  router.post('/logout', (req, res) => authController.logout(req, res));
- 
-  /**
-   * OPTIONS /api/auth/* - CORS preflight
-   */
-  router.options('*', (req, res) => res.sendStatus(204));
- 
-  return router;
-}
- 
-module.exports = createAuthRoutes;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/index.html deleted file mode 100644 index 6349d0b..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/index.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - Code coverage report for api/routers - - - - - - - - - -
-
-

All files api/routers

-
- -
- 0% - Statements - 0/29 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/11 -
- - -
- 0% - Lines - 0/20 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
authRoutes.js -
-
0%0/13100%0/00%0/50%0/9
userRoutes.js -
-
0%0/16100%0/00%0/60%0/11
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/userRoutes.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/userRoutes.js.html deleted file mode 100644 index 8565149..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/api/routers/userRoutes.js.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - Code coverage report for api/routers/userRoutes.js - - - - - - - - - -
-
-

All files / api/routers userRoutes.js

-
- -
- 0% - Statements - 0/16 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/6 -
- - -
- 0% - Lines - 0/11 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const express = require('express');
-const authMiddleware = require('../middlewares/authMiddleware');
- 
-/**
- * User Routes
- * Protected endpoints (JWT authentication required)
- * 
- * @param {Container} container - DI Container
- */
-function createUserRoutes(container) {
-  const router = express.Router();
- 
-  // UserController lekérése a DI Container-ből
-  const userController = container.resolve('UserController');
- 
-  /**
-   * GET /api/users/me - Bejelentkezett user adatai
-   * Headers: Authorization: Bearer <token>
-   */
-  router.get('/me', authMiddleware, (req, res) => userController.getMe(req, res));
- 
-  /**
-   * PUT /api/users/me - User profil frissítése
-   * Headers: Authorization: Bearer <token>
-   * Body: { name }
-   */
-  router.put('/me', authMiddleware, (req, res) => userController.updateMe(req, res));
- 
-  /**
-   * GET /api/users - Összes user lekérése (protected)
-   * Headers: Authorization: Bearer <token>
-   */
-  router.get('/', authMiddleware, (req, res) => userController.getAll(req, res));
- 
-  /**
-   * GET /api/users/:id - User lekérése ID alapján (protected)
-   * Headers: Authorization: Bearer <token>
-   */
-  router.get('/:id', authMiddleware, (req, res) => userController.getById(req, res));
- 
-  /**
-   * OPTIONS /api/users/* - CORS preflight
-   */
-  router.options('*', (req, res) => res.sendStatus(204));
- 
-  return router;
-}
- 
-module.exports = createUserRoutes;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/LoginUserCommand.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/LoginUserCommand.js.html deleted file mode 100644 index d124121..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/LoginUserCommand.js.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - Code coverage report for application/auth/commands/LoginUserCommand.js - - - - - - - - - -
-
-

All files / application/auth/commands LoginUserCommand.js

-
- -
- 0% - Statements - 0/3 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/3 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Login User Command
- * Command object for user login
- */
-class LoginUserCommand {
-  constructor(email, password) {
-    this.email = email;
-    this.password = password;
-  }
-}
- 
-module.exports = LoginUserCommand;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/LoginUserCommandHandler.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/LoginUserCommandHandler.js.html deleted file mode 100644 index 991b616..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/LoginUserCommandHandler.js.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - Code coverage report for application/auth/commands/LoginUserCommandHandler.js - - - - - - - - - -
-
-

All files / application/auth/commands LoginUserCommandHandler.js

-
- -
- 0% - Statements - 0/17 -
- - -
- 0% - Branches - 0/8 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/17 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const bcrypt = require('bcryptjs');
-const JwtService = require('../../services/JwtService');
- 
-const jwtService = new JwtService();
- 
-/**
- * Login User Command Handler
- * Handles user login authentication
- */
-class LoginUserCommandHandler {
-  constructor(prisma) {
-    this.prisma = prisma;
-  }
- 
-  /**
-   * Execute login command
-   * @param {LoginUserCommand} command 
-   * @returns {Promise<Object>} { user, token }
-   */
-  async handle(command) {
-    const { email, password } = command;
- 
-    // Validáció
-    if (!email || !password) {
-      throw new Error('Email and password are required');
-    }
- 
-    // User keresése email alapján
-    const user = await this.prisma.user.findUnique({
-      where: { email }
-    });
- 
-    if (!user) {
-      throw new Error('Invalid email or password');
-    }
- 
-    // Jelszó ellenőrzése
-    const isPasswordValid = await bcrypt.compare(password, user.password);
- 
-    if (!isPasswordValid) {
-      throw new Error('Invalid email or password');
-    }
- 
-    // JWT token generálása
-    const token = jwtService.generateToken({
-      userId: user.id,
-      email: user.email
-    });
- 
-    // Jelszót ne adjuk vissza
-    const { password: _, ...userWithoutPassword } = user;
- 
-    return {
-      user: userWithoutPassword,
-      token
-    };
-  }
-}
- 
-module.exports = LoginUserCommandHandler;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/RegisterUserCommand.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/RegisterUserCommand.js.html deleted file mode 100644 index 432bbae..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/RegisterUserCommand.js.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - Code coverage report for application/auth/commands/RegisterUserCommand.js - - - - - - - - - -
-
-

All files / application/auth/commands RegisterUserCommand.js

-
- -
- 0% - Statements - 0/4 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/4 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14  -  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Register User Command
- * Command object for user registration
- */
-class RegisterUserCommand {
-  constructor(name, email, password) {
-    this.name = name;
-    this.email = email;
-    this.password = password;
-  }
-}
- 
-module.exports = RegisterUserCommand;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/RegisterUserCommandHandler.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/RegisterUserCommandHandler.js.html deleted file mode 100644 index ec2b543..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/RegisterUserCommandHandler.js.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - Code coverage report for application/auth/commands/RegisterUserCommandHandler.js - - - - - - - - - -
-
-

All files / application/auth/commands RegisterUserCommandHandler.js

-
- -
- 0% - Statements - 0/25 -
- - -
- 0% - Branches - 0/13 -
- - -
- 0% - Functions - 0/3 -
- - -
- 0% - Lines - 0/25 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const bcrypt = require('bcryptjs');
-const JwtService = require('../../services/JwtService');
- 
-const jwtService = new JwtService();
- 
-/**
- * Register User Command Handler
- * Handles user registration business logic
- */
-class RegisterUserCommandHandler {
-  constructor(prisma, emailService) {
-    this.prisma = prisma;
-    this.emailService = emailService;
-  }
- 
-  /**
-   * Execute user registration command
-   * @param {RegisterUserCommand} command 
-   * @returns {Promise<Object>} { user, token }
-   */
-  async handle(command) {
-    const { name, email, password } = command;
- 
-    // Validáció
-    if (!name || !email || !password) {
-      throw new Error('Name, email and password are required');
-    }
- 
-    if (password.length < 6) {
-      throw new Error('Password must be at least 6 characters long');
-    }
- 
-    // Email formátum ellenőrzés
-    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
-    if (!emailRegex.test(email)) {
-      throw new Error('Invalid email format');
-    }
- 
-    // Ellenőrizzük, hogy létezik-e már a user
-    const existingUser = await this.prisma.user.findUnique({
-      where: { email }
-    });
- 
-    if (existingUser) {
-      throw new Error('User with this email already exists');
-    }
- 
-    // Jelszó hashelése (bcrypt)
-    const hashedPassword = await bcrypt.hash(password, 10);
- 
-    // User létrehozása
-    const user = await this.prisma.user.create({
-      data: {
-        name,
-        email,
-        password: hashedPassword
-      }
-    });
- 
-    // Welcome email küldése (async, nem várunk rá)
-    if (this.emailService) {
-      this.emailService.sendWelcomeEmail(email, name).catch(err => {
-        console.error('❌ Failed to send welcome email:', err.message);
-      });
-    }
- 
-    // JWT token generálása
-    const token = jwtService.generateToken({
-      userId: user.id,
-      email: user.email
-    });
- 
-    // Jelszót ne adjuk vissza a response-ban
-    const { password: _, ...userWithoutPassword } = user;
- 
-    return {
-      user: userWithoutPassword,
-      token
-    };
-  }
-}
- 
-module.exports = RegisterUserCommandHandler;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/index.html deleted file mode 100644 index 7ac7bd5..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/auth/commands/index.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - Code coverage report for application/auth/commands - - - - - - - - - -
-
-

All files application/auth/commands

-
- -
- 0% - Statements - 0/49 -
- - -
- 0% - Branches - 0/21 -
- - -
- 0% - Functions - 0/7 -
- - -
- 0% - Lines - 0/49 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
LoginUserCommand.js -
-
0%0/3100%0/00%0/10%0/3
LoginUserCommandHandler.js -
-
0%0/170%0/80%0/20%0/17
RegisterUserCommand.js -
-
0%0/4100%0/00%0/10%0/4
RegisterUserCommandHandler.js -
-
0%0/250%0/130%0/30%0/25
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/Container.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/Container.js.html deleted file mode 100644 index c5c82ab..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/Container.js.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - Code coverage report for application/services/Container.js - - - - - - - - - -
-
-

All files / application/services Container.js

-
- -
- 100% - Statements - 1/1 -
- - -
- 100% - Branches - 2/2 -
- - -
- 100% - Functions - 4/4 -
- - -
- 100% - Lines - 1/1 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x - 
/**
- * Dependency Injection Container
- * Supports singleton, transient, and scoped lifetimes
- */
-class Container {
-  constructor() {
-    // TODO 1: Inicializáld a services Map-et (singleton instance-ok tárolása)
-    // TODO 2: Inicializáld a factories Map-et (factory függvények tárolása)
-    // TODO 3: Inicializáld a lifetimes Map-et (lifecycle típusok tárolása)
-    
-    // Példa inicializálás:
-    // this.services = new Map();
-    // this.factories = new Map();
-    // this.lifetimes = new Map();
-  }
- 
-  register(name, factory, lifetime = 'singleton') {
-    // TODO 4: Tárold el a factory függvényt (this.factories.set(name, factory))
-    // TODO 5: Tárold el a lifetime típust (this.lifetimes.set(name, lifetime))
-    // TODO 6: Ha a lifetime === 'singleton', azonnal példányosítsd:
-    //         - Hívd meg a factory-t: const instance = factory();
-    //         - Tárold el: this.services.set(name, instance);
-  }
- 
-  resolve(name, scope = null) {
-    // TODO 7: Ha a service regisztrálva van mint 'scoped' ÉS van scope paraméter:
-    //         - Ellenőrizd: if (scope && scope.has(name)) return scope.get(name);
-    //         - Ha nincs még a scope-ban, példányosítsd és tárold: 
-    //           const instance = this.factories.get(name)();
-    //           scope.set(name, instance);
-    //           return instance;
-    
-    // TODO 8: Ha singleton, add vissza a services-ből:
-    //         if (this.lifetimes.get(name) === 'singleton') {
-    //           return this.services.get(name);
-    //         }
-    
-    // TODO 9: Ha transient, minden alkalommal hívj egy új factory-t:
-    //         if (this.lifetimes.get(name) === 'transient') {
-    //           return this.factories.get(name)();
-    //         }
-    
-    // TODO 10: Ha nem regisztrált a service, dobj hibát:
-    //          throw new Error(`Service '${name}' is not registered`);
-  }
- 
-  createScope() {
-    // TODO 11: Hozz létre egy új Map-et az scoped instance-oknak
-    // TODO 12: Térj vissza egy objektummal ami tartalmaz egy resolve metódust:
-    //          const scopeMap = new Map();
-    //          return {
-    //            resolve: (name) => this.resolve(name, scopeMap)
-    //          };
-  }
-}
- 
-module.exports = Container;
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/EmailService.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/EmailService.js.html deleted file mode 100644 index 3e70f84..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/EmailService.js.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - Code coverage report for application/services/EmailService.js - - - - - - - - - -
-
-

All files / application/services EmailService.js

-
- -
- 0% - Statements - 0/4 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/4 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Email Service
- * Nodemailer + Handlebars template based email sending
- * 
- * TODO: Implement by students
- */
-class EmailService {
-  constructor() {
-    // TODO 1: Hozz létre Nodemailer transportot Ethereal tesztelő SMTP-vel
-    //         this.transporter = nodemailer.createTransport({
-    //           host: 'smtp.ethereal.email',
-    //           port: 587,
-    //           secure: false, // TLS
-    //           auth: {
-    //             user: process.env.ETHEREAL_USER || 'your-test-email@ethereal.email',
-    //             pass: process.env.ETHEREAL_PASS || 'your-test-password'
-    //           }
-    //         });
-    
-    console.log('📧 EmailService initialized');
-  }
- 
-  async sendWelcomeEmail(userEmail, userName) {
-    // TODO 2-6: Implement email sending with Handlebars template
-    // For now, just log to console
-    console.log(`📧 Would send welcome email to ${userEmail} (${userName})`);
-    return true;
-  }
-}
- 
-module.exports = EmailService;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/JwtService.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/JwtService.js.html deleted file mode 100644 index fde995a..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/JwtService.js.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - Code coverage report for application/services/JwtService.js - - - - - - - - - -
-
-

All files / application/services JwtService.js

-
- -
- 0% - Statements - 0/29 -
- - -
- 0% - Branches - 0/20 -
- - -
- 0% - Functions - 0/8 -
- - -
- 0% - Lines - 0/29 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const jwt = require('jsonwebtoken');
- 
-/**
- * JWT Service
- * Handles JWT token generation, verification, and cookie management
- */
-class JwtService {
-  constructor() {
-    this.secret = process.env.JWT_SECRET || 'default-secret-change-me';
-    this.expiresIn = process.env.JWT_EXPIRES_IN || '1h';
-    this.cookieName = 'auth_token';
-  }
- 
-  /**
-   * Generate JWT token
-   * @param {Object} payload - { userId, email }
-   * @returns {string} JWT token
-   */
-  generateToken(payload) {
-    return jwt.sign(payload, this.secret, { expiresIn: this.expiresIn });
-  }
- 
-  /**
-   * Verify JWT token
-   * @param {string} token - JWT token
-   * @returns {Object} Decoded payload
-   */
-  verifyToken(token) {
-    try {
-      return jwt.verify(token, this.secret);
-    } catch (error) {
-      throw new Error('Invalid or expired token');
-    }
-  }
- 
-  /**
-   * Extract token from Authorization header (Bearer token)
-   * @param {string} authHeader - Authorization header value
-   * @returns {string|null} Token or null
-   */
-  extractTokenFromHeader(authHeader) {
-    if (!authHeader) {
-      return null;
-    }
- 
-    const parts = authHeader.split(' ');
-    
-    if (parts.length !== 2 || parts[0] !== 'Bearer') {
-      return null;
-    }
- 
-    return parts[1];
-  }
- 
-  /**
-   * Extract token from cookies
-   * @param {Object} cookies - Request cookies object
-   * @returns {string|null} Token or null
-   */
-  extractTokenFromCookies(cookies) {
-    if (!cookies || !cookies[this.cookieName]) {
-      return null;
-    }
- 
-    return cookies[this.cookieName];
-  }
- 
-  /**
-   * Get cookie options for setting JWT cookie
-   * @returns {Object} Cookie options
-   */
-  getCookieOptions() {
-    const isProduction = process.env.NODE_ENV === 'production';
-    
-    return {
-      httpOnly: true,        // Prevents XSS attacks
-      secure: isProduction,  // HTTPS only in production
-      sameSite: 'strict',    // CSRF protection
-      maxAge: this._getMaxAge(),
-      path: '/'
-    };
-  }
- 
-  /**
-   * Get cookie max age in milliseconds
-   * @private
-   * @returns {number}
-   */
-  _getMaxAge() {
-    // Parse JWT_EXPIRES_IN (e.g., "1h", "7d")
-    const expiresIn = this.expiresIn;
-    
-    if (expiresIn.endsWith('h')) {
-      return parseInt(expiresIn) * 60 * 60 * 1000;
-    } else if (expiresIn.endsWith('d')) {
-      return parseInt(expiresIn) * 24 * 60 * 60 * 1000;
-    } else if (expiresIn.endsWith('m')) {
-      return parseInt(expiresIn) * 60 * 1000;
-    }
-    
-    // Default: 1 hour
-    return 60 * 60 * 1000;
-  }
- 
-  /**
-   * Get cookie name
-   * @returns {string}
-   */
-  getCookieName() {
-    return this.cookieName;
-  }
-}
- 
-module.exports = JwtService;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/index.html deleted file mode 100644 index 9eac7ae..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/services/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - Code coverage report for application/services - - - - - - - - - -
-
-

All files application/services

-
- -
- 2.94% - Statements - 1/34 -
- - -
- 9.09% - Branches - 2/22 -
- - -
- 28.57% - Functions - 4/14 -
- - -
- 2.94% - Lines - 1/34 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
Container.js -
-
100%1/1100%2/2100%4/4100%1/1
EmailService.js -
-
0%0/4100%0/00%0/20%0/4
JwtService.js -
-
0%0/290%0/200%0/80%0/29
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/UpdateUserProfileCommand.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/UpdateUserProfileCommand.js.html deleted file mode 100644 index 07c0aeb..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/UpdateUserProfileCommand.js.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - Code coverage report for application/user/commands/UpdateUserProfileCommand.js - - - - - - - - - -
-
-

All files / application/user/commands UpdateUserProfileCommand.js

-
- -
- 0% - Statements - 0/3 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/3 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Update User Profile Command
- * Command object for updating user profile
- */
-class UpdateUserProfileCommand {
-  constructor(userId, name) {
-    this.userId = userId;
-    this.name = name;
-  }
-}
- 
-module.exports = UpdateUserProfileCommand;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/UpdateUserProfileCommandHandler.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/UpdateUserProfileCommandHandler.js.html deleted file mode 100644 index 78e7717..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/UpdateUserProfileCommandHandler.js.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - Code coverage report for application/user/commands/UpdateUserProfileCommandHandler.js - - - - - - - - - -
-
-

All files / application/user/commands UpdateUserProfileCommandHandler.js

-
- -
- 0% - Statements - 0/8 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/8 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Update User Profile Command Handler
- * Handles user profile update logic
- */
-class UpdateUserProfileCommandHandler {
-  constructor(prisma) {
-    this.prisma = prisma;
-  }
- 
-  /**
-   * Execute update profile command
-   * @param {UpdateUserProfileCommand} command 
-   * @returns {Promise<Object>} Updated user data
-   */
-  async handle(command) {
-    const { userId, name } = command;
- 
-    if (!name) {
-      throw new Error('Name is required');
-    }
- 
-    const user = await this.prisma.user.update({
-      where: { id: userId },
-      data: { name }
-    });
- 
-    const { password, ...userWithoutPassword } = user;
-    return userWithoutPassword;
-  }
-}
- 
-module.exports = UpdateUserProfileCommandHandler;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/index.html deleted file mode 100644 index 702c253..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/commands/index.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - Code coverage report for application/user/commands - - - - - - - - - -
-
-

All files application/user/commands

-
- -
- 0% - Statements - 0/11 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/3 -
- - -
- 0% - Lines - 0/11 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
UpdateUserProfileCommand.js -
-
0%0/3100%0/00%0/10%0/3
UpdateUserProfileCommandHandler.js -
-
0%0/80%0/20%0/20%0/8
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetAllUsersQuery.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetAllUsersQuery.js.html deleted file mode 100644 index 9a80ec9..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetAllUsersQuery.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for application/user/queries/GetAllUsersQuery.js - - - - - - - - - -
-
-

All files / application/user/queries GetAllUsersQuery.js

-
- -
- 0% - Statements - 0/1 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/1 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Get All Users Query
- * Query object for retrieving all users
- */
-class GetAllUsersQuery {
-  constructor() {
-    // No parameters needed for getting all users
-  }
-}
- 
-module.exports = GetAllUsersQuery;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetAllUsersQueryHandler.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetAllUsersQueryHandler.js.html deleted file mode 100644 index 7080510..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetAllUsersQueryHandler.js.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - Code coverage report for application/user/queries/GetAllUsersQueryHandler.js - - - - - - - - - -
-
-

All files / application/user/queries GetAllUsersQueryHandler.js

-
- -
- 0% - Statements - 0/5 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/3 -
- - -
- 0% - Lines - 0/4 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Get All Users Query Handler
- * Handles retrieval of all users
- */
-class GetAllUsersQueryHandler {
-  constructor(prisma) {
-    this.prisma = prisma;
-  }
- 
-  /**
-   * Execute get all users query
-   * @param {GetAllUsersQuery} query 
-   * @returns {Promise<Array>} List of users without passwords
-   */
-  async handle(query) {
-    const users = await this.prisma.user.findMany({
-      orderBy: { createdAt: 'desc' }
-    });
- 
-    // Remove passwords from all users
-    return users.map(({ password, ...user }) => user);
-  }
-}
- 
-module.exports = GetAllUsersQueryHandler;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetMeQuery.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetMeQuery.js.html deleted file mode 100644 index ba8146e..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetMeQuery.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for application/user/queries/GetMeQuery.js - - - - - - - - - -
-
-

All files / application/user/queries GetMeQuery.js

-
- -
- 0% - Statements - 0/2 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/2 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Get Me Query
- * Query object for getting current authenticated user
- */
-class GetMeQuery {
-  constructor(userId) {
-    this.userId = userId;
-  }
-}
- 
-module.exports = GetMeQuery;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetMeQueryHandler.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetMeQueryHandler.js.html deleted file mode 100644 index 953c0fc..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetMeQueryHandler.js.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - Code coverage report for application/user/queries/GetMeQueryHandler.js - - - - - - - - - -
-
-

All files / application/user/queries GetMeQueryHandler.js

-
- -
- 0% - Statements - 0/8 -
- - -
- 0% - Branches - 0/2 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/8 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Get Me Query Handler
- * Handles retrieval of current authenticated user
- */
-class GetMeQueryHandler {
-  constructor(prisma) {
-    this.prisma = prisma;
-  }
- 
-  /**
-   * Execute get me query
-   * @param {GetMeQuery} query 
-   * @returns {Promise<Object>} User data without password
-   */
-  async handle(query) {
-    const { userId } = query;
- 
-    const user = await this.prisma.user.findUnique({
-      where: { id: userId }
-    });
- 
-    if (!user) {
-      throw new Error('User not found');
-    }
- 
-    const { password, ...userWithoutPassword } = user;
-    return userWithoutPassword;
-  }
-}
- 
-module.exports = GetMeQueryHandler;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetUserByIdQuery.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetUserByIdQuery.js.html deleted file mode 100644 index a3bb8ff..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetUserByIdQuery.js.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Code coverage report for application/user/queries/GetUserByIdQuery.js - - - - - - - - - -
-
-

All files / application/user/queries GetUserByIdQuery.js

-
- -
- 0% - Statements - 0/2 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/1 -
- - -
- 0% - Lines - 0/2 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Get User By ID Query
- * Query object for retrieving a user by ID
- */
-class GetUserByIdQuery {
-  constructor(userId) {
-    this.userId = userId;
-  }
-}
- 
-module.exports = GetUserByIdQuery;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetUserByIdQueryHandler.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetUserByIdQueryHandler.js.html deleted file mode 100644 index 3cb8cfb..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/GetUserByIdQueryHandler.js.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - Code coverage report for application/user/queries/GetUserByIdQueryHandler.js - - - - - - - - - -
-
-

All files / application/user/queries GetUserByIdQueryHandler.js

-
- -
- 0% - Statements - 0/10 -
- - -
- 0% - Branches - 0/6 -
- - -
- 0% - Functions - 0/2 -
- - -
- 0% - Lines - 0/10 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * Get User By ID Query Handler
- * Handles retrieval of a specific user by ID
- */
-class GetUserByIdQueryHandler {
-  constructor(prisma) {
-    this.prisma = prisma;
-  }
- 
-  /**
-   * Execute get user by ID query
-   * @param {GetUserByIdQuery} query 
-   * @returns {Promise<Object>} User data without password
-   */
-  async handle(query) {
-    const { userId } = query;
- 
-    if (!userId || isNaN(userId)) {
-      throw new Error('Valid user ID is required');
-    }
- 
-    const user = await this.prisma.user.findUnique({
-      where: { id: parseInt(userId) }
-    });
- 
-    if (!user) {
-      throw new Error('User not found');
-    }
- 
-    const { password, ...userWithoutPassword } = user;
-    return userWithoutPassword;
-  }
-}
- 
-module.exports = GetUserByIdQueryHandler;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/index.html deleted file mode 100644 index ec25582..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/application/user/queries/index.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - Code coverage report for application/user/queries - - - - - - - - - -
-
-

All files application/user/queries

-
- -
- 0% - Statements - 0/28 -
- - -
- 0% - Branches - 0/8 -
- - -
- 0% - Functions - 0/10 -
- - -
- 0% - Lines - 0/27 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
GetAllUsersQuery.js -
-
0%0/1100%0/00%0/10%0/1
GetAllUsersQueryHandler.js -
-
0%0/5100%0/00%0/30%0/4
GetMeQuery.js -
-
0%0/2100%0/00%0/10%0/2
GetMeQueryHandler.js -
-
0%0/80%0/20%0/20%0/8
GetUserByIdQuery.js -
-
0%0/2100%0/00%0/10%0/2
GetUserByIdQueryHandler.js -
-
0%0/100%0/60%0/20%0/10
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/base.css b/Backend/negyedik gyakorlat/coverage/lcov-report/base.css deleted file mode 100644 index f418035..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/block-navigation.js b/Backend/negyedik gyakorlat/coverage/lcov-report/block-navigation.js deleted file mode 100644 index 530d1ed..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/block-navigation.js +++ /dev/null @@ -1,87 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selector that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } - - makeCurrent(nextIndex); - } - - function goToNext() { - var nextIndex = 0; - - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } - - makeCurrent(nextIndex); - } - - return function jump(event) { - if ( - document.getElementById('fileSearch') === document.activeElement && - document.activeElement != null - ) { - // if we're currently focused on the search input, we don't want to navigate - return; - } - - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; -})(); -window.addEventListener('keydown', jumpToCode); diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/domain/irepositories/IUserRepository.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/domain/irepositories/IUserRepository.js.html deleted file mode 100644 index 6e2aff6..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/domain/irepositories/IUserRepository.js.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - Code coverage report for domain/irepositories/IUserRepository.js - - - - - - - - - -
-
-

All files / domain/irepositories IUserRepository.js

-
- -
- 0% - Statements - 0/7 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/6 -
- - -
- 0% - Lines - 0/7 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * User Repository Interface
- * Defines contract for user data access
- */
-class IUserRepository {
-  /**
-   * Find user by ID
-   * @param {number} id 
-   * @returns {Promise<User|null>}
-   */
-  async findById(id) {
-    throw new Error('Method findById() must be implemented');
-  }
- 
-  /**
-   * Find user by email
-   * @param {string} email 
-   * @returns {Promise<User|null>}
-   */
-  async findByEmail(email) {
-    throw new Error('Method findByEmail() must be implemented');
-  }
- 
-  /**
-   * Find all users
-   * @returns {Promise<User[]>}
-   */
-  async findAll() {
-    throw new Error('Method findAll() must be implemented');
-  }
- 
-  /**
-   * Create new user
-   * @param {User} user 
-   * @returns {Promise<User>}
-   */
-  async create(user) {
-    throw new Error('Method create() must be implemented');
-  }
- 
-  /**
-   * Update existing user
-   * @param {User} user 
-   * @returns {Promise<User>}
-   */
-  async update(user) {
-    throw new Error('Method update() must be implemented');
-  }
- 
-  /**
-   * Delete user by ID
-   * @param {number} id 
-   * @returns {Promise<boolean>}
-   */
-  async delete(id) {
-    throw new Error('Method delete() must be implemented');
-  }
-}
- 
-module.exports = IUserRepository;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/domain/irepositories/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/domain/irepositories/index.html deleted file mode 100644 index c9c56e6..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/domain/irepositories/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for domain/irepositories - - - - - - - - - -
-
-

All files domain/irepositories

-
- -
- 0% - Statements - 0/7 -
- - -
- 100% - Branches - 0/0 -
- - -
- 0% - Functions - 0/6 -
- - -
- 0% - Lines - 0/7 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
IUserRepository.js -
-
0%0/7100%0/00%0/60%0/7
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/domain/models/User.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/domain/models/User.js.html deleted file mode 100644 index 1b5f5f9..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/domain/models/User.js.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - - Code coverage report for domain/models/User.js - - - - - - - - - -
-
-

All files / domain/models User.js

-
- -
- 0% - Statements - 0/22 -
- - -
- 0% - Branches - 0/16 -
- - -
- 0% - Functions - 0/5 -
- - -
- 0% - Lines - 0/22 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/**
- * User Domain Model
- * Pure domain entity with business logic validation
- */
-class User {
-  constructor(id, name, email, password, createdAt, updatedAt) {
-    this.id = id;
-    this.name = name;
-    this.email = email;
-    this.password = password;
-    this.createdAt = createdAt;
-    this.updatedAt = updatedAt;
-  }
- 
-  /**
-   * Factory method to create a new User
-   * @param {Object} data - { name, email, password }
-   * @returns {User}
-   */
-  static create(data) {
-    const { name, email, password } = data;
- 
-    // Validation
-    if (!name || name.trim().length === 0) {
-      throw new Error('User name is required');
-    }
- 
-    if (!email || !User.isValidEmail(email)) {
-      throw new Error('Valid email is required');
-    }
- 
-    if (!password || password.length < 6) {
-      throw new Error('Password must be at least 6 characters long');
-    }
- 
-    return new User(null, name.trim(), email.toLowerCase(), password, new Date(), new Date());
-  }
- 
-  /**
-   * Email validation
-   * @param {string} email 
-   * @returns {boolean}
-   */
-  static isValidEmail(email) {
-    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
-    return emailRegex.test(email);
-  }
- 
-  /**
-   * Update user name
-   * @param {string} newName 
-   */
-  updateName(newName) {
-    if (!newName || newName.trim().length === 0) {
-      throw new Error('User name is required');
-    }
-    this.name = newName.trim();
-    this.updatedAt = new Date();
-  }
- 
-  /**
-   * Get user without sensitive data
-   * @returns {Object}
-   */
-  toPublicJSON() {
-    return {
-      id: this.id,
-      name: this.name,
-      email: this.email,
-      createdAt: this.createdAt,
-      updatedAt: this.updatedAt
-    };
-  }
-}
- 
-module.exports = User;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/domain/models/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/domain/models/index.html deleted file mode 100644 index 8d53e51..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/domain/models/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for domain/models - - - - - - - - - -
-
-

All files domain/models

-
- -
- 0% - Statements - 0/22 -
- - -
- 0% - Branches - 0/16 -
- - -
- 0% - Functions - 0/5 -
- - -
- 0% - Lines - 0/22 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
User.js -
-
0%0/220%0/160%0/50%0/22
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/favicon.png b/Backend/negyedik gyakorlat/coverage/lcov-report/favicon.png deleted file mode 100644 index c1525b811a167671e9de1fa78aab9f5c0b61cef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> - - - - Code coverage report for All files - - - - - - - - - -
-
-

All files

-
- -
- 0.32% - Statements - 1/312 -
- - -
- 1.94% - Branches - 2/103 -
- - -
- 4.81% - Functions - 4/83 -
- - -
- 0.33% - Lines - 1/301 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
api/controllers -
-
0%0/650%0/180%0/90%0/65
api/middlewares -
-
0%0/170%0/40%0/40%0/17
api/routers -
-
0%0/29100%0/00%0/110%0/20
application/auth/commands -
-
0%0/490%0/210%0/70%0/49
application/services -
-
2.94%1/349.09%2/2228.57%4/142.94%1/34
application/user/commands -
-
0%0/110%0/20%0/30%0/11
application/user/queries -
-
0%0/280%0/80%0/100%0/27
domain/irepositories -
-
0%0/7100%0/00%0/60%0/7
domain/models -
-
0%0/220%0/160%0/50%0/22
infrastructure/db -
-
0%0/250%0/80%0/50%0/25
infrastructure/repositories -
-
0%0/250%0/40%0/90%0/24
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/db/DatabaseConnection.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/db/DatabaseConnection.js.html deleted file mode 100644 index e4127c9..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/db/DatabaseConnection.js.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - Code coverage report for infrastructure/db/DatabaseConnection.js - - - - - - - - - -
-
-

All files / infrastructure/db DatabaseConnection.js

-
- -
- 0% - Statements - 0/25 -
- - -
- 0% - Branches - 0/8 -
- - -
- 0% - Functions - 0/5 -
- - -
- 0% - Lines - 0/25 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const { PrismaClient } = require('@prisma/client');
- 
-/**
- * Database Connection Wrapper
- * Manages Prisma Client lifecycle
- */
-class DatabaseConnection {
-  constructor() {
-    this.prisma = null;
-  }
- 
-  /**
-   * Initialize Prisma Client
-   */
-  async connect() {
-    if (this.prisma) {
-      console.log('⚠️  Prisma Client already connected');
-      return;
-    }
- 
-    try {
-      this.prisma = new PrismaClient({
-        log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'],
-      });
- 
-      await this.prisma.$connect();
-      console.log('✅ Prisma connected to PostgreSQL');
-    } catch (error) {
-      console.error('❌ Failed to connect to database:', error);
-      throw error;
-    }
-  }
- 
-  /**
-   * Get Prisma Client instance
-   * @returns {PrismaClient}
-   */
-  getClient() {
-    if (!this.prisma) {
-      throw new Error('Database not connected. Call connect() first.');
-    }
-    return this.prisma;
-  }
- 
-  /**
-   * Close database connection
-   */
-  async disconnect() {
-    if (this.prisma) {
-      await this.prisma.$disconnect();
-      console.log('🛑 Prisma disconnected');
-      this.prisma = null;
-    }
-  }
- 
-  /**
-   * Health check
-   * @returns {Promise<boolean>}
-   */
-  async healthCheck() {
-    try {
-      await this.prisma.$queryRaw`SELECT 1`;
-      return true;
-    } catch (error) {
-      console.error('❌ Database health check failed:', error);
-      return false;
-    }
-  }
-}
- 
-// Singleton instance
-const databaseConnection = new DatabaseConnection();
- 
-module.exports = databaseConnection;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/db/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/db/index.html deleted file mode 100644 index b0f53bb..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/db/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for infrastructure/db - - - - - - - - - -
-
-

All files infrastructure/db

-
- -
- 0% - Statements - 0/25 -
- - -
- 0% - Branches - 0/8 -
- - -
- 0% - Functions - 0/5 -
- - -
- 0% - Lines - 0/25 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
DatabaseConnection.js -
-
0%0/250%0/80%0/50%0/25
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/repositories/UserRepository.js.html b/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/repositories/UserRepository.js.html deleted file mode 100644 index 1cbf0b7..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/repositories/UserRepository.js.html +++ /dev/null @@ -1,475 +0,0 @@ - - - - - - Code coverage report for infrastructure/repositories/UserRepository.js - - - - - - - - - -
-
-

All files / infrastructure/repositories UserRepository.js

-
- -
- 0% - Statements - 0/25 -
- - -
- 0% - Branches - 0/4 -
- - -
- 0% - Functions - 0/9 -
- - -
- 0% - Lines - 0/24 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
const IUserRepository = require('../../domain/irepositories/IUserRepository');
-const User = require('../../domain/models/User');
- 
-/**
- * User Repository Implementation
- * Prisma-based data access for User entity
- */
-class UserRepository extends IUserRepository {
-  constructor(prisma) {
-    super();
-    this.prisma = prisma;
-  }
- 
-  /**
-   * Find user by ID
-   * @param {number} id 
-   * @returns {Promise<User|null>}
-   */
-  async findById(id) {
-    const userData = await this.prisma.user.findUnique({
-      where: { id: parseInt(id) }
-    });
- 
-    if (!userData) {
-      return null;
-    }
- 
-    return this._toDomain(userData);
-  }
- 
-  /**
-   * Find user by email
-   * @param {string} email 
-   * @returns {Promise<User|null>}
-   */
-  async findByEmail(email) {
-    const userData = await this.prisma.user.findUnique({
-      where: { email: email.toLowerCase() }
-    });
- 
-    if (!userData) {
-      return null;
-    }
- 
-    return this._toDomain(userData);
-  }
- 
-  /**
-   * Find all users
-   * @returns {Promise<User[]>}
-   */
-  async findAll() {
-    const usersData = await this.prisma.user.findMany({
-      orderBy: { createdAt: 'desc' }
-    });
- 
-    return usersData.map(userData => this._toDomain(userData));
-  }
- 
-  /**
-   * Create new user
-   * @param {User} user 
-   * @returns {Promise<User>}
-   */
-  async create(user) {
-    const userData = await this.prisma.user.create({
-      data: {
-        name: user.name,
-        email: user.email,
-        password: user.password
-      }
-    });
- 
-    return this._toDomain(userData);
-  }
- 
-  /**
-   * Update existing user
-   * @param {User} user 
-   * @returns {Promise<User>}
-   */
-  async update(user) {
-    const userData = await this.prisma.user.update({
-      where: { id: user.id },
-      data: {
-        name: user.name,
-        email: user.email,
-        password: user.password,
-        updatedAt: new Date()
-      }
-    });
- 
-    return this._toDomain(userData);
-  }
- 
-  /**
-   * Delete user by ID
-   * @param {number} id 
-   * @returns {Promise<boolean>}
-   */
-  async delete(id) {
-    try {
-      await this.prisma.user.delete({
-        where: { id: parseInt(id) }
-      });
-      return true;
-    } catch (error) {
-      return false;
-    }
-  }
- 
-  /**
-   * Convert Prisma data to Domain model
-   * @private
-   * @param {Object} userData - Prisma user data
-   * @returns {User}
-   */
-  _toDomain(userData) {
-    return new User(
-      userData.id,
-      userData.name,
-      userData.email,
-      userData.password,
-      userData.createdAt,
-      userData.updatedAt
-    );
-  }
-}
- 
-module.exports = UserRepository;
- -
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/repositories/index.html b/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/repositories/index.html deleted file mode 100644 index 596286e..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/infrastructure/repositories/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for infrastructure/repositories - - - - - - - - - -
-
-

All files infrastructure/repositories

-
- -
- 0% - Statements - 0/25 -
- - -
- 0% - Branches - 0/4 -
- - -
- 0% - Functions - 0/9 -
- - -
- 0% - Lines - 0/24 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
UserRepository.js -
-
0%0/250%0/40%0/90%0/24
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/prettify.css b/Backend/negyedik gyakorlat/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/prettify.js b/Backend/negyedik gyakorlat/coverage/lcov-report/prettify.js deleted file mode 100644 index b322523..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/prettify.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/sort-arrow-sprite.png b/Backend/negyedik gyakorlat/coverage/lcov-report/sort-arrow-sprite.png deleted file mode 100644 index 6ed68316eb3f65dec9063332d2f69bf3093bbfab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc diff --git a/Backend/negyedik gyakorlat/coverage/lcov-report/sorter.js b/Backend/negyedik gyakorlat/coverage/lcov-report/sorter.js deleted file mode 100644 index 4ed70ae..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov-report/sorter.js +++ /dev/null @@ -1,210 +0,0 @@ -/* eslint-disable */ -var addSorting = (function() { - 'use strict'; - var cols, - currentSort = { - index: 0, - desc: false - }; - - // returns the summary table element - function getTable() { - return document.querySelector('.coverage-summary'); - } - // returns the thead element of the summary table - function getTableHeader() { - return getTable().querySelector('thead tr'); - } - // returns the tbody element of the summary table - function getTableBody() { - return getTable().querySelector('tbody'); - } - // returns the th element for nth column - function getNthColumn(n) { - return getTableHeader().querySelectorAll('th')[n]; - } - - function onFilterInput() { - const searchValue = document.getElementById('fileSearch').value; - const rows = document.getElementsByTagName('tbody')[0].children; - - // Try to create a RegExp from the searchValue. If it fails (invalid regex), - // it will be treated as a plain text search - let searchRegex; - try { - searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive - } catch (error) { - searchRegex = null; - } - - for (let i = 0; i < rows.length; i++) { - const row = rows[i]; - let isMatch = false; - - if (searchRegex) { - // If a valid regex was created, use it for matching - isMatch = searchRegex.test(row.textContent); - } else { - // Otherwise, fall back to the original plain text search - isMatch = row.textContent - .toLowerCase() - .includes(searchValue.toLowerCase()); - } - - row.style.display = isMatch ? '' : 'none'; - } - } - - // loads the search box - function addSearchBox() { - var template = document.getElementById('filterTemplate'); - var templateClone = template.content.cloneNode(true); - templateClone.getElementById('fileSearch').oninput = onFilterInput; - template.parentElement.appendChild(templateClone); - } - - // loads all columns - function loadColumns() { - var colNodes = getTableHeader().querySelectorAll('th'), - colNode, - cols = [], - col, - i; - - for (i = 0; i < colNodes.length; i += 1) { - colNode = colNodes[i]; - col = { - key: colNode.getAttribute('data-col'), - sortable: !colNode.getAttribute('data-nosort'), - type: colNode.getAttribute('data-type') || 'string' - }; - cols.push(col); - if (col.sortable) { - col.defaultDescSort = col.type === 'number'; - colNode.innerHTML = - colNode.innerHTML + ''; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSearchBox(); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/Backend/negyedik gyakorlat/coverage/lcov.info b/Backend/negyedik gyakorlat/coverage/lcov.info deleted file mode 100644 index f11d276..0000000 --- a/Backend/negyedik gyakorlat/coverage/lcov.info +++ /dev/null @@ -1,804 +0,0 @@ -TN: -SF:src\api\controllers\AuthController.js -FN:9,(anonymous_0) -FN:18,(anonymous_1) -FN:52,(anonymous_2) -FN:84,(anonymous_3) -FNF:4 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -DA:1,0 -DA:2,0 -DA:10,0 -DA:11,0 -DA:12,0 -DA:19,0 -DA:20,0 -DA:22,0 -DA:23,0 -DA:26,0 -DA:32,0 -DA:40,0 -DA:45,0 -DA:53,0 -DA:54,0 -DA:56,0 -DA:57,0 -DA:60,0 -DA:66,0 -DA:74,0 -DA:77,0 -DA:85,0 -DA:87,0 -DA:94,0 -DA:98,0 -DA:103,0 -LF:26 -LH:0 -BRDA:40,0,0,0 -BRDA:40,0,1,0 -BRDA:40,1,0,0 -BRDA:40,1,1,0 -BRDA:40,1,2,0 -BRDA:40,1,3,0 -BRDA:74,2,0,0 -BRDA:74,2,1,0 -BRDA:74,3,0,0 -BRDA:74,3,1,0 -BRF:10 -BRH:0 -end_of_record -TN: -SF:src\api\controllers\UserController.js -FN:11,(anonymous_0) -FN:21,(anonymous_1) -FN:42,(anonymous_2) -FN:60,(anonymous_3) -FN:85,(anonymous_4) -FNF:5 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -DA:1,0 -DA:2,0 -DA:3,0 -DA:4,0 -DA:12,0 -DA:13,0 -DA:14,0 -DA:15,0 -DA:22,0 -DA:24,0 -DA:26,0 -DA:27,0 -DA:29,0 -DA:34,0 -DA:35,0 -DA:43,0 -DA:44,0 -DA:45,0 -DA:47,0 -DA:53,0 -DA:61,0 -DA:62,0 -DA:63,0 -DA:65,0 -DA:66,0 -DA:69,0 -DA:70,0 -DA:72,0 -DA:77,0 -DA:78,0 -DA:86,0 -DA:87,0 -DA:88,0 -DA:90,0 -DA:91,0 -DA:93,0 -DA:98,0 -DA:99,0 -DA:104,0 -LF:39 -LH:0 -BRDA:34,0,0,0 -BRDA:34,0,1,0 -BRDA:65,1,0,0 -BRDA:65,1,1,0 -BRDA:77,2,0,0 -BRDA:77,2,1,0 -BRDA:98,3,0,0 -BRDA:98,3,1,0 -BRF:8 -BRH:0 -end_of_record -TN: -SF:src\api\middlewares\authMiddleware.js -FN:13,authMiddleware -FNF:1 -FNH:0 -FNDA:0,authMiddleware -DA:1,0 -DA:3,0 -DA:14,0 -DA:16,0 -DA:18,0 -DA:19,0 -DA:26,0 -DA:29,0 -DA:35,0 -DA:37,0 -DA:44,0 -LF:11 -LH:0 -BRDA:18,0,0,0 -BRDA:18,0,1,0 -BRF:2 -BRH:0 -end_of_record -TN: -SF:src\api\middlewares\corsMiddleware.js -FN:7,(anonymous_0) -FNF:1 -FNH:0 -FNDA:0,(anonymous_0) -DA:1,0 -DA:4,0 -DA:6,0 -DA:22,0 -LF:4 -LH:0 -BRDA:4,0,0,0 -BRDA:4,0,1,0 -BRF:2 -BRH:0 -end_of_record -TN: -SF:src\api\middlewares\scopeMiddleware.js -FN:5,scopeMiddleware -FN:6,(anonymous_1) -FNF:2 -FNH:0 -FNDA:0,scopeMiddleware -FNDA:0,(anonymous_1) -DA:6,0 -DA:18,0 -LF:2 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\api\routers\authRoutes.js -FN:9,createAuthRoutes -FN:20,(anonymous_1) -FN:27,(anonymous_2) -FN:33,(anonymous_3) -FN:38,(anonymous_4) -FNF:5 -FNH:0 -FNDA:0,createAuthRoutes -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -DA:1,0 -DA:10,0 -DA:13,0 -DA:20,0 -DA:27,0 -DA:33,0 -DA:38,0 -DA:40,0 -DA:43,0 -LF:9 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\api\routers\userRoutes.js -FN:10,createUserRoutes -FN:20,(anonymous_1) -FN:27,(anonymous_2) -FN:33,(anonymous_3) -FN:39,(anonymous_4) -FN:44,(anonymous_5) -FNF:6 -FNH:0 -FNDA:0,createUserRoutes -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -FNDA:0,(anonymous_5) -DA:1,0 -DA:2,0 -DA:11,0 -DA:14,0 -DA:20,0 -DA:27,0 -DA:33,0 -DA:39,0 -DA:44,0 -DA:46,0 -DA:49,0 -LF:11 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\application\auth\commands\LoginUserCommand.js -FN:6,(anonymous_0) -FNF:1 -FNH:0 -FNDA:0,(anonymous_0) -DA:7,0 -DA:8,0 -DA:12,0 -LF:3 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\application\auth\commands\LoginUserCommandHandler.js -FN:11,(anonymous_0) -FN:20,(anonymous_1) -FNF:2 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -DA:1,0 -DA:2,0 -DA:4,0 -DA:12,0 -DA:21,0 -DA:24,0 -DA:25,0 -DA:29,0 -DA:33,0 -DA:34,0 -DA:38,0 -DA:40,0 -DA:41,0 -DA:45,0 -DA:51,0 -DA:53,0 -DA:60,0 -LF:17 -LH:0 -BRDA:24,0,0,0 -BRDA:24,0,1,0 -BRDA:24,1,0,0 -BRDA:24,1,1,0 -BRDA:33,2,0,0 -BRDA:33,2,1,0 -BRDA:40,3,0,0 -BRDA:40,3,1,0 -BRF:8 -BRH:0 -end_of_record -TN: -SF:src\application\auth\commands\RegisterUserCommand.js -FN:6,(anonymous_0) -FNF:1 -FNH:0 -FNDA:0,(anonymous_0) -DA:7,0 -DA:8,0 -DA:9,0 -DA:13,0 -LF:4 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\application\auth\commands\RegisterUserCommandHandler.js -FN:11,(anonymous_0) -FN:21,(anonymous_1) -FN:62,(anonymous_2) -FNF:3 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -DA:1,0 -DA:2,0 -DA:4,0 -DA:12,0 -DA:13,0 -DA:22,0 -DA:25,0 -DA:26,0 -DA:29,0 -DA:30,0 -DA:34,0 -DA:35,0 -DA:36,0 -DA:40,0 -DA:44,0 -DA:45,0 -DA:49,0 -DA:52,0 -DA:61,0 -DA:62,0 -DA:63,0 -DA:68,0 -DA:74,0 -DA:76,0 -DA:83,0 -LF:25 -LH:0 -BRDA:25,0,0,0 -BRDA:25,0,1,0 -BRDA:25,1,0,0 -BRDA:25,1,1,0 -BRDA:25,1,2,0 -BRDA:29,2,0,0 -BRDA:29,2,1,0 -BRDA:35,3,0,0 -BRDA:35,3,1,0 -BRDA:44,4,0,0 -BRDA:44,4,1,0 -BRDA:61,5,0,0 -BRDA:61,5,1,0 -BRF:13 -BRH:0 -end_of_record -TN: -SF:src\application\services\Container.js -FN:6,(anonymous_0) -FN:17,(anonymous_1) -FN:25,(anonymous_2) -FN:47,(anonymous_3) -FNF:4 -FNH:4 -FNDA:22,(anonymous_0) -FNDA:22,(anonymous_1) -FNDA:19,(anonymous_2) -FNDA:9,(anonymous_3) -DA:57,1 -LF:1 -LH:1 -BRDA:17,0,0,1 -BRDA:25,1,0,17 -BRF:2 -BRH:2 -end_of_record -TN: -SF:src\application\services\EmailService.js -FN:8,(anonymous_0) -FN:23,(anonymous_1) -FNF:2 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -DA:20,0 -DA:26,0 -DA:27,0 -DA:31,0 -LF:4 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\application\services\JwtService.js -FN:8,(anonymous_0) -FN:19,(anonymous_1) -FN:28,(anonymous_2) -FN:41,(anonymous_3) -FN:60,(anonymous_4) -FN:72,(anonymous_5) -FN:89,(anonymous_6) -FN:109,(anonymous_7) -FNF:8 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -FNDA:0,(anonymous_5) -FNDA:0,(anonymous_6) -FNDA:0,(anonymous_7) -DA:1,0 -DA:9,0 -DA:10,0 -DA:11,0 -DA:20,0 -DA:29,0 -DA:30,0 -DA:32,0 -DA:42,0 -DA:43,0 -DA:46,0 -DA:48,0 -DA:49,0 -DA:52,0 -DA:61,0 -DA:62,0 -DA:65,0 -DA:73,0 -DA:75,0 -DA:91,0 -DA:93,0 -DA:94,0 -DA:95,0 -DA:96,0 -DA:97,0 -DA:98,0 -DA:102,0 -DA:110,0 -DA:114,0 -LF:29 -LH:0 -BRDA:9,0,0,0 -BRDA:9,0,1,0 -BRDA:10,1,0,0 -BRDA:10,1,1,0 -BRDA:42,2,0,0 -BRDA:42,2,1,0 -BRDA:48,3,0,0 -BRDA:48,3,1,0 -BRDA:48,4,0,0 -BRDA:48,4,1,0 -BRDA:61,5,0,0 -BRDA:61,5,1,0 -BRDA:61,6,0,0 -BRDA:61,6,1,0 -BRDA:93,7,0,0 -BRDA:93,7,1,0 -BRDA:95,8,0,0 -BRDA:95,8,1,0 -BRDA:97,9,0,0 -BRDA:97,9,1,0 -BRF:20 -BRH:0 -end_of_record -TN: -SF:src\application\user\commands\UpdateUserProfileCommand.js -FN:6,(anonymous_0) -FNF:1 -FNH:0 -FNDA:0,(anonymous_0) -DA:7,0 -DA:8,0 -DA:12,0 -LF:3 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\application\user\commands\UpdateUserProfileCommandHandler.js -FN:6,(anonymous_0) -FN:15,(anonymous_1) -FNF:2 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -DA:7,0 -DA:16,0 -DA:18,0 -DA:19,0 -DA:22,0 -DA:27,0 -DA:28,0 -DA:32,0 -LF:8 -LH:0 -BRDA:18,0,0,0 -BRDA:18,0,1,0 -BRF:2 -BRH:0 -end_of_record -TN: -SF:src\application\user\queries\GetAllUsersQuery.js -FN:6,(anonymous_0) -FNF:1 -FNH:0 -FNDA:0,(anonymous_0) -DA:11,0 -LF:1 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\application\user\queries\GetAllUsersQueryHandler.js -FN:6,(anonymous_0) -FN:15,(anonymous_1) -FN:21,(anonymous_2) -FNF:3 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -DA:7,0 -DA:16,0 -DA:21,0 -DA:25,0 -LF:4 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\application\user\queries\GetMeQuery.js -FN:6,(anonymous_0) -FNF:1 -FNH:0 -FNDA:0,(anonymous_0) -DA:7,0 -DA:11,0 -LF:2 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\application\user\queries\GetMeQueryHandler.js -FN:6,(anonymous_0) -FN:15,(anonymous_1) -FNF:2 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -DA:7,0 -DA:16,0 -DA:18,0 -DA:22,0 -DA:23,0 -DA:26,0 -DA:27,0 -DA:31,0 -LF:8 -LH:0 -BRDA:22,0,0,0 -BRDA:22,0,1,0 -BRF:2 -BRH:0 -end_of_record -TN: -SF:src\application\user\queries\GetUserByIdQuery.js -FN:6,(anonymous_0) -FNF:1 -FNH:0 -FNDA:0,(anonymous_0) -DA:7,0 -DA:11,0 -LF:2 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\application\user\queries\GetUserByIdQueryHandler.js -FN:6,(anonymous_0) -FN:15,(anonymous_1) -FNF:2 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -DA:7,0 -DA:16,0 -DA:18,0 -DA:19,0 -DA:22,0 -DA:26,0 -DA:27,0 -DA:30,0 -DA:31,0 -DA:35,0 -LF:10 -LH:0 -BRDA:18,0,0,0 -BRDA:18,0,1,0 -BRDA:18,1,0,0 -BRDA:18,1,1,0 -BRDA:26,2,0,0 -BRDA:26,2,1,0 -BRF:6 -BRH:0 -end_of_record -TN: -SF:src\domain\irepositories\IUserRepository.js -FN:11,(anonymous_0) -FN:20,(anonymous_1) -FN:28,(anonymous_2) -FN:37,(anonymous_3) -FN:46,(anonymous_4) -FN:55,(anonymous_5) -FNF:6 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -FNDA:0,(anonymous_5) -DA:12,0 -DA:21,0 -DA:29,0 -DA:38,0 -DA:47,0 -DA:56,0 -DA:60,0 -LF:7 -LH:0 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src\domain\models\User.js -FN:6,(anonymous_0) -FN:20,(anonymous_1) -FN:44,(anonymous_2) -FN:53,(anonymous_3) -FN:65,(anonymous_4) -FNF:5 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -DA:7,0 -DA:8,0 -DA:9,0 -DA:10,0 -DA:11,0 -DA:12,0 -DA:21,0 -DA:24,0 -DA:25,0 -DA:28,0 -DA:29,0 -DA:32,0 -DA:33,0 -DA:36,0 -DA:45,0 -DA:46,0 -DA:54,0 -DA:55,0 -DA:57,0 -DA:58,0 -DA:66,0 -DA:76,0 -LF:22 -LH:0 -BRDA:24,0,0,0 -BRDA:24,0,1,0 -BRDA:24,1,0,0 -BRDA:24,1,1,0 -BRDA:28,2,0,0 -BRDA:28,2,1,0 -BRDA:28,3,0,0 -BRDA:28,3,1,0 -BRDA:32,4,0,0 -BRDA:32,4,1,0 -BRDA:32,5,0,0 -BRDA:32,5,1,0 -BRDA:54,6,0,0 -BRDA:54,6,1,0 -BRDA:54,7,0,0 -BRDA:54,7,1,0 -BRF:16 -BRH:0 -end_of_record -TN: -SF:src\infrastructure\db\DatabaseConnection.js -FN:8,(anonymous_0) -FN:15,(anonymous_1) -FN:38,(anonymous_2) -FN:48,(anonymous_3) -FN:60,(anonymous_4) -FNF:5 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -DA:1,0 -DA:9,0 -DA:16,0 -DA:17,0 -DA:18,0 -DA:21,0 -DA:22,0 -DA:26,0 -DA:27,0 -DA:29,0 -DA:30,0 -DA:39,0 -DA:40,0 -DA:42,0 -DA:49,0 -DA:50,0 -DA:51,0 -DA:52,0 -DA:61,0 -DA:62,0 -DA:63,0 -DA:65,0 -DA:66,0 -DA:72,0 -DA:74,0 -LF:25 -LH:0 -BRDA:16,0,0,0 -BRDA:16,0,1,0 -BRDA:23,1,0,0 -BRDA:23,1,1,0 -BRDA:39,2,0,0 -BRDA:39,2,1,0 -BRDA:49,3,0,0 -BRDA:49,3,1,0 -BRF:8 -BRH:0 -end_of_record -TN: -SF:src\infrastructure\repositories\UserRepository.js -FN:9,(anonymous_0) -FN:19,(anonymous_1) -FN:36,(anonymous_2) -FN:52,(anonymous_3) -FN:57,(anonymous_4) -FN:65,(anonymous_5) -FN:82,(anonymous_6) -FN:101,(anonymous_7) -FN:118,(anonymous_8) -FNF:9 -FNH:0 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -FNDA:0,(anonymous_5) -FNDA:0,(anonymous_6) -FNDA:0,(anonymous_7) -FNDA:0,(anonymous_8) -DA:1,0 -DA:2,0 -DA:10,0 -DA:11,0 -DA:20,0 -DA:24,0 -DA:25,0 -DA:28,0 -DA:37,0 -DA:41,0 -DA:42,0 -DA:45,0 -DA:53,0 -DA:57,0 -DA:66,0 -DA:74,0 -DA:83,0 -DA:93,0 -DA:102,0 -DA:103,0 -DA:106,0 -DA:108,0 -DA:119,0 -DA:130,0 -LF:24 -LH:0 -BRDA:24,0,0,0 -BRDA:24,0,1,0 -BRDA:41,1,0,0 -BRDA:41,1,1,0 -BRF:4 -BRH:0 -end_of_record diff --git a/Frontend_ppt/common/it_logo.pdf b/Frontend_ppt/common/it_logo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dde9932d3098ecf4d1af367af0a553495a4eebfb GIT binary patch literal 6171 zcmZu#WmuG3*QUEcP;zLHnxRu_08vW1V}=1nUy~+~RK)yn9)+Z$S3z zBTGF06a!_06%0LxQ)o21v^AbYf!Bh))I{F6Iq{P5u1;l7s!?`5mxtfG3;*lyd8_4$ z&&s?h&NN@zX+IZPwaBUXpgv09rt}U?X5bV z9>if69nLk5z1mIVVrw}(TcwW8Roku93afBCHn8|^G527a^TO+}d8UDE=$bJ5u!cc) zZmYR@oE!4tYG!`#2-mH`-tQfgb$ZNo;&Jlww13mtF*Ej6%dz;ETp7=SWUJ{7YVy7d z&(m`QA;t4udaCdmK^7yQE!HnzO_x#xy78HvJ%>bQJT35&cB|YO5_DQJWOm5F0q5;> z9!%y>>BVY2nfU6RN1XXxbZnXGa?CTryH2T^R7h>O-T7bnbw}NmMs74$?|tKnNH+vy z>^2i7q_$&GkUh#KX`%K;#L{2y`b$nkN&0;?HV$B+Q(!5UDc0%%nHE+6U;mS}TRzqj;cbd?Mhb<9z%)3;wX>F{9ejH#XkSUbO;U z(LKmrp)@RXVmeK>VyPz$J47E8ofsWwPSq}&B5N#v_7g*Bf7H5}!U3970U=q9PW|>_ z4EoIpHjDFi!X?#zewxV7<#b>kcYkPUgo5eoMOY*=DgF1LRQeJSHye^d5#U5xMuDip zd+*J{^^D|`Z#QnX`>Vd+cN8qO7<%bycBc>~Mh_I+tRnCae9ycZZM3UGrZ+R*zcP8zF zgx*xp?1J+~W>1ONASfR$t-(OKDQlOaz<()S)5dv7V?W$&APIDMB+p@?&|KQ9Z!gkIwiY>uJ@$*I&d zKAXF0gpixj;<<)VLC__nmpFv?G9x43PFaxcVt&M?Ma`ASg9c4^qtsg{zCwuW0TRa> z^&8KhM5gl9b4>tMOLt|(doYJHpcJeT@*VlT1uWe){O{!ix7i@V05UJSF8bGw9V^BA z(=V4l=oF09et)spco>$hwq;M842RwzL;&g2Obk`6P3$^ne0&PTrIn3|&7o z+V>hGMi89)=Nk#THYIUCao_9*KF7}py-V-G*5>qldF&5uX&a>ENhFGON4b&vLzDlXnu@nAw@#i14U)NLHuj%6Zvdul5! zZk-F9tOJBUkMC=FV3aURC{YC-!dtu^<(7@ATR{*Oredx}VOet%i!-&SeiWD>gmIYM z({c;uN~)z$_l-KZeBC^3M&9?LRxP5y1UqO35g{3 zf~Uua@&``A-Na@Y8$LL>FkEaU(U&1A-y#Nlh9uS=B3b9@3Hr94s|}V-SN3|#u)bu8 z6dl&CshiGN9E3a$5=&=u-Plj zfB3RCnEhnQo~FTytb$aT5{J!m-z5Q=0)G)$YD-$FOj}?MkBlqoeHv{$BT$3>QQTYF z{z9=%z!jAhsrX)Cl!9l0Um)DwVfWw;eO2D@eSIj;o8FIH`AG)h;c^P3Y>UiRml#aa zx;z`eqEzjSdcV4e#u`9V-LXtPF{xS=fUV&LdCa@mi_RId($@q+rL%?6vfmWm8Lt}P z6ng+yZFKd}av7GS3s07%bi#@vGw^Kj-m_K9wqYoRh{SqFM&=X+V_PnWXlbT)Vt&@2 zigkP@$J?a%aUW;LC7lU@pi%V{8Mq_b3u5iun!Xn7OG_lOjueK7#d7wXmuPAJ2+=Up>ML+0bUHu^nSL)2>Zf~T!VzaYCm#xDF zOY_~@>=NoMzV5?Ea3~@)W=i=#a?h&rE;nH;x6iY(F(t;#8Vuk>9pbL3cac-pC~Q); zHw9Y!f?)I1o>hyens?u=2BgO+9#)u!u!M++ZtKh`eOCG|bLEsykT3YLlkmH-HJz2l z_PA#m(UGH`ByL>0ohLi(4KBifPqQ|IV_R{H zQEu^1YA8QH>tTvK!1?6eA=vP-aFk|U39VhuOw!LJUnEB-X<=wasw$8mBNg>fk%_iW zk%n}We_U3Ti}1Z^{Kp8KV4WMXu2 zNwqhH!5A+WF!A;e0*3}s*8Iw^M}&i67Aj){*ja-6N)DH}gJHu-gKz)PfR3Yz@Mn09 z_ZlhgY1ggQ#n`9=>_Uz~3g1(626m-0AmPx@MvR6L6`PLHA|CO|*-KxDlQ}G}7qfKI zA&zP5crn*uF93WYs&yBop)XhS>~}w;;ZHP%QTJ_)L~ds=R=(>g)Lk^;8w0+yfjWbLsrLIc!ZA|UupR4aEMJ5|om9{9^EiNVUw-<^0 zDvL8HwFr8Iq{brMu>@IG8X~jk;U^*Pq?)k+ndGn&=a)`v8 zu|H>I#F*ius+0fGI9SrO$quI++8X`l5%zhX7eZbftkkwadJ#&Hmwq>gj4jH6A80Yj zmKB3Ic@?cs;x+^rGHkqPw}u%cNvaLmMcN*Xdm9}@BqJKU+V}p}P_z6-7g0>gLk3!4PS zy;~F1_kz6C1i2-mXgG@0kqcX28lKI2FJ$K_zEsHddGe~I*F1w0d7(~4{A@2n!dk`%*@Nb*;bw4cj^ z5K~iTwKUO9Jek3E$=e3{<2$-_2QNaz7soh^Ec)Z6s+O@Ix*ZfOFz^xU>>-6ko4W;q z0gbsjbiNg&+vb@EjVJar^aQw3hPjKMuU;EbQ=Ki8whi|B`QW_`iX`0ogzoW>SN;)+DaJWkG3S+h>^dY_%mkELvw|R%Bx@Co@}Y)v^g?>FWr$;*o&0y#M3u*K=hO3y za^pOt7$!u4YL=MmN~3$}{g|r0Xbw{b)d7(>G2v7@=|tKC9y#NgZU%adaaTeN8{3Gkr+9V??q~7LiTNNw`I$6E@{zoaF@gBEH0`09V54gJfqmlogBGMcxdj8gX!oP-C5}dV zX0Q5z)ri4AwYKA0H&g37N;o({OUcJcou)s0u%SrV;l_Bl*IC@{-sn@WW#iKRh9ytEap{o z5lGM!w`^nU7RTg@kr%!W!kS=yZX zW8$+@yET#vCOBBhyu*8@RDqc!kif34T*d@L39Cd8314l)x-Ur&lf6Q~Clf=*=}h~3 zp$-mFI!q2bafB?zGjhdntsSvJQ4U{CnE~BuRz2_V`&{n{q-9&Ff=tF6x`|(EdBzEg z#?!iQXk%K`=QCklPS(y-X4%ScrmTUr1-SY!kZdmPm%8vdY!;GC!-A2kA)x^0IWg_& zuj#1^WPJN)jaS~`xMI6i;UMyjmW-b1x3LTFl7EH*Jr{2}dQBPW)s=zkfaSQ;@4dwXa+)!-p#(<%DDy zp5apN?(?dEi$}|uQhC*Iw}2{ZK7e%8Q$dtcFK0bKf4)+H6n8Zf~Cq8j1 zxdZYSEjrHL9uBRk5SYNA&FJD50B;aBLyJnT#(m(0a|_B>p_p8J#E!ZKVbuMpkE}{0 zr+V+b{f2owJ0HqL=gHOg;qxVx-e?8;JC?|5Lnp_b-uprK%h(;;VD3+aLR#k@uvxLP z5gE|2x=hHP_ws-PS2Js6m;;sip7oFMM$&NQsh)mU0#8ad46PNdh((Gr+l;Y960mWT zQi5yzn!BJW%j~V3ZlMI5RoC8FY4be`+V*x`vgy7UZWo&P5^fJ#t?%I5)eJoJK&!OA zPws2O=C;R5={l~tJeb`1;<d8GH_@C?sSdC+Ww6>OXlUYJ*T@BMqV;r33T z)V}fVa=-QGAD=SS3geu4*EzFjKKO=qzZh)tUX!8NRK1+o99iZ5I_adePvkG|r4j z;^5PKzu*x->@>a;~I4VzJGe7+7cEFTV+_zJe<0Vzm`dA zCDb$T*kV&{WL7pm_!zM@(sSjWvo$9leW%E9(&#F!0iVfsYkdURc zV_(YvMiZTyhE=Kdk=>Csfd|{XFI`e&Q4ecMjuoJ;B_+tk>|ypmBC&D+9dq1%wrtL6Gn8YgOUUaPTjXJlOt$$^ zE_h*X>+SjM9I+_1>}F=buV0V&jeb6!nm#bQc4)BjWr=UJ^L=uRX;E2Dp87(LD5{o6 z9SP2J<=xd`(OK8hNqiRQcMvAaKjEVi=!yIw<>QzhpwL%fa9-o_>76bjNO_zSqM5@T;>KQ*Y-jt8dH+f`1Yd(uKJp-BD1O8{oD)y8ohiOW<$8_&+q=Ztn^` zhTFQ`(7COI?mxM^-?ILf1Mz=3&_N+>-Jv%UGY`}TjzR)Jf*>(L5D>uQfJVDW3*FTE z2DL}oxH!O}Zh}aZJumO?K*~1)G#ZXXfN%T61C|yB3Il;6!jd4MsFdb%o>4k#X5di^`L^qxIYXHQ>#6-jZc7VSyF>$FI zHn#(S_y-dezj0 literal 0 HcmV?d00001 diff --git a/Frontend_ppt/common/sze_logo.pdf b/Frontend_ppt/common/sze_logo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cbf22f94ac880582029d53f0221e9d15e2158af8 GIT binary patch literal 4099 zcmb7{c|4Ts`^RljV-OO@lCke*#*8(FEMqNuWXl*MV;g3M#xA=^wi1;!TPP}pBh;9z zHP)!4CQDf=TU09F8Lhu_&Og8VHLvHH`}5q-bzPt9e*U=MGB(CY6{xB@K&I*KwJiV~ z1Oef^`~bSTAg~oC=mgOhq)wOY03Z+ujKl^IF?jkt07b+YW6(Hn3;=-u5QumTDiA=r z%I-}?+%4FCTz}T$4O?SfxvpAO@Gn~RK?6BTUjYgR3wj}X6RtG*}x`1t*M

3UyRKx2eNja6m-P*Oh&)oTpp zh!E#-vTUed%B*X3y0@$-Bu*O$XMND52nAq*ynj?f|HtsbD4ubrmk)*QJZH>czg+J4 zG9eL7?TK_xAYEOCKp$Wfggya*jShjJATSz5ztWx3AAG-povpq6Flge=8j=P`gV7_# zGy3mGX0=~AKwyXPU9{eI$&AelPDw z-xz7Y_Mu+HoyH(>_`n^-@K665zuo^XMe}DVzdpLqW9B)}TX`p^_vtbp9_WNdC5i*@ z+#1Z4* zs6!)Zeu7~2>_mDXRpsCj47DNv`c@m9x1si6|09)(yHx=nry&pS&NNb5^N)Tl>aKXb zG3(%ITabQwVzWFq^~QLRJVh@)o3zyAZ5lD#LP--x*@A*EMv`A#*nB+Bb#{>yyAUa+ z<+~)a--^&ZH9Q%!{aV9yb7DkYr1)k?@h4nv`g?t@m;mFhDQxoDh(Zz4CyDAlx zY@hSw9od=~-VCv_klZ|76|8HbW)KqaX@bYBXY?*{sQ--qg5i?^x1+%W|LRSuOd>j$GD%L(M*Owrbz*2=&AWgkKKS| zgfqV&GaqpC?#ZXI2WQ?M5AIY{q}~~eCkJ{O_KS?0E*E#8O8WseTGQNY6Eik2 zoh8XD(!?4r)hGhMOPw4(q&cJdc)v+)WUlg?r@`hP`++jSWo zX`>`r&plT0ifZ0Emj#jE{+?RBet zBmWf>&s6}Kk@ zQ9vQ1-c+&uZ9)(&-iOU2qqeFw-?pTM@3izl_~GjO9#>P%yt0gy^N%oXR!B(}Ny>r6;k4X$2w%SgB-Gt+a|s@7r|$O(_t#HkDKf_` z@?3hflpYpxh#xnaI~`Zs6q9usVD&M1bbCU>iAQhU?m&xL9ahG4?A?(XH!5EcZ+nSy zk|Fl;Xth&J`c|WV>qsIsZ~gy}jl@(}gT zc$`miVg==#%F35gpn2cJPp*B3dxlr~T5wi=t^Lf7NeEMRqmxj-$?YWq<_Gg4T9>!#7^Ql3a2 zt2|m>F42H}xX!oW%q@T@esS+j2(WOXuCT9?RhGGmtm}z(v3lb)+Q8@ zJ-Cgq0n@7*p*bW8ho#5U*~o--pu-CaIL137Lk{W1c1kLbEf5d9U0O!j-(8|2@K$0F zncfAN4__`31X`SNn6X~9;daiy&ko$bhNu>qH}tSEYT9Q(kOy#b*TjrJ6_l=Wi8-lo zp`AtvKe){O_SNJv1yCy~-6E7}-|t&+dvW=S_VFxA%p~0OGubEaufHT}FU-W4V{Upn zof%gfGRW`yK-B8WBnrMtzja{AY?mA=CG_bfn}d`@Tbl-O@)gAP1NdguV8)^@I<=K3-HQuB zCeZF%o(T9P!V{7z-m$og?2_qXQ@54`7Kj?kge&`B^=D;&9+lN#hxHh&-;<8r>c0g1 zoB7FtpxXxd(rS=(GT4WG>g&$k<5oh!wPS5ukenu~c)yJv z%XwpTK$**9q%4q=L%ezDi*$C&*$2fE3l?QnB4r^!#joV9H5 zRTiVUj3R%8?22M?g7FtQ#}e4wMOCb}Zr45RqPE3r#47J!CcvY-FH(li>8x@2-}r=j z;}v#IYm&W^bl0EExmG(=C+uTK#fg5LKP}qh#Gx~)c{IL$Jm$4Q#FH<1d>@R4!Ji2+ zO0X{>8A?yeM{Ih|V{#H|)u}HF?Kt^1%!&;j_-Rr0iQQbI$_`4T<&{>at+xbMba34e zuq{r!52bm^o=-laarX(^hhvEHs8DqI+r2F15qhI67b=RnWM9Z!K~2efS8GlQi4wm~ zb`yKw+a}(1$_v^JPG84Ugj)1lG*Z8^YLJhn5%O`58sc-gP>#Yom%SRm{g4-bAtcwjL9m^Ow>(3R% zCdXg0a@TrWi_b6Fc6*R6>vPvA>`U?Y3^V}dUT?>>?T+A$gJfOVoMz>AuS}J?*2}Y` zR%C9qmea`7Y!yw9T5x15;#-&IUs4Oy@@TT4C78R@j-RL9xv(sr01l@#wQX326g<<6 z>blM3Sm{ex80G~w`{7{NI3em`sP zoRI&YsPY>}7@+a<%>Elk2s=S7vEBqab})#=?iX)_GU()wL%;SP0c`L%?@%-y1?ABw zEFK4fs?uo%3IWOc5{bb&U^*|+)f0GBurC%(P{rX-C@AbCGNOYb5sM2lX0VpLv5p!< z4FZ9wX+a?{4LDp00+oY66#mFb5BblkjZj2X0Pe(2I0jG=ejwCurzAYa2fzR*0OZ#I zX{f8i)ImO=9~w+ugC3eOKtVq>2n2iI6y|m#2N|sAJAF0-T(jq literal 0 HcmV?d00001 diff --git a/Frontend_ppt/common/webfejl.sty b/Frontend_ppt/common/webfejl.sty new file mode 100644 index 0000000..99cf238 --- /dev/null +++ b/Frontend_ppt/common/webfejl.sty @@ -0,0 +1,230 @@ +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[magyar]{babel} +\usepackage{indentfirst} +\usepackage{graphicx} +\usepackage{tikz} +\usetikzlibrary{positioning} +\usepackage{fancyvrb} +\usepackage{amssymb} +\usepackage{pifont} +\usepackage{newunicodechar} + +% Unicode szimbólumok definiálása +\newcommand{\cmark}{\ding{51}} % ✓ check mark +\newcommand{\xmark}{\ding{55}} % ✗ ballot x +\newunicodechar{✓}{\cmark} +\newunicodechar{✗}{\xmark} +\newunicodechar{❌}{\textcolor{red}{\xmark}} + +% Globális verbatim beállítás - tiny betűméret minden verbatim blokkhoz +\fvset{fontsize=\tiny} +\usepackage{listingsutf8} +\usepackage{textcomp} +\usepackage{eurosym} +\usepackage{mathtools} +\lstset{literate= + {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1 + {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1 + {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1 + {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1 + {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 + {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 + {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 + {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1 + {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 + {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1 + {€}{{\EUR}}1 {£}{{\pounds}}1 {ő}{{\H{o}}}1 {ű}{{\H{u}}}1 +} +% Docker nyelvdefiníció +\lstdefinelanguage{Docker}{ + keywords={FROM, RUN, CMD, LABEL, MAINTAINER, EXPOSE, ENV, ADD, COPY, + ENTRYPOINT, VOLUME, USER, WORKDIR, ARG, ONBUILD, STOPSIGNAL, + HEALTHCHECK, SHELL, AS}, + keywordstyle=\color{blue}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{\#}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +% JavaScript nyelvdefiníció +\lstdefinelanguage{JavaScript}{ + keywords={typeof, new, true, false, catch, function, return, null, catch, + switch, var, const, let, if, in, while, do, else, case, break, async, + await, class, export, import, extends, super, this, throw, try, default}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +% YAML nyelvdefiníció +\lstdefinelanguage{yaml}{ + keywords={true,false,null,y,n}, + keywordstyle=\color{darkgray}\bfseries, + sensitive=false, + comment=[l]{\#}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]", + basicstyle=\ttfamily\scriptsize, + breaklines=true, + columns=fullflexible, + keepspaces=true, + showstringspaces=false +} + +\lstdefinestyle{HTML}{ + language=HTML, + breaklines=true, + postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space}, + stringstyle=\ttfamily, + inputencoding=utf8, + morekeywords={header, time, nav, main, article, section, aside, role, + footer, details, open, summary, srcdoc, list, datalist, placeholder, + pattern, required, min, max, step, enctype, formaction, formmethod, + formnovalidate, formtarget, output} +} + +\lstdefinestyle{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + breaklines=true, + columns=fullflexible, + keepspaces=true, + showstringspaces=false, + literate={} +} +\lstdefinestyle{NodeJS}{ + basicstyle=\ttfamily\scriptsize, + breaklines=true, + columns=fullflexible, + keepspaces=true, + showstringspaces=false, + literate={} +} +\lstdefinestyle{Express}{ + basicstyle=\ttfamily\scriptsize, + breaklines=true, + columns=fullflexible, + keepspaces=true, + showstringspaces=false, + literate={} +} +\lstdefinestyle{Prisma}{ + basicstyle=\ttfamily\scriptsize, + breaklines=true, + columns=fullflexible, + keepspaces=true, + showstringspaces=false, + literate={} +} +\usepackage{hyperref} +\usepackage{attachfile} +\usepackage{multirow} +% Navigációs pöttyök hozzáadása subsection nélküli fejezetekhez +\usepackage{remreset} +\makeatletter +\@removefromreset{subsection}{section} +\makeatother +\setcounter{subsection}{1} +%%%%% +\attachfilesetup{color={1.0 0.6 0.0},author={MD},description={Kattintson duplán a minta % +megtekintéséhez!},icon=Paperclip} +% Széchenyi Egyetem arculati színek +\definecolor{szenavy}{RGB}{44,62,80} % Sötét kék (fejléc) +\definecolor{szecyan}{RGB}{0,168,225} % Világos kék (kiemelés, logó) +\definecolor{szezold}{RGB}{139,195,74} % Élénk zöld (akcentus) +\definecolor{szeszurke}{RGB}{96,96,96} % Sötét szürke +% Kompatibilitás a régi parancsokkal +\definecolor{kiemelesszin}{RGB}{0,168,225} % Kék kiemelés (szecyan) +\definecolor{kiemelesszinZ}{RGB}{139,195,74} % Zöld kiemelés (szezold) +\definecolor{kiemelesszinN}{RGB}{44,62,80} % Navy kiemelés (szenavy) +\definecolor{hivatkozasszin}{RGB}{0,168,225} % Kék hivatkozás +\newcommand{\kiemel}[1]{{\color{kiemelesszin}#1}} +\newcommand{\kiemelZ}[1]{{\color{kiemelesszinZ}#1}} +\newcommand{\kiemelN}[1]{{\color{kiemelesszinN}#1}} +\newcommand{\hiv}[1]{{\color{hivatkozasszin}#1}} +\newcommand{\logoalul}{ + \begin{picture}(0,0) + \put(120,-0){\hbox{\includegraphics[scale=.5]{../common/sze_logo.pdf}}} + \put(205,-6){\hbox{\includegraphics[scale=.4]{../common/it_logo.pdf}}} + \end{picture} +} + +\frenchspacing +\usetheme[compress]{Berlin} +\useoutertheme[subsection=false]{miniframes} +\setbeamerfont{section in head/foot}{size=\tiny} +\setbeamerfont{subsection in head/foot}{size=\tiny} + +% Adaptív, kattintható navigáció: +% sok section esetén az aktuális marad nagy és szöveges, +% a többi section lekicsinyített sorszámként jelenik meg. +\newcommand{\sectioncompactthreshold}{11} +\makeatletter +\providecommand{\totalsectionscount}{0} +\AtEndDocument{% + \immediate\write\@auxout{\string\gdef\string\totalsectionscount{\arabic{section}}}% +} +\makeatother + +\setbeamertemplate{section in head/foot}{% + {\fontsize{6}{7}\selectfont\bfseries\insertsectionhead}% +} +\setbeamertemplate{section in head/foot shaded}{% + \ifnum\totalsectionscount>\sectioncompactthreshold + {\fontsize{4.5}{5.5}\selectfont\insertsectionheadnumber}% + \else + {\fontsize{5}{6}\selectfont\insertsectionhead}% + \fi +} +\setbeamertemplate{headline} +{ + \leavevmode% + \hbox{% + \begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex]{section in head/foot}% + \insertsectionnavigationhorizontal{\paperwidth}{}{\hskip0pt plus1filll} + \end{beamercolorbox}% + } + \vskip0pt% +} + +% Kisebb betűméret a slide-okhoz +\setbeamerfont{frametitle}{size=\normalsize} +\setbeamerfont{framesubtitle}{size=\small} +\setbeamerfont{block title}{size=\small} +\setbeamerfont{block body}{size=\footnotesize} +\setbeamerfont{itemize/enumerate body}{size=\footnotesize} +\setbeamerfont{itemize/enumerate subbody}{size=\scriptsize} + +% Beamer színséma testreszabása Széchenyi arculathoz +\setbeamercolor{structure}{fg=szecyan} +\setbeamercolor{palette primary}{bg=szenavy,fg=white} +\setbeamercolor{palette secondary}{bg=szecyan,fg=white} +\setbeamercolor{palette tertiary}{bg=szezold,fg=white} +\setbeamercolor{palette quaternary}{bg=szeszurke,fg=white} +\setbeamercolor{titlelike}{parent=palette primary} +\setbeamercolor{frametitle}{bg=szenavy,fg=white} +\setbeamercolor{frametitle right}{bg=szenavy} +\setbeamercolor{block title}{bg=szecyan,fg=white} +\setbeamercolor{block body}{bg=szecyan!10,fg=black} +\setbeamercolor{block title alerted}{bg=szezold,fg=white} +\setbeamercolor{block body alerted}{bg=szezold!10,fg=black} +\setbeamercolor{item}{fg=szecyan} +\setbeamercolor{subitem}{fg=szezold} + +\author{Magda Donát} +\institute{Széchenyi István Egyetem, Győr} +\date{\hiv{\href{https://git.mdnd-it.cc/Donat/GKNB_MSTM071}{https://git.mdnd-it.cc/Donat/GKNB_MSTM071}}\\ \today} diff --git a/Frontend_ppt/react_js/axios.tex b/Frontend_ppt/react_js/axios.tex new file mode 100644 index 0000000..e67cbf2 --- /dev/null +++ b/Frontend_ppt/react_js/axios.tex @@ -0,0 +1,37 @@ +\section{Adatlekérés} + +\begin{frame}{Hogyan kap adatot egy React alkalmazás?} + \begin{block}{Az alaphelyzet} + A React alkalmazás a böngészőben fut --- az adatok (felhasználók, termékek, stb.) általában egy \textbf{háttérszerveren} élnek. Az adatcserét HTTP kérésekkel végezzük: a frontend elküldi a kérést, a szerver JSON formátumban válaszol. + \end{block} + \vspace{0.5em} + \begin{itemize} + \item A böngésző beépített \texttt{fetch} API-ját vagy az \textbf{Axios} könyvtárat használhatjuk. + \item Az adatlekérést általában egy \texttt{useEffect}-ben indítjuk el --- amikor a komponens megjelenik. + \end{itemize} +\end{frame} + +\begin{frame}{Fetch vs.\ Axios} + \begin{itemize} + \item \textbf{Fetch:} beépített, nem kell telepíteni. Hátránya: a hibás HTTP kódokat (pl. 404) \emph{nem} dobja el automatikusan, JSON-t kézzel kell kezelni. + \item \textbf{Axios:} telepíthető könyvtár. Automatikusan kezeli a JSON-t, a HTTP hibákra kivételt dob, és \textbf{interceptorokkal} (pl. token hozzáadása minden kéréshez) könnyű kiegészíteni. + \item Nagyobb projekteknél az Axios általában kényelmesebb és biztonságosabb. + \end{itemize} +\end{frame} + +\begin{frame}{Állapotok az adatlekérés során} + \begin{itemize} + \item \textbf{Betöltés (loading):} amíg a kérés folyamatban van, mutassunk spinner-t vagy skeleton-t --- ne maradjon üres az oldal. + \item \textbf{Siker:} megérkeztek az adatok, megjelenítjük. + \item \textbf{Hiba (error):} a hálózat megszakadt, a szerver hibát adott --- barátságos hibaüzenetet mutassunk, ne csak üres felületet. + \item \textbf{Üres állapot (empty):} a válasz sikeres, de nincs adat --- pl. "Nincsenek még termékek". + \end{itemize} +\end{frame} + +\begin{frame}{Szerverállapot-kezelés: TanStack Query} + \begin{itemize} + \item Manuálisan kezelni a loading/error/data állapotokat minden komponensben ismétlődő és hibalehetőséges. + \item A \textbf{TanStack Query} (korábbi nevén React Query) ezt automatizálja: cache-eli az adatokat, háttérben frissíti, kezeli az újrapróbálkozást. + \item \textbf{Optimista frissítés:} azonnal frissítjük a UI-t a szerver válasza előtt --- ha a szerver hibát ad, visszaállítjuk. Így az alkalmazás gyorsabbnak tűnik. + \end{itemize} +\end{frame} diff --git a/Frontend_ppt/react_js/build_deploy.tex b/Frontend_ppt/react_js/build_deploy.tex new file mode 100644 index 0000000..2302c66 --- /dev/null +++ b/Frontend_ppt/react_js/build_deploy.tex @@ -0,0 +1,38 @@ +\section{Build \& Deploy} + +\begin{frame}{Mi történik a build folyamatban?} + \begin{block}{Build = el�'készítés az éles kiadásra} + Fejlesztés közben a kód sokszor nem optimális formában van --- sok fájl, olvasható változónevek, fejlesztői segédletek. A build folyamat ezeket átalakítja böngészőbarát, gyors formára. + \end{block} + \vspace{0.5em} + \begin{itemize} + \item \textbf{Minifikálás:} felesleges szóközök, kommentek eltávolítása, változónevek rövidítése --- kisebb fájlméret. + \item \textbf{Tree-shaking:} a nem használt kód kiszűrése a végleges csomagból. + \item \textbf{Kódfelosztás:} az alkalmazás több kisebb fájlra bontva töltődik --- csak ami kell, töltődik le. + \end{itemize} +\end{frame} + +\begin{frame}{Környezeti változók} + \begin{itemize} + \item Az alkalmazásnak fejlesztési és éles környezetben más beállításokra van szüksége (API URL, kulcsok stb.). + \item Ezeket \textbf{.env fájlokban} tároljuk --- a \texttt{.env.local} soha nem kerül Git-be (érzékeny adatok). + \item Vite-ban a \texttt{VITE\_} előtagú változók kerülnek a kliensoldali kódba --- a többi csak szerveroldalon érhető el. + \item \textbf{Figyelem:} titkos kulcsokat soha ne tegyük a kliensoldali kódba --- bárki láthatja! + \end{itemize} +\end{frame} + +\begin{frame}{Deploy lehet�'ségek} + \begin{itemize} + \item \textbf{Vercel, Netlify:} egy Git push-ra automatikusan deployol, ingyen elérhető próbaprojektekhez --- a legegyszerűbb indulás. + \item \textbf{GitHub Pages:} statikus oldalakhoz, nyílt forráskódú projektekhez kényelmes. + \item \textbf{Saját szerver / CDN:} Nginx-szel statikus fájlokat tálalunk; fontos az SPA fallback beállítása (minden URL-t az \texttt{index.html}-re irányítunk, a React Router veszi át). + \end{itemize} +\end{frame} + +\begin{frame}{Biztonsági alapok} + \begin{itemize} + \item \textbf{XSS (Cross-Site Scripting) elleni védelem:} a React alapból escape-eli a JSX-ben megjelenített szövegeket --- a \texttt{dangerouslySetInnerHTML} viszont kikerüli ezt, csak tisztított adattal szabad használni. + \item \textbf{Auth token kezelés:} a JWT-t ne \texttt{localStorage}-ban tároljuk --- JavaScript elérheti. HTTP-only cookie biztonságosabb, mert JavaScriptből nem olvasható. + \item \textbf{Hibamonitorozás:} éles alkalmazásban szükséges eszköz (pl. Sentry), hogy a felhasználóknál fellépő hibákról értesüljünk. + \end{itemize} +\end{frame} diff --git a/Frontend_ppt/react_js/components.tex b/Frontend_ppt/react_js/components.tex new file mode 100644 index 0000000..f7116f4 --- /dev/null +++ b/Frontend_ppt/react_js/components.tex @@ -0,0 +1,53 @@ +\section{Komponensek} + +\begin{frame}{Mi az a komponens?} + \begin{block}{Analógia: LEGO kockák} + Képzeljük el, hogy a weboldalunk LEGO-ból épül. Minden egyes „kocka" egy önálló, újrafelhasználható egység --- ezt nevezzük \textbf{komponensnek}. + \end{block} + \vspace{0.5em} + \begin{itemize} + \item Egy komponens egy JavaScript \textbf{függvény}, amely JSX-et ad vissza --- leírja, mit jelenítsen meg. + \item A teljes oldal komponensek fájából áll: van egy gyökér (\texttt{App}), abból nőnek ki az alkomponensek. + \item Például: \texttt{

}, \texttt{}, \texttt{