├── .gitignore ├── backup_remastered.sql └── hrms ├── .gitignore ├── human-resource-icon-8.jpg ├── mvnw ├── mvnw.cmd ├── pom.xml └── src └── main ├── java └── com │ └── kodlama │ └── io │ └── hrms │ ├── HrmsApplication.java │ ├── api │ └── controllers │ │ ├── EmployeeJobAdvertisementFavoritesController.java │ │ ├── EmployeesController.java │ │ ├── EmployerUpdateRequestsController.java │ │ ├── EmployersController.java │ │ ├── JobAdvertisementsController.java │ │ ├── JobPositionsController.java │ │ ├── ResumeesController.java │ │ ├── SchoolDepartmentsController.java │ │ ├── SystemUsersController.java │ │ └── UsersController.java │ ├── business │ ├── abstracts │ │ ├── CityService.java │ │ ├── EmployeeJobAdvertisementFavoriteService.java │ │ ├── EmployeeSchoolDepartmentService.java │ │ ├── EmployeeService.java │ │ ├── EmployerService.java │ │ ├── EmployerUpdateRequestService.java │ │ ├── ForeignLanguageService.java │ │ ├── JobAdvertisementService.java │ │ ├── JobExperienceService.java │ │ ├── JobPositionService.java │ │ ├── ResumeForeignLanguageService.java │ │ ├── ResumeService.java │ │ ├── ResumeSkillService.java │ │ ├── SchoolDepartmentService.java │ │ ├── SkillService.java │ │ ├── SystemUserService.java │ │ └── UserService.java │ └── concretes │ │ ├── CityManager.java │ │ ├── EmployeeJobAdvertisementFavoriteManager.java │ │ ├── EmployeeManager.java │ │ ├── EmployeeSchoolDepartmentManager.java │ │ ├── EmployerManager.java │ │ ├── EmployerUpdateRequestManager.java │ │ ├── ForeignLanguageManager.java │ │ ├── JobAdvertisementManager.java │ │ ├── JobExperienceManager.java │ │ ├── JobPositionManager.java │ │ ├── ResumeForeignLanguageManager.java │ │ ├── ResumeManager.java │ │ ├── ResumeSkillManager.java │ │ ├── SchoolDepartmentManager.java │ │ ├── SkillManager.java │ │ ├── SystemUserManager.java │ │ └── UserManager.java │ ├── core │ └── utilities │ │ ├── IdentityValidationService.java │ │ ├── MernisServiceAdapter.java │ │ ├── business │ │ └── BusinessRules.java │ │ ├── files │ │ ├── CloudinaryFileManager.java │ │ └── FileService.java │ │ ├── mail │ │ ├── EmailManager.java │ │ └── EmailService.java │ │ └── results │ │ ├── DataResult.java │ │ ├── ErrorDataResult.java │ │ ├── ErrorResult.java │ │ ├── Result.java │ │ ├── SuccessDataResult.java │ │ └── SuccessResult.java │ ├── dataAccess │ └── abstracts │ │ ├── CityDao.java │ │ ├── EmployeeDao.java │ │ ├── EmployeeJobAdvertisementFavoriteDao.java │ │ ├── EmployeeSchoolDepartmentDao.java │ │ ├── EmployerDao.java │ │ ├── EmployerUpdateRequestDao.java │ │ ├── ForeignLanguageDao.java │ │ ├── JobAdvertisementDao.java │ │ ├── JobExperienceDao.java │ │ ├── JobPositionDao.java │ │ ├── ResumeDao.java │ │ ├── ResumeForeignLanguageDao.java │ │ ├── ResumeSkillDao.java │ │ ├── SchoolDepartmentDao.java │ │ ├── SkillDao.java │ │ ├── SystemUserDao.java │ │ └── UserDao.java │ └── entities │ ├── concretes │ ├── City.java │ ├── Employee.java │ ├── EmployeeJobAdvertisementFavorite.java │ ├── EmployeeSchoolDepartment.java │ ├── Employer.java │ ├── EmployerUpdateRequest.java │ ├── ForeignLanguage.java │ ├── JobAdvertisement.java │ ├── JobAdvertisementWorkingTime.java │ ├── JobAdvertisementWorkingType.java │ ├── JobExperience.java │ ├── JobPosition.java │ ├── Resume.java │ ├── ResumeForeignLanguage.java │ ├── ResumeSkill.java │ ├── School.java │ ├── SchoolDepartment.java │ ├── Skill.java │ ├── SystemUser.java │ └── User.java │ └── dtos │ ├── EmployeeForLoginDto.java │ ├── EmployeeForRegisterDto.java │ ├── EmployerForLoginDto.java │ ├── EmployerForRegisterDto.java │ ├── EmployerUpdateRequestForAddDto.java │ ├── ForeignLanguageDetailsDto.java │ ├── ForeignLanguageForAddDto.java │ ├── JobAdvertisementFavoriteToToggleDto.java │ ├── JobAdvertisementForAddDto.java │ ├── JobAdvertisementForListingDto.java │ ├── JobAdvertisementWithPagingDto.java │ ├── JobExperienceForAddDto.java │ ├── JobPositionForListingDto.java │ ├── ResumeForAddDto.java │ ├── ResumeWithDetailsDto.java │ ├── SchoolDepartmentDetailsDto.java │ ├── SchoolDepartmentForAddDto.java │ ├── SkillDetailsDto.java │ └── SkillForAddDto.java └── resources └── application.properties /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.jar 15 | *.war 16 | *.nar 17 | *.ear 18 | *.zip 19 | *.tar.gz 20 | *.rar 21 | 22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 23 | hs_err_pid* 24 | 25 | # Eclipse 26 | .classpath 27 | .project 28 | .settings/ 29 | /.metadata/ 30 | .metadata/ 31 | .metadata 32 | **/metadata/* 33 | .mvn 34 | .test/ 35 | test/ -------------------------------------------------------------------------------- /backup_remastered.sql: -------------------------------------------------------------------------------- 1 | -- 2 | -- PostgreSQL database dump 3 | -- 4 | 5 | -- Dumped from database version 13.2 6 | -- Dumped by pg_dump version 13.2 7 | 8 | -- Started on 2021-05-10 00:23:01 9 | 10 | SET statement_timeout = 0; 11 | SET lock_timeout = 0; 12 | SET idle_in_transaction_session_timeout = 0; 13 | SET client_encoding = 'UTF8'; 14 | SET standard_conforming_strings = on; 15 | SELECT pg_catalog.set_config('search_path', '', false); 16 | SET check_function_bodies = false; 17 | SET xmloption = content; 18 | SET client_min_messages = warning; 19 | SET row_security = off; 20 | 21 | DROP DATABASE "HRMS"; 22 | -- 23 | -- TOC entry 3036 (class 1262 OID 17377) 24 | -- Name: HRMS; Type: DATABASE; Schema: -; Owner: postgres 25 | -- 26 | 27 | CREATE DATABASE "HRMS" WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE = 'Turkish_Turkey.1254'; 28 | 29 | 30 | ALTER DATABASE "HRMS" OWNER TO postgres; 31 | 32 | \connect "HRMS" 33 | 34 | SET statement_timeout = 0; 35 | SET lock_timeout = 0; 36 | SET idle_in_transaction_session_timeout = 0; 37 | SET client_encoding = 'UTF8'; 38 | SET standard_conforming_strings = on; 39 | SELECT pg_catalog.set_config('search_path', '', false); 40 | SET check_function_bodies = false; 41 | SET xmloption = content; 42 | SET client_min_messages = warning; 43 | SET row_security = off; 44 | 45 | SET default_tablespace = ''; 46 | 47 | SET default_table_access_method = heap; 48 | 49 | -- 50 | -- TOC entry 200 (class 1259 OID 17378) 51 | -- Name: employees; Type: TABLE; Schema: public; Owner: postgres 52 | -- 53 | 54 | CREATE TABLE public.employees ( 55 | "UserId" integer NOT NULL, 56 | "FirstName" character varying(50) NOT NULL, 57 | "LastName" character varying(50) NOT NULL, 58 | "NationalityId" character(11) NOT NULL, 59 | "BirthOfDate" date NOT NULL 60 | ); 61 | 62 | 63 | ALTER TABLE public.employees OWNER TO postgres; 64 | 65 | -- 66 | -- TOC entry 201 (class 1259 OID 17381) 67 | -- Name: employers; Type: TABLE; Schema: public; Owner: postgres 68 | -- 69 | 70 | CREATE TABLE public.employers ( 71 | "UserId" integer NOT NULL, 72 | "CompanyName" character varying(100) NOT NULL, 73 | "Phone" character(12) NOT NULL, 74 | "VerifiedBySystem" boolean NOT NULL, 75 | "Website" character varying(100) NOT NULL 76 | ); 77 | 78 | 79 | ALTER TABLE public.employers OWNER TO postgres; 80 | 81 | -- 82 | -- TOC entry 207 (class 1259 OID 17442) 83 | -- Name: hibernate_sequence; Type: SEQUENCE; Schema: public; Owner: postgres 84 | -- 85 | 86 | CREATE SEQUENCE public.hibernate_sequence 87 | START WITH 1 88 | INCREMENT BY 1 89 | NO MINVALUE 90 | NO MAXVALUE 91 | CACHE 1; 92 | 93 | 94 | ALTER TABLE public.hibernate_sequence OWNER TO postgres; 95 | 96 | -- 97 | -- TOC entry 202 (class 1259 OID 17384) 98 | -- Name: jobpositions; Type: TABLE; Schema: public; Owner: postgres 99 | -- 100 | 101 | CREATE TABLE public.jobpositions ( 102 | "Id" integer NOT NULL, 103 | "PositionName" character varying NOT NULL 104 | ); 105 | 106 | 107 | ALTER TABLE public.jobpositions OWNER TO postgres; 108 | 109 | -- 110 | -- TOC entry 203 (class 1259 OID 17390) 111 | -- Name: jobpositions_Id_seq; Type: SEQUENCE; Schema: public; Owner: postgres 112 | -- 113 | 114 | ALTER TABLE public.jobpositions ALTER COLUMN "Id" ADD GENERATED ALWAYS AS IDENTITY ( 115 | SEQUENCE NAME public."jobpositions_Id_seq" 116 | START WITH 1 117 | INCREMENT BY 1 118 | NO MINVALUE 119 | NO MAXVALUE 120 | CACHE 1 121 | ); 122 | 123 | 124 | -- 125 | -- TOC entry 204 (class 1259 OID 17392) 126 | -- Name: systemusers; Type: TABLE; Schema: public; Owner: postgres 127 | -- 128 | 129 | CREATE TABLE public.systemusers ( 130 | "UserId" integer NOT NULL, 131 | "Roles" character varying NOT NULL 132 | ); 133 | 134 | 135 | ALTER TABLE public.systemusers OWNER TO postgres; 136 | 137 | -- 138 | -- TOC entry 205 (class 1259 OID 17398) 139 | -- Name: users; Type: TABLE; Schema: public; Owner: postgres 140 | -- 141 | 142 | CREATE TABLE public.users ( 143 | "Id" integer NOT NULL, 144 | "Email" character varying(100) NOT NULL, 145 | "Password" character varying NOT NULL, 146 | "EmailVerified" boolean DEFAULT false NOT NULL 147 | ); 148 | 149 | 150 | ALTER TABLE public.users OWNER TO postgres; 151 | 152 | -- 153 | -- TOC entry 206 (class 1259 OID 17405) 154 | -- Name: users_Id_seq; Type: SEQUENCE; Schema: public; Owner: postgres 155 | -- 156 | 157 | ALTER TABLE public.users ALTER COLUMN "Id" ADD GENERATED ALWAYS AS IDENTITY ( 158 | SEQUENCE NAME public."users_Id_seq" 159 | START WITH 1 160 | INCREMENT BY 1 161 | NO MINVALUE 162 | NO MAXVALUE 163 | CACHE 1 164 | ); 165 | 166 | 167 | -- 168 | -- TOC entry 3023 (class 0 OID 17378) 169 | -- Dependencies: 200 170 | -- Data for Name: employees; Type: TABLE DATA; Schema: public; Owner: postgres 171 | -- 172 | 173 | INSERT INTO public.employees ("UserId", "FirstName", "LastName", "NationalityId", "BirthOfDate") VALUES (1, 'Halit Enes', 'KALAYCI', '12345678901', '2000-06-28'); 174 | 175 | 176 | -- 177 | -- TOC entry 3024 (class 0 OID 17381) 178 | -- Dependencies: 201 179 | -- Data for Name: employers; Type: TABLE DATA; Schema: public; Owner: postgres 180 | -- 181 | 182 | INSERT INTO public.employers ("UserId", "CompanyName", "Phone", "VerifiedBySystem", "Website") VALUES (2, 'kodlamaio', '905123456789', false, 'www.kodlama.io'); 183 | 184 | 185 | -- 186 | -- TOC entry 3025 (class 0 OID 17384) 187 | -- Dependencies: 202 188 | -- Data for Name: jobpositions; Type: TABLE DATA; Schema: public; Owner: postgres 189 | -- 190 | 191 | INSERT INTO public.jobpositions ("Id", "PositionName") OVERRIDING SYSTEM VALUE VALUES (1, 'Software Developer'); 192 | 193 | 194 | -- 195 | -- TOC entry 3027 (class 0 OID 17392) 196 | -- Dependencies: 204 197 | -- Data for Name: systemusers; Type: TABLE DATA; Schema: public; Owner: postgres 198 | -- 199 | 200 | INSERT INTO public.systemusers ("UserId", "Roles") VALUES (3, 'sysadmin'); 201 | 202 | 203 | -- 204 | -- TOC entry 3028 (class 0 OID 17398) 205 | -- Dependencies: 205 206 | -- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: postgres 207 | -- 208 | 209 | INSERT INTO public.users ("Id", "Email", "Password", "EmailVerified") OVERRIDING SYSTEM VALUE VALUES (1, 'halitenes.kalayci@gmail.com', '1234', false); 210 | INSERT INTO public.users ("Id", "Email", "Password", "EmailVerified") OVERRIDING SYSTEM VALUE VALUES (2, 'engindemirog@kodlama.io', '12345', false); 211 | INSERT INTO public.users ("Id", "Email", "Password", "EmailVerified") OVERRIDING SYSTEM VALUE VALUES (3, 'denemesistem@gmail.com', '12345', true); 212 | 213 | 214 | -- 215 | -- TOC entry 3037 (class 0 OID 0) 216 | -- Dependencies: 207 217 | -- Name: hibernate_sequence; Type: SEQUENCE SET; Schema: public; Owner: postgres 218 | -- 219 | 220 | SELECT pg_catalog.setval('public.hibernate_sequence', 1, false); 221 | 222 | 223 | -- 224 | -- TOC entry 3038 (class 0 OID 0) 225 | -- Dependencies: 203 226 | -- Name: jobpositions_Id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres 227 | -- 228 | 229 | SELECT pg_catalog.setval('public."jobpositions_Id_seq"', 1, true); 230 | 231 | 232 | -- 233 | -- TOC entry 3039 (class 0 OID 0) 234 | -- Dependencies: 206 235 | -- Name: users_Id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres 236 | -- 237 | 238 | SELECT pg_catalog.setval('public."users_Id_seq"', 3, true); 239 | 240 | 241 | -- 242 | -- TOC entry 2887 (class 2606 OID 17408) 243 | -- Name: users Email; Type: CONSTRAINT; Schema: public; Owner: postgres 244 | -- 245 | 246 | ALTER TABLE ONLY public.users 247 | ADD CONSTRAINT "Email" UNIQUE ("Email"); 248 | 249 | 250 | -- 251 | -- TOC entry 2881 (class 2606 OID 17410) 252 | -- Name: jobpositions Id; Type: CONSTRAINT; Schema: public; Owner: postgres 253 | -- 254 | 255 | ALTER TABLE ONLY public.jobpositions 256 | ADD CONSTRAINT "Id" PRIMARY KEY ("Id"); 257 | 258 | 259 | -- 260 | -- TOC entry 2883 (class 2606 OID 17412) 261 | -- Name: jobpositions PositionName; Type: CONSTRAINT; Schema: public; Owner: postgres 262 | -- 263 | 264 | ALTER TABLE ONLY public.jobpositions 265 | ADD CONSTRAINT "PositionName" UNIQUE ("PositionName"); 266 | 267 | 268 | -- 269 | -- TOC entry 2875 (class 2606 OID 17414) 270 | -- Name: employees TCKN; Type: CONSTRAINT; Schema: public; Owner: postgres 271 | -- 272 | 273 | ALTER TABLE ONLY public.employees 274 | ADD CONSTRAINT "TCKN" UNIQUE ("NationalityId"); 275 | 276 | 277 | -- 278 | -- TOC entry 2877 (class 2606 OID 17470) 279 | -- Name: employees employees_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres 280 | -- 281 | 282 | ALTER TABLE ONLY public.employees 283 | ADD CONSTRAINT employees_pkey PRIMARY KEY ("UserId"); 284 | 285 | 286 | -- 287 | -- TOC entry 2879 (class 2606 OID 17472) 288 | -- Name: employers employers_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres 289 | -- 290 | 291 | ALTER TABLE ONLY public.employers 292 | ADD CONSTRAINT employers_pkey PRIMARY KEY ("UserId"); 293 | 294 | 295 | -- 296 | -- TOC entry 2885 (class 2606 OID 17474) 297 | -- Name: systemusers systemusers_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres 298 | -- 299 | 300 | ALTER TABLE ONLY public.systemusers 301 | ADD CONSTRAINT systemusers_pkey PRIMARY KEY ("UserId"); 302 | 303 | 304 | -- 305 | -- TOC entry 2889 (class 2606 OID 17416) 306 | -- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres 307 | -- 308 | 309 | ALTER TABLE ONLY public.users 310 | ADD CONSTRAINT users_pkey PRIMARY KEY ("Id"); 311 | 312 | 313 | -- 314 | -- TOC entry 2890 (class 2606 OID 17417) 315 | -- Name: employees UserId; Type: FK CONSTRAINT; Schema: public; Owner: postgres 316 | -- 317 | 318 | ALTER TABLE ONLY public.employees 319 | ADD CONSTRAINT "UserId" FOREIGN KEY ("UserId") REFERENCES public.users("Id"); 320 | 321 | 322 | -- 323 | -- TOC entry 2891 (class 2606 OID 17422) 324 | -- Name: employers UserId; Type: FK CONSTRAINT; Schema: public; Owner: postgres 325 | -- 326 | 327 | ALTER TABLE ONLY public.employers 328 | ADD CONSTRAINT "UserId" FOREIGN KEY ("UserId") REFERENCES public.users("Id"); 329 | 330 | 331 | -- 332 | -- TOC entry 2892 (class 2606 OID 17427) 333 | -- Name: systemusers UserId; Type: FK CONSTRAINT; Schema: public; Owner: postgres 334 | -- 335 | 336 | ALTER TABLE ONLY public.systemusers 337 | ADD CONSTRAINT "UserId" FOREIGN KEY ("UserId") REFERENCES public.users("Id"); 338 | 339 | 340 | -- Completed on 2021-05-10 00:23:02 341 | 342 | -- 343 | -- PostgreSQL database dump complete 344 | -- 345 | 346 | -------------------------------------------------------------------------------- /hrms/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | 35 | 36 | 37 | .classpath 38 | .project 39 | .settings/ 40 | /.metadata/ 41 | .metadata/ 42 | .metadata 43 | **/metadata/* 44 | .mvn 45 | .test/ 46 | test/ 47 | -------------------------------------------------------------------------------- /hrms/human-resource-icon-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/halitkalayci/JavaHRMS/db1cd98141d7232bf2cffb5dd0467d4d9cfb8d07/hrms/human-resource-icon-8.jpg -------------------------------------------------------------------------------- /hrms/mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # https://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home 58 | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html 59 | if [ -z "$JAVA_HOME" ]; then 60 | if [ -x "/usr/libexec/java_home" ]; then 61 | export JAVA_HOME="`/usr/libexec/java_home`" 62 | else 63 | export JAVA_HOME="/Library/Java/Home" 64 | fi 65 | fi 66 | ;; 67 | esac 68 | 69 | if [ -z "$JAVA_HOME" ] ; then 70 | if [ -r /etc/gentoo-release ] ; then 71 | JAVA_HOME=`java-config --jre-home` 72 | fi 73 | fi 74 | 75 | if [ -z "$M2_HOME" ] ; then 76 | ## resolve links - $0 may be a link to maven's home 77 | PRG="$0" 78 | 79 | # need this for relative symlinks 80 | while [ -h "$PRG" ] ; do 81 | ls=`ls -ld "$PRG"` 82 | link=`expr "$ls" : '.*-> \(.*\)$'` 83 | if expr "$link" : '/.*' > /dev/null; then 84 | PRG="$link" 85 | else 86 | PRG="`dirname "$PRG"`/$link" 87 | fi 88 | done 89 | 90 | saveddir=`pwd` 91 | 92 | M2_HOME=`dirname "$PRG"`/.. 93 | 94 | # make it fully qualified 95 | M2_HOME=`cd "$M2_HOME" && pwd` 96 | 97 | cd "$saveddir" 98 | # echo Using m2 at $M2_HOME 99 | fi 100 | 101 | # For Cygwin, ensure paths are in UNIX format before anything is touched 102 | if $cygwin ; then 103 | [ -n "$M2_HOME" ] && 104 | M2_HOME=`cygpath --unix "$M2_HOME"` 105 | [ -n "$JAVA_HOME" ] && 106 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 107 | [ -n "$CLASSPATH" ] && 108 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 109 | fi 110 | 111 | # For Mingw, ensure paths are in UNIX format before anything is touched 112 | if $mingw ; then 113 | [ -n "$M2_HOME" ] && 114 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 115 | [ -n "$JAVA_HOME" ] && 116 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 117 | fi 118 | 119 | if [ -z "$JAVA_HOME" ]; then 120 | javaExecutable="`which javac`" 121 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 122 | # readlink(1) is not available as standard on Solaris 10. 123 | readLink=`which readlink` 124 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 125 | if $darwin ; then 126 | javaHome="`dirname \"$javaExecutable\"`" 127 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 128 | else 129 | javaExecutable="`readlink -f \"$javaExecutable\"`" 130 | fi 131 | javaHome="`dirname \"$javaExecutable\"`" 132 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 133 | JAVA_HOME="$javaHome" 134 | export JAVA_HOME 135 | fi 136 | fi 137 | fi 138 | 139 | if [ -z "$JAVACMD" ] ; then 140 | if [ -n "$JAVA_HOME" ] ; then 141 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 142 | # IBM's JDK on AIX uses strange locations for the executables 143 | JAVACMD="$JAVA_HOME/jre/sh/java" 144 | else 145 | JAVACMD="$JAVA_HOME/bin/java" 146 | fi 147 | else 148 | JAVACMD="`which java`" 149 | fi 150 | fi 151 | 152 | if [ ! -x "$JAVACMD" ] ; then 153 | echo "Error: JAVA_HOME is not defined correctly." >&2 154 | echo " We cannot execute $JAVACMD" >&2 155 | exit 1 156 | fi 157 | 158 | if [ -z "$JAVA_HOME" ] ; then 159 | echo "Warning: JAVA_HOME environment variable is not set." 160 | fi 161 | 162 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 163 | 164 | # traverses directory structure from process work directory to filesystem root 165 | # first directory with .mvn subdirectory is considered project base directory 166 | find_maven_basedir() { 167 | 168 | if [ -z "$1" ] 169 | then 170 | echo "Path not specified to find_maven_basedir" 171 | return 1 172 | fi 173 | 174 | basedir="$1" 175 | wdir="$1" 176 | while [ "$wdir" != '/' ] ; do 177 | if [ -d "$wdir"/.mvn ] ; then 178 | basedir=$wdir 179 | break 180 | fi 181 | # workaround for JBEAP-8937 (on Solaris 10/Sparc) 182 | if [ -d "${wdir}" ]; then 183 | wdir=`cd "$wdir/.."; pwd` 184 | fi 185 | # end of workaround 186 | done 187 | echo "${basedir}" 188 | } 189 | 190 | # concatenates all lines of a file 191 | concat_lines() { 192 | if [ -f "$1" ]; then 193 | echo "$(tr -s '\n' ' ' < "$1")" 194 | fi 195 | } 196 | 197 | BASE_DIR=`find_maven_basedir "$(pwd)"` 198 | if [ -z "$BASE_DIR" ]; then 199 | exit 1; 200 | fi 201 | 202 | ########################################################################################## 203 | # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 204 | # This allows using the maven wrapper in projects that prohibit checking in binary data. 205 | ########################################################################################## 206 | if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then 207 | if [ "$MVNW_VERBOSE" = true ]; then 208 | echo "Found .mvn/wrapper/maven-wrapper.jar" 209 | fi 210 | else 211 | if [ "$MVNW_VERBOSE" = true ]; then 212 | echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." 213 | fi 214 | if [ -n "$MVNW_REPOURL" ]; then 215 | jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" 216 | else 217 | jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" 218 | fi 219 | while IFS="=" read key value; do 220 | case "$key" in (wrapperUrl) jarUrl="$value"; break ;; 221 | esac 222 | done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" 223 | if [ "$MVNW_VERBOSE" = true ]; then 224 | echo "Downloading from: $jarUrl" 225 | fi 226 | wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" 227 | if $cygwin; then 228 | wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` 229 | fi 230 | 231 | if command -v wget > /dev/null; then 232 | if [ "$MVNW_VERBOSE" = true ]; then 233 | echo "Found wget ... using wget" 234 | fi 235 | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then 236 | wget "$jarUrl" -O "$wrapperJarPath" 237 | else 238 | wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" 239 | fi 240 | elif command -v curl > /dev/null; then 241 | if [ "$MVNW_VERBOSE" = true ]; then 242 | echo "Found curl ... using curl" 243 | fi 244 | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then 245 | curl -o "$wrapperJarPath" "$jarUrl" -f 246 | else 247 | curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f 248 | fi 249 | 250 | else 251 | if [ "$MVNW_VERBOSE" = true ]; then 252 | echo "Falling back to using Java to download" 253 | fi 254 | javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" 255 | # For Cygwin, switch paths to Windows format before running javac 256 | if $cygwin; then 257 | javaClass=`cygpath --path --windows "$javaClass"` 258 | fi 259 | if [ -e "$javaClass" ]; then 260 | if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then 261 | if [ "$MVNW_VERBOSE" = true ]; then 262 | echo " - Compiling MavenWrapperDownloader.java ..." 263 | fi 264 | # Compiling the Java class 265 | ("$JAVA_HOME/bin/javac" "$javaClass") 266 | fi 267 | if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then 268 | # Running the downloader 269 | if [ "$MVNW_VERBOSE" = true ]; then 270 | echo " - Running MavenWrapperDownloader.java ..." 271 | fi 272 | ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") 273 | fi 274 | fi 275 | fi 276 | fi 277 | ########################################################################################## 278 | # End of extension 279 | ########################################################################################## 280 | 281 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} 282 | if [ "$MVNW_VERBOSE" = true ]; then 283 | echo $MAVEN_PROJECTBASEDIR 284 | fi 285 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 286 | 287 | # For Cygwin, switch paths to Windows format before running java 288 | if $cygwin; then 289 | [ -n "$M2_HOME" ] && 290 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 291 | [ -n "$JAVA_HOME" ] && 292 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 293 | [ -n "$CLASSPATH" ] && 294 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 295 | [ -n "$MAVEN_PROJECTBASEDIR" ] && 296 | MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` 297 | fi 298 | 299 | # Provide a "standardized" way to retrieve the CLI args that will 300 | # work with both Windows and non-Windows executions. 301 | MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" 302 | export MAVEN_CMD_LINE_ARGS 303 | 304 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 305 | 306 | exec "$JAVACMD" \ 307 | $MAVEN_OPTS \ 308 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 309 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 310 | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" 311 | -------------------------------------------------------------------------------- /hrms/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM https://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM set title of command window 39 | title %0 40 | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' 41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 42 | 43 | @REM set %HOME% to equivalent of $HOME 44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 45 | 46 | @REM Execute a user defined script before this one 47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 51 | :skipRcPre 52 | 53 | @setlocal 54 | 55 | set ERROR_CODE=0 56 | 57 | @REM To isolate internal variables from possible post scripts, we use another setlocal 58 | @setlocal 59 | 60 | @REM ==== START VALIDATION ==== 61 | if not "%JAVA_HOME%" == "" goto OkJHome 62 | 63 | echo. 64 | echo Error: JAVA_HOME not found in your environment. >&2 65 | echo Please set the JAVA_HOME variable in your environment to match the >&2 66 | echo location of your Java installation. >&2 67 | echo. 68 | goto error 69 | 70 | :OkJHome 71 | if exist "%JAVA_HOME%\bin\java.exe" goto init 72 | 73 | echo. 74 | echo Error: JAVA_HOME is set to an invalid directory. >&2 75 | echo JAVA_HOME = "%JAVA_HOME%" >&2 76 | echo Please set the JAVA_HOME variable in your environment to match the >&2 77 | echo location of your Java installation. >&2 78 | echo. 79 | goto error 80 | 81 | @REM ==== END VALIDATION ==== 82 | 83 | :init 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" 121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 122 | 123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" 124 | 125 | FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( 126 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 127 | ) 128 | 129 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 130 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data. 131 | if exist %WRAPPER_JAR% ( 132 | if "%MVNW_VERBOSE%" == "true" ( 133 | echo Found %WRAPPER_JAR% 134 | ) 135 | ) else ( 136 | if not "%MVNW_REPOURL%" == "" ( 137 | SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" 138 | ) 139 | if "%MVNW_VERBOSE%" == "true" ( 140 | echo Couldn't find %WRAPPER_JAR%, downloading it ... 141 | echo Downloading from: %DOWNLOAD_URL% 142 | ) 143 | 144 | powershell -Command "&{"^ 145 | "$webclient = new-object System.Net.WebClient;"^ 146 | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ 147 | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ 148 | "}"^ 149 | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ 150 | "}" 151 | if "%MVNW_VERBOSE%" == "true" ( 152 | echo Finished downloading %WRAPPER_JAR% 153 | ) 154 | ) 155 | @REM End of extension 156 | 157 | @REM Provide a "standardized" way to retrieve the CLI args that will 158 | @REM work with both Windows and non-Windows executions. 159 | set MAVEN_CMD_LINE_ARGS=%* 160 | 161 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* 162 | if ERRORLEVEL 1 goto error 163 | goto end 164 | 165 | :error 166 | set ERROR_CODE=1 167 | 168 | :end 169 | @endlocal & set ERROR_CODE=%ERROR_CODE% 170 | 171 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 172 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 173 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 174 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 175 | :skipRcPost 176 | 177 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 178 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 179 | 180 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 181 | 182 | exit /B %ERROR_CODE% 183 | -------------------------------------------------------------------------------- /hrms/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.4.5 9 | 10 | 11 | com.kodlama.io 12 | hrms 13 | 0.0.1-SNAPSHOT 14 | hrms 15 | Human Resources Management Systems 16 | 17 | 11 18 | 19 | 20 | 21 | org.springframework.boot 22 | spring-boot-starter-data-jpa 23 | 24 | 25 | org.springframework.boot 26 | spring-boot-starter-web 27 | 28 | 29 | 30 | org.springframework.boot 31 | spring-boot-devtools 32 | runtime 33 | true 34 | 35 | 36 | org.postgresql 37 | postgresql 38 | runtime 39 | 40 | 41 | 42 | org.projectlombok 43 | lombok 44 | true 45 | 46 | 47 | org.springframework.boot 48 | spring-boot-starter-test 49 | test 50 | 51 | 52 | io.springfox 53 | springfox-swagger2 54 | 2.9.2 55 | 56 | 57 | io.springfox 58 | springfox-swagger-ui 59 | 2.9.2 60 | 61 | 62 | 63 | org.springframework.boot 64 | spring-boot-starter-mail 65 | 66 | 67 | org.springframework.boot 68 | spring-boot-starter-validation 69 | 70 | 71 | com.cloudinary 72 | cloudinary-http44 73 | 1.17.0 74 | 75 | 76 | 77 | 78 | 79 | 80 | org.springframework.boot 81 | spring-boot-maven-plugin 82 | 83 | 84 | 85 | org.projectlombok 86 | lombok 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/HrmsApplication.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms; 2 | 3 | 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.context.annotation.Bean; 7 | 8 | 9 | 10 | import springfox.documentation.builders.PathSelectors; 11 | import springfox.documentation.builders.RequestHandlerSelectors; 12 | import springfox.documentation.spi.DocumentationType; 13 | import springfox.documentation.spring.web.plugins.Docket; 14 | import springfox.documentation.swagger2.annotations.EnableSwagger2; 15 | 16 | @SpringBootApplication 17 | @EnableSwagger2 18 | public class HrmsApplication { 19 | 20 | public static void main(String[] args) { 21 | SpringApplication.run(HrmsApplication.class, args); 22 | } 23 | 24 | @Bean 25 | public Docket api() { 26 | return new Docket(DocumentationType.SWAGGER_2) 27 | .select() 28 | .apis(RequestHandlerSelectors.basePackage("com.kodlama.io.hrms")) 29 | .paths(PathSelectors.any()) 30 | .build(); 31 | } 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/EmployeeJobAdvertisementFavoritesController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.CrossOrigin; 7 | import org.springframework.web.bind.annotation.GetMapping; 8 | import org.springframework.web.bind.annotation.PostMapping; 9 | import org.springframework.web.bind.annotation.RequestBody; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | import org.springframework.web.bind.annotation.RestController; 12 | 13 | import com.kodlama.io.hrms.business.abstracts.EmployeeJobAdvertisementFavoriteService; 14 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 15 | import com.kodlama.io.hrms.core.utilities.results.Result; 16 | import com.kodlama.io.hrms.entities.concretes.EmployeeJobAdvertisementFavorite; 17 | import com.kodlama.io.hrms.entities.dtos.JobAdvertisementFavoriteToToggleDto; 18 | 19 | @RestController 20 | @RequestMapping("/api/employeeJobAdFavorites") 21 | @CrossOrigin 22 | public class EmployeeJobAdvertisementFavoritesController { 23 | 24 | private EmployeeJobAdvertisementFavoriteService employeeJobAdvertisementFavoriteService; 25 | @Autowired 26 | public EmployeeJobAdvertisementFavoritesController( 27 | EmployeeJobAdvertisementFavoriteService employeeJobAdvertisementFavoriteService) { 28 | super(); 29 | this.employeeJobAdvertisementFavoriteService = employeeJobAdvertisementFavoriteService; 30 | } 31 | 32 | @GetMapping("/getByUserId") 33 | public DataResult> getByUserId(int id){ 34 | return employeeJobAdvertisementFavoriteService.getByEmployeeId(id); 35 | } 36 | @PostMapping("/addToFavorites") 37 | public Result addToFavorites(@RequestBody JobAdvertisementFavoriteToToggleDto jobAdvertisementAddToFavoriteDto) { 38 | return employeeJobAdvertisementFavoriteService.addNew(jobAdvertisementAddToFavoriteDto); 39 | } 40 | @PostMapping("/removeFromFavorites") 41 | public Result removeFromFavorites(@RequestBody JobAdvertisementFavoriteToToggleDto jobAdvertisementAddToFavoriteDto) { 42 | return employeeJobAdvertisementFavoriteService.remove(jobAdvertisementAddToFavoriteDto); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/EmployeesController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import javax.validation.Valid; 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.http.ResponseEntity; 9 | import org.springframework.web.bind.annotation.CrossOrigin; 10 | import org.springframework.web.bind.annotation.GetMapping; 11 | import org.springframework.web.bind.annotation.PostMapping; 12 | import org.springframework.web.bind.annotation.RequestBody; 13 | import org.springframework.web.bind.annotation.RequestMapping; 14 | import org.springframework.web.bind.annotation.RestController; 15 | 16 | import com.kodlama.io.hrms.business.abstracts.EmployeeService; 17 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 18 | import com.kodlama.io.hrms.entities.concretes.Employee; 19 | import com.kodlama.io.hrms.entities.dtos.EmployeeForLoginDto; 20 | import com.kodlama.io.hrms.entities.dtos.EmployeeForRegisterDto; 21 | @RestController 22 | @RequestMapping("/api/employees") 23 | @CrossOrigin 24 | public class EmployeesController { 25 | 26 | private EmployeeService employeeService; 27 | 28 | @Autowired 29 | public EmployeesController(EmployeeService employeeService) { 30 | super(); 31 | this.employeeService = employeeService; 32 | } 33 | 34 | @GetMapping("/getall") 35 | public DataResult> getAll(){ 36 | return employeeService.getAll(); 37 | } 38 | 39 | @PostMapping("/register") 40 | public ResponseEntity add(@Valid @RequestBody EmployeeForRegisterDto employee) { 41 | return ResponseEntity.ok( this.employeeService.register(employee) ); 42 | } 43 | 44 | @PostMapping("/login") 45 | public DataResult login(@RequestBody EmployeeForLoginDto employee){ 46 | return employeeService.login(employee); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/EmployerUpdateRequestsController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | 4 | import java.util.HashMap; 5 | import java.util.Map; 6 | 7 | import javax.validation.Valid; 8 | 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.http.HttpStatus; 11 | import org.springframework.http.ResponseEntity; 12 | import org.springframework.validation.FieldError; 13 | import org.springframework.web.bind.MethodArgumentNotValidException; 14 | import org.springframework.web.bind.annotation.CrossOrigin; 15 | import org.springframework.web.bind.annotation.ExceptionHandler; 16 | import org.springframework.web.bind.annotation.GetMapping; 17 | import org.springframework.web.bind.annotation.RequestMapping; 18 | import org.springframework.web.bind.annotation.RequestMethod; 19 | import org.springframework.web.bind.annotation.RequestPart; 20 | import org.springframework.web.bind.annotation.ResponseStatus; 21 | import org.springframework.web.bind.annotation.RestController; 22 | import org.springframework.web.multipart.MultipartFile; 23 | 24 | import com.kodlama.io.hrms.business.abstracts.EmployerUpdateRequestService; 25 | import com.kodlama.io.hrms.core.utilities.results.ErrorDataResult; 26 | import com.kodlama.io.hrms.core.utilities.results.Result; 27 | import com.kodlama.io.hrms.entities.dtos.EmployerUpdateRequestForAddDto; 28 | 29 | 30 | @RestController 31 | @RequestMapping("/api/employerupdaterequests") 32 | @CrossOrigin 33 | public class EmployerUpdateRequestsController { 34 | 35 | private EmployerUpdateRequestService employerUpdateRequestService; 36 | @Autowired 37 | public EmployerUpdateRequestsController(EmployerUpdateRequestService employerUpdateRequestService) { 38 | super(); 39 | this.employerUpdateRequestService = employerUpdateRequestService; 40 | } 41 | 42 | @GetMapping("/canSubmitNewUpdateRequest") 43 | public Result canSubmitNewUpdateRequest(int id){ 44 | return this.employerUpdateRequestService.canSubmitNewUpdateRequest(id); 45 | } 46 | @RequestMapping(value = "/addNew", method = RequestMethod.POST, 47 | consumes = {"multipart/form-data"}) 48 | public ResponseEntity addNew(@Valid @RequestPart("updateRequest") EmployerUpdateRequestForAddDto employerUpdateRequestForAddDto, @RequestPart(name="avatar",required = false) MultipartFile avatar) { 49 | return ResponseEntity.ok( this.employerUpdateRequestService.addNew(employerUpdateRequestForAddDto,avatar) ); 50 | } 51 | 52 | @ExceptionHandler(MethodArgumentNotValidException.class) 53 | @ResponseStatus(HttpStatus.BAD_REQUEST) 54 | public ErrorDataResult handleValidationException 55 | (MethodArgumentNotValidException exceptions){ 56 | Map validationErrors = new HashMap(); 57 | for(FieldError fieldError : exceptions.getBindingResult().getFieldErrors()) { 58 | validationErrors.put(fieldError.getField(), fieldError.getDefaultMessage()); 59 | } 60 | ErrorDataResult errors 61 | = new ErrorDataResult(validationErrors,"Doğrulama hataları"); 62 | return errors; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/EmployersController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | import java.util.HashMap; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | import javax.validation.Valid; 8 | 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.web.bind.MethodArgumentNotValidException; 11 | import org.springframework.web.bind.annotation.CrossOrigin; 12 | import org.springframework.web.bind.annotation.ExceptionHandler; 13 | import org.springframework.web.bind.annotation.GetMapping; 14 | import org.springframework.web.bind.annotation.PostMapping; 15 | import org.springframework.web.bind.annotation.RequestBody; 16 | import org.springframework.web.bind.annotation.RequestMapping; 17 | import org.springframework.web.bind.annotation.ResponseStatus; 18 | import org.springframework.web.bind.annotation.RestController; 19 | 20 | import com.kodlama.io.hrms.business.abstracts.EmployerService; 21 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 22 | import com.kodlama.io.hrms.core.utilities.results.ErrorDataResult; 23 | import com.kodlama.io.hrms.entities.concretes.Employer; 24 | import com.kodlama.io.hrms.entities.dtos.EmployerForLoginDto; 25 | import com.kodlama.io.hrms.entities.dtos.EmployerForRegisterDto; 26 | import org.springframework.http.HttpStatus; 27 | import org.springframework.http.ResponseEntity; 28 | import org.springframework.validation.FieldError; 29 | 30 | @RestController 31 | @RequestMapping("/api/employers") 32 | @CrossOrigin 33 | public class EmployersController { 34 | 35 | private EmployerService employerService; 36 | 37 | @Autowired 38 | public EmployersController(EmployerService employerService) { 39 | super(); 40 | this.employerService = employerService; 41 | } 42 | 43 | @GetMapping("/getall") 44 | public DataResult> getAll(){ 45 | return this.employerService.getAll(); 46 | } 47 | 48 | @GetMapping("/getbyId") 49 | public DataResult getById(int id){ 50 | return this.employerService.getById(id); 51 | } 52 | 53 | @PostMapping("/login") 54 | public ResponseEntity login(@Valid @RequestBody EmployerForLoginDto employer) { 55 | return ResponseEntity.ok( this.employerService.login(employer) ); 56 | } 57 | 58 | 59 | @PostMapping("/register") 60 | public ResponseEntity add(@Valid @RequestBody EmployerForRegisterDto employer) { 61 | return ResponseEntity.ok( this.employerService.register(employer) ); 62 | } 63 | 64 | @ExceptionHandler(MethodArgumentNotValidException.class) 65 | @ResponseStatus(HttpStatus.BAD_REQUEST) 66 | public ErrorDataResult handleValidationException 67 | (MethodArgumentNotValidException exceptions){ 68 | Map validationErrors = new HashMap(); 69 | for(FieldError fieldError : exceptions.getBindingResult().getFieldErrors()) { 70 | validationErrors.put(fieldError.getField(), fieldError.getDefaultMessage()); 71 | } 72 | ErrorDataResult errors 73 | = new ErrorDataResult(validationErrors,"Doğrulama hataları"); 74 | return errors; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/JobAdvertisementsController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.CrossOrigin; 7 | import org.springframework.web.bind.annotation.GetMapping; 8 | import org.springframework.web.bind.annotation.PostMapping; 9 | import org.springframework.web.bind.annotation.PutMapping; 10 | import org.springframework.web.bind.annotation.RequestBody; 11 | import org.springframework.web.bind.annotation.RequestMapping; 12 | import org.springframework.web.bind.annotation.RequestParam; 13 | import org.springframework.web.bind.annotation.RestController; 14 | 15 | import com.kodlama.io.hrms.business.abstracts.JobAdvertisementService; 16 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 17 | import com.kodlama.io.hrms.core.utilities.results.Result; 18 | import com.kodlama.io.hrms.entities.concretes.JobAdvertisement; 19 | import com.kodlama.io.hrms.entities.dtos.JobAdvertisementForAddDto; 20 | import com.kodlama.io.hrms.entities.dtos.JobAdvertisementWithPagingDto; 21 | 22 | @RestController 23 | @RequestMapping("/api/jobadvertisements") 24 | @CrossOrigin 25 | public class JobAdvertisementsController { 26 | 27 | private JobAdvertisementService jobAdvertisementService; 28 | 29 | @Autowired 30 | public JobAdvertisementsController(JobAdvertisementService jobAdvertisementService) { 31 | super(); 32 | this.jobAdvertisementService = jobAdvertisementService; 33 | } 34 | 35 | 36 | @GetMapping("/getAllActive") 37 | public DataResult> getAllActive(){ 38 | return this.jobAdvertisementService.findByIsActiveTrue(); 39 | } 40 | @GetMapping("/getAllActiveOrderByDate") 41 | public DataResult> getAllActiveOrderDate(){ 42 | return this.jobAdvertisementService.findByIsActiveTrueOrderByCreateDate(); 43 | } 44 | @GetMapping("/getAllActiveByEmployer") 45 | public DataResult> getAllActiveOrderDate(int employerId){ 46 | return this.jobAdvertisementService.findByEmployer_EmployerId(employerId); 47 | } 48 | @GetMapping("/getAllActiveAndApproved") 49 | public DataResult> getAllActiveAndApproved(){ 50 | return this.jobAdvertisementService.findByIsActiveTrueAndIsApprovedTrue(); 51 | } 52 | @GetMapping("/getAllWithPaging") 53 | public DataResult getAllWithPaging(@RequestParam int page, @RequestParam int size){ 54 | return this.jobAdvertisementService.findByIsActiveTrueAndIsApprovedTruePageable(page-1,size); 55 | } 56 | 57 | @GetMapping("/getUserFavorites") 58 | public DataResult> getUserFavorites(int userId){ 59 | return this.jobAdvertisementService.findByUserFavorites(userId); 60 | } 61 | @PutMapping("/changestatus") 62 | public Result changeStatus(int jobadvertisementId, int employerId){ 63 | return this.jobAdvertisementService.changeStatus(jobadvertisementId, employerId); 64 | } 65 | @PostMapping("/add") 66 | public Result addNew(@RequestBody JobAdvertisementForAddDto jobAdvertisement){ 67 | return this.jobAdvertisementService.addNew(jobAdvertisement); 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/JobPositionsController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.CrossOrigin; 7 | import org.springframework.web.bind.annotation.GetMapping; 8 | import org.springframework.web.bind.annotation.PostMapping; 9 | import org.springframework.web.bind.annotation.RequestBody; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | import org.springframework.web.bind.annotation.RestController; 12 | 13 | import com.kodlama.io.hrms.business.abstracts.JobPositionService; 14 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 15 | import com.kodlama.io.hrms.core.utilities.results.Result; 16 | import com.kodlama.io.hrms.entities.concretes.JobPosition; 17 | import com.kodlama.io.hrms.entities.dtos.JobPositionForListingDto; 18 | 19 | @RestController 20 | @RequestMapping("/api/jobpositions") 21 | @CrossOrigin 22 | public class JobPositionsController { 23 | 24 | private JobPositionService jobPositionService; 25 | 26 | @Autowired 27 | public JobPositionsController(JobPositionService jobPositionService) { 28 | super(); 29 | this.jobPositionService = jobPositionService; 30 | } 31 | 32 | 33 | @GetMapping("/getall") 34 | public DataResult> getAll(){ 35 | return this.jobPositionService.getAll(); 36 | } 37 | @GetMapping("/getAllWithJobAdCount") 38 | public DataResult> getAllWithJobAdCount(){ 39 | return this.jobPositionService.getAllWithJobAdCount(); 40 | } 41 | 42 | @GetMapping("/getbyname") 43 | public DataResult getByPositionName(String positionName){ 44 | return this.jobPositionService.getByPositionName(positionName); 45 | } 46 | @GetMapping("/getbyid") 47 | public DataResult getById(int id){ 48 | return this.jobPositionService.getById(id); 49 | } 50 | @PostMapping("add") 51 | public Result addNew(@RequestBody JobPosition jobPosition) { 52 | return this.jobPositionService.addNew(jobPosition); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/ResumeesController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | 4 | import java.util.HashMap; 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | import javax.validation.Valid; 9 | 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.http.HttpStatus; 12 | import org.springframework.http.ResponseEntity; 13 | import org.springframework.validation.FieldError; 14 | import org.springframework.web.bind.MethodArgumentNotValidException; 15 | import org.springframework.web.bind.annotation.CrossOrigin; 16 | import org.springframework.web.bind.annotation.ExceptionHandler; 17 | import org.springframework.web.bind.annotation.GetMapping; 18 | import org.springframework.web.bind.annotation.PostMapping; 19 | import org.springframework.web.bind.annotation.RequestMapping; 20 | import org.springframework.web.bind.annotation.ResponseStatus; 21 | import org.springframework.web.bind.annotation.RestController; 22 | 23 | import com.kodlama.io.hrms.business.abstracts.ResumeService; 24 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 25 | import com.kodlama.io.hrms.core.utilities.results.ErrorDataResult; 26 | import com.kodlama.io.hrms.entities.concretes.Resume; 27 | import com.kodlama.io.hrms.entities.dtos.ResumeForAddDto; 28 | import com.kodlama.io.hrms.entities.dtos.ResumeWithDetailsDto; 29 | 30 | @RestController 31 | @RequestMapping("/api/resumees") 32 | @CrossOrigin 33 | public class ResumeesController { 34 | 35 | private ResumeService resumeService; 36 | 37 | @Autowired 38 | public ResumeesController(ResumeService resumeService) { 39 | super(); 40 | this.resumeService = resumeService; 41 | } 42 | 43 | @PostMapping("/add") 44 | public ResponseEntity addNew(@Valid ResumeForAddDto resume) { 45 | return ResponseEntity.ok(resumeService.add(resume)); 46 | } 47 | 48 | @GetMapping("/getall") 49 | public DataResult> getAll(){ 50 | return this.resumeService.getAll(); 51 | } 52 | @GetMapping("/getallByEmployeeId") 53 | public DataResult> getAllByEmployeeId(int id){ 54 | return this.resumeService.getAllByEmployeeId(id); 55 | } 56 | @GetMapping("/getDetailsById") 57 | public DataResult getDetailsById(int id){ 58 | return this.resumeService.getResumeWithDetails(id); 59 | } 60 | 61 | 62 | @ExceptionHandler(MethodArgumentNotValidException.class) 63 | @ResponseStatus(HttpStatus.BAD_REQUEST) 64 | public ErrorDataResult handleValidationException 65 | (MethodArgumentNotValidException exceptions){ 66 | Map validationErrors = new HashMap(); 67 | for(FieldError fieldError : exceptions.getBindingResult().getFieldErrors()) { 68 | validationErrors.put(fieldError.getField(), fieldError.getDefaultMessage()); 69 | } 70 | ErrorDataResult errors 71 | = new ErrorDataResult(validationErrors,"Doğrulama hataları"); 72 | return errors; 73 | } 74 | 75 | } 76 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/SchoolDepartmentsController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.PostMapping; 8 | import org.springframework.web.bind.annotation.RequestBody; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.kodlama.io.hrms.business.abstracts.SchoolDepartmentService; 13 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 14 | import com.kodlama.io.hrms.core.utilities.results.Result; 15 | import com.kodlama.io.hrms.entities.dtos.SchoolDepartmentDetailsDto; 16 | import com.kodlama.io.hrms.entities.dtos.SchoolDepartmentForAddDto; 17 | 18 | @RestController 19 | @RequestMapping("/api/schooldepartments") 20 | public class SchoolDepartmentsController { 21 | 22 | private SchoolDepartmentService schoolDepartmentService; 23 | 24 | @Autowired 25 | public SchoolDepartmentsController(SchoolDepartmentService schoolDepartmentService) { 26 | super(); 27 | this.schoolDepartmentService = schoolDepartmentService; 28 | } 29 | 30 | 31 | @GetMapping("/getByUserId") 32 | public DataResult> getByUserId(int id){ 33 | return schoolDepartmentService.findByEmployeeSchoolDepartments_Employee_UserId(id); 34 | } 35 | @PostMapping("/assignToUser") 36 | public Result assignToUser(@RequestBody SchoolDepartmentForAddDto schoolDepartment) { 37 | return this.schoolDepartmentService.assignToEmployee(schoolDepartment); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/SystemUsersController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | import org.springframework.web.bind.annotation.RestController; 9 | 10 | import com.kodlama.io.hrms.business.abstracts.SystemUserService; 11 | import com.kodlama.io.hrms.entities.concretes.SystemUser; 12 | 13 | @RestController 14 | @RequestMapping("/api/systemusers") 15 | public class SystemUsersController { 16 | private SystemUserService systemUserService; 17 | @Autowired 18 | public SystemUsersController(SystemUserService systemUserService) { 19 | super(); 20 | this.systemUserService = systemUserService; 21 | } 22 | 23 | 24 | @GetMapping("/getall") 25 | public List getAll(){ 26 | return systemUserService.getAll(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/api/controllers/UsersController.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.api.controllers; 2 | 3 | 4 | import java.util.List; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.web.bind.annotation.GetMapping; 8 | import org.springframework.web.bind.annotation.PostMapping; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RestController; 11 | 12 | import com.kodlama.io.hrms.business.abstracts.UserService; 13 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 14 | import com.kodlama.io.hrms.core.utilities.results.Result; 15 | import com.kodlama.io.hrms.entities.concretes.User; 16 | 17 | @RestController 18 | @RequestMapping("/api/users") 19 | public class UsersController { 20 | private UserService userService; 21 | 22 | 23 | @Autowired 24 | public UsersController(UserService userService) { 25 | super(); 26 | this.userService = userService; 27 | } 28 | 29 | 30 | 31 | @GetMapping("/getall") 32 | public DataResult> getAll(){ 33 | return userService.getAll(); 34 | } 35 | @PostMapping("/verify") 36 | public Result verify(String email, String verifyCode) { 37 | return userService.verifyUser(email, verifyCode); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/CityService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.entities.concretes.City; 7 | 8 | public interface CityService { 9 | DataResult> getAll(); 10 | DataResult getById(int id); 11 | } 12 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/EmployeeJobAdvertisementFavoriteService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.core.utilities.results.Result; 7 | import com.kodlama.io.hrms.entities.concretes.EmployeeJobAdvertisementFavorite; 8 | import com.kodlama.io.hrms.entities.dtos.JobAdvertisementFavoriteToToggleDto; 9 | 10 | public interface EmployeeJobAdvertisementFavoriteService { 11 | DataResult> getByEmployeeId(int id); 12 | Result addNew(JobAdvertisementFavoriteToToggleDto jobAdvertisementAddToFavoriteDto); 13 | Result remove(JobAdvertisementFavoriteToToggleDto jobAdvertisementAddToFavoriteDto); 14 | } 15 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/EmployeeSchoolDepartmentService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import com.kodlama.io.hrms.core.utilities.results.Result; 4 | import com.kodlama.io.hrms.entities.concretes.EmployeeSchoolDepartment; 5 | 6 | public interface EmployeeSchoolDepartmentService { 7 | Result add(EmployeeSchoolDepartment employeeSchoolDepartment); 8 | } 9 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/EmployeeService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.core.utilities.results.Result; 7 | import com.kodlama.io.hrms.entities.concretes.Employee; 8 | import com.kodlama.io.hrms.entities.dtos.EmployeeForLoginDto; 9 | import com.kodlama.io.hrms.entities.dtos.EmployeeForRegisterDto; 10 | 11 | public interface EmployeeService { 12 | DataResult> getAll(); 13 | Result register(EmployeeForRegisterDto employee); 14 | DataResult getById(int id); 15 | DataResult login(EmployeeForLoginDto employee); 16 | } 17 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/EmployerService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.core.utilities.results.Result; 7 | import com.kodlama.io.hrms.entities.concretes.Employer; 8 | import com.kodlama.io.hrms.entities.dtos.EmployerForLoginDto; 9 | import com.kodlama.io.hrms.entities.dtos.EmployerForRegisterDto; 10 | 11 | public interface EmployerService { 12 | DataResult> getAll(); 13 | DataResult getById(int id); 14 | Result register(EmployerForRegisterDto employer); 15 | DataResult login(EmployerForLoginDto employer); 16 | } 17 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/EmployerUpdateRequestService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.Result; 6 | import com.kodlama.io.hrms.entities.dtos.EmployerUpdateRequestForAddDto; 7 | 8 | public interface EmployerUpdateRequestService { 9 | Result canSubmitNewUpdateRequest(int id); 10 | Result addNew(EmployerUpdateRequestForAddDto employerUpdateRequestForAddDto,MultipartFile avatar); 11 | } 12 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/ForeignLanguageService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.entities.concretes.ForeignLanguage; 7 | import com.kodlama.io.hrms.entities.dtos.ForeignLanguageDetailsDto; 8 | 9 | public interface ForeignLanguageService { 10 | DataResult< List > findByResume_Id(int id); 11 | DataResult findById(int id); 12 | } 13 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/JobAdvertisementService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | 6 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 7 | import com.kodlama.io.hrms.core.utilities.results.Result; 8 | import com.kodlama.io.hrms.entities.concretes.JobAdvertisement; 9 | import com.kodlama.io.hrms.entities.dtos.JobAdvertisementForAddDto; 10 | import com.kodlama.io.hrms.entities.dtos.JobAdvertisementWithPagingDto; 11 | 12 | public interface JobAdvertisementService { 13 | DataResult findById(int id); 14 | DataResult> findByIsActiveTrue(); 15 | DataResult> findByIsActiveTrueOrderByCreateDate(); 16 | DataResult> findByEmployer_EmployerId(int employerId); 17 | DataResult> findByIsActiveTrueAndIsApprovedTrue(); 18 | DataResult findByIsActiveTrueAndIsApprovedTruePageable(int page,int size); 19 | Result addNew(JobAdvertisementForAddDto jobAdvertisement); 20 | Result changeStatus(int advertisementId, int employerId); 21 | DataResult> findByUserFavorites(int userId); 22 | } 23 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/JobExperienceService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.core.utilities.results.Result; 7 | import com.kodlama.io.hrms.entities.concretes.JobExperience; 8 | import com.kodlama.io.hrms.entities.concretes.Resume; 9 | import com.kodlama.io.hrms.entities.dtos.JobExperienceForAddDto; 10 | 11 | public interface JobExperienceService { 12 | DataResult> findByResume_Id(int id); 13 | Result add(JobExperienceForAddDto jobExperience,Resume resume); 14 | Result addRange(List jobExperiences, Resume resume); 15 | } 16 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/JobPositionService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.core.utilities.results.Result; 7 | import com.kodlama.io.hrms.entities.concretes.JobPosition; 8 | import com.kodlama.io.hrms.entities.dtos.JobPositionForListingDto; 9 | 10 | public interface JobPositionService { 11 | DataResult> getAllWithJobAdCount(); 12 | DataResult> getAll(); 13 | DataResult getByPositionName(String positionName); 14 | DataResult getById(int id); 15 | Result addNew(JobPosition jobPosition); 16 | } 17 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/ResumeForeignLanguageService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.Result; 6 | import com.kodlama.io.hrms.entities.concretes.Resume; 7 | import com.kodlama.io.hrms.entities.dtos.ForeignLanguageForAddDto; 8 | 9 | public interface ResumeForeignLanguageService { 10 | Result addRange(List foreignLanguages , Resume resume); 11 | } 12 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/ResumeService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.core.utilities.results.Result; 7 | import com.kodlama.io.hrms.entities.concretes.Resume; 8 | import com.kodlama.io.hrms.entities.dtos.ResumeForAddDto; 9 | import com.kodlama.io.hrms.entities.dtos.ResumeWithDetailsDto; 10 | 11 | public interface ResumeService { 12 | DataResult getResumeWithDetails(int id); 13 | DataResult> getAll(); 14 | DataResult> getAllByEmployeeId(int id); 15 | Result add(ResumeForAddDto resume); 16 | } 17 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/ResumeSkillService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.Result; 6 | import com.kodlama.io.hrms.entities.concretes.Resume; 7 | import com.kodlama.io.hrms.entities.dtos.SkillForAddDto; 8 | 9 | public interface ResumeSkillService { 10 | Result addRange(List skills,Resume resume); 11 | } 12 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/SchoolDepartmentService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.core.utilities.results.Result; 7 | import com.kodlama.io.hrms.entities.dtos.SchoolDepartmentDetailsDto; 8 | import com.kodlama.io.hrms.entities.dtos.SchoolDepartmentForAddDto; 9 | 10 | public interface SchoolDepartmentService { 11 | 12 | DataResult> findByEmployeeSchoolDepartments_Employee_UserId(int id); 13 | Result assignToEmployee(SchoolDepartmentForAddDto schoolDepartment); 14 | } 15 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/SkillService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.entities.concretes.Skill; 7 | import com.kodlama.io.hrms.entities.dtos.SkillDetailsDto; 8 | 9 | public interface SkillService { 10 | 11 | DataResult> findByResume_Id(int id); 12 | DataResult findById(int id); 13 | } 14 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/SystemUserService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.SystemUser; 6 | 7 | public interface SystemUserService { 8 | List getAll(); 9 | } 10 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/abstracts/UserService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 6 | import com.kodlama.io.hrms.core.utilities.results.Result; 7 | import com.kodlama.io.hrms.entities.concretes.User; 8 | 9 | public interface UserService { 10 | DataResult> getAll(); 11 | DataResult getByEmail(String email); 12 | Result add(User user); 13 | Result verifyUser(String email,String verificationCode); 14 | } 15 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/CityManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.CityService; 9 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 10 | import com.kodlama.io.hrms.core.utilities.results.ErrorDataResult; 11 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 12 | import com.kodlama.io.hrms.dataAccess.abstracts.CityDao; 13 | import com.kodlama.io.hrms.entities.concretes.City; 14 | 15 | @Service 16 | public class CityManager implements CityService{ 17 | 18 | private CityDao cityDao; 19 | 20 | @Autowired 21 | public CityManager(CityDao cityDao) { 22 | super(); 23 | this.cityDao = cityDao; 24 | } 25 | 26 | @Override 27 | public DataResult> getAll() { 28 | 29 | return new SuccessDataResult>(cityDao.findAll()); 30 | } 31 | 32 | @Override 33 | public DataResult getById(int id) { 34 | City city = cityDao.findById(id); 35 | if(city==null) return new ErrorDataResult(); 36 | return new SuccessDataResult(city); 37 | } 38 | 39 | 40 | 41 | } 42 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/EmployeeJobAdvertisementFavoriteManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.EmployeeJobAdvertisementFavoriteService; 9 | import com.kodlama.io.hrms.business.abstracts.EmployeeService; 10 | import com.kodlama.io.hrms.business.abstracts.JobAdvertisementService; 11 | import com.kodlama.io.hrms.core.utilities.business.BusinessRules; 12 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 13 | import com.kodlama.io.hrms.core.utilities.results.ErrorResult; 14 | import com.kodlama.io.hrms.core.utilities.results.Result; 15 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 16 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 17 | import com.kodlama.io.hrms.dataAccess.abstracts.EmployeeJobAdvertisementFavoriteDao; 18 | import com.kodlama.io.hrms.entities.concretes.Employee; 19 | import com.kodlama.io.hrms.entities.concretes.EmployeeJobAdvertisementFavorite; 20 | import com.kodlama.io.hrms.entities.concretes.JobAdvertisement; 21 | import com.kodlama.io.hrms.entities.dtos.JobAdvertisementFavoriteToToggleDto; 22 | @Service 23 | public class EmployeeJobAdvertisementFavoriteManager implements EmployeeJobAdvertisementFavoriteService { 24 | 25 | private EmployeeJobAdvertisementFavoriteDao employeeJobAdvertisementFavoriteDao; 26 | private EmployeeService employeeService; 27 | private JobAdvertisementService jobAdvertisementService; 28 | 29 | @Autowired 30 | public EmployeeJobAdvertisementFavoriteManager( 31 | EmployeeJobAdvertisementFavoriteDao employeeJobAdvertisementFavoriteDao, EmployeeService employeeService, 32 | JobAdvertisementService jobAdvertisementService) { 33 | super(); 34 | this.employeeJobAdvertisementFavoriteDao = employeeJobAdvertisementFavoriteDao; 35 | this.employeeService = employeeService; 36 | this.jobAdvertisementService = jobAdvertisementService; 37 | } 38 | 39 | 40 | 41 | @Override 42 | public DataResult> getByEmployeeId(int id) { 43 | 44 | return new SuccessDataResult>(this.employeeJobAdvertisementFavoriteDao.getByEmployee_UserId(id)); 45 | } 46 | 47 | 48 | 49 | @Override 50 | public Result addNew(JobAdvertisementFavoriteToToggleDto jobAdvertisementAddToFavoriteDto) { 51 | Result businessRulesResult = BusinessRules.run( 52 | isEmployeeNull(jobAdvertisementAddToFavoriteDto.getEmployeeId()), 53 | isJobAdvertisementNull(jobAdvertisementAddToFavoriteDto.getJobAdvertisementId()) 54 | ); 55 | if(businessRulesResult != null) return businessRulesResult; 56 | 57 | EmployeeJobAdvertisementFavorite employeeJobAdvertisementFavorite = new EmployeeJobAdvertisementFavorite(); 58 | 59 | Employee employee = employeeService.getById(jobAdvertisementAddToFavoriteDto.getEmployeeId()).getData(); 60 | JobAdvertisement jobAdvertisement = jobAdvertisementService.findById(jobAdvertisementAddToFavoriteDto.getJobAdvertisementId()).getData(); 61 | 62 | employeeJobAdvertisementFavorite.setEmployee(employee); 63 | employeeJobAdvertisementFavorite.setJobAdvertisement(jobAdvertisement); 64 | employeeJobAdvertisementFavoriteDao.save(employeeJobAdvertisementFavorite); 65 | 66 | return new SuccessResult("İlan başarıyla favorilere eklendi."); 67 | } 68 | 69 | 70 | @Override 71 | public Result remove(JobAdvertisementFavoriteToToggleDto jobAdvertisementAddToFavoriteDto) { 72 | Result businessRulesResult = BusinessRules.run( 73 | isEmployeeNull(jobAdvertisementAddToFavoriteDto.getEmployeeId()), 74 | isJobAdvertisementNull(jobAdvertisementAddToFavoriteDto.getJobAdvertisementId()) 75 | ); 76 | if(businessRulesResult != null) return businessRulesResult; 77 | 78 | 79 | 80 | Employee employee = employeeService.getById(jobAdvertisementAddToFavoriteDto.getEmployeeId()).getData(); 81 | JobAdvertisement jobAdvertisement = jobAdvertisementService.findById(jobAdvertisementAddToFavoriteDto.getJobAdvertisementId()).getData(); 82 | 83 | EmployeeJobAdvertisementFavorite employeeJobAdvertisementFavorite = employeeJobAdvertisementFavoriteDao.getByEmployee_UserIdAndJobAdvertisementId(employee.getUserId(), jobAdvertisement.getId()); 84 | if(employeeJobAdvertisementFavorite != null) 85 | employeeJobAdvertisementFavoriteDao.delete(employeeJobAdvertisementFavorite); 86 | 87 | return new SuccessResult("İlan başarıyla favorilerden kaldırıldı."); 88 | } 89 | 90 | 91 | private Result isEmployeeNull(int employeeId) { 92 | Employee employee = employeeService.getById(employeeId).getData(); 93 | if(employee == null) return new ErrorResult("Böyle bir iş arayan bulunamadı"); 94 | return new SuccessResult(); 95 | } 96 | private Result isJobAdvertisementNull(int jobAdId) { 97 | JobAdvertisement jobAdvertisement = jobAdvertisementService.findById(jobAdId).getData(); 98 | if(jobAdvertisement == null) return new ErrorResult("Böyle bir iş ilanı bulunamadı"); 99 | return new SuccessResult(); 100 | } 101 | 102 | 103 | 104 | } 105 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/EmployeeManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.Calendar; 4 | import java.util.GregorianCalendar; 5 | import java.util.List; 6 | import java.util.UUID; 7 | 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | import com.kodlama.io.hrms.business.abstracts.EmployeeService; 12 | import com.kodlama.io.hrms.business.abstracts.UserService; 13 | import com.kodlama.io.hrms.core.utilities.IdentityValidationService; 14 | import com.kodlama.io.hrms.core.utilities.business.BusinessRules; 15 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 16 | import com.kodlama.io.hrms.core.utilities.results.ErrorDataResult; 17 | import com.kodlama.io.hrms.core.utilities.results.ErrorResult; 18 | import com.kodlama.io.hrms.core.utilities.results.Result; 19 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 20 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 21 | import com.kodlama.io.hrms.dataAccess.abstracts.EmployeeDao; 22 | import com.kodlama.io.hrms.entities.concretes.Employee; 23 | import com.kodlama.io.hrms.entities.concretes.User; 24 | import com.kodlama.io.hrms.entities.dtos.EmployeeForLoginDto; 25 | import com.kodlama.io.hrms.entities.dtos.EmployeeForRegisterDto; 26 | 27 | @Service 28 | public class EmployeeManager implements EmployeeService{ 29 | 30 | private EmployeeDao employeeDao; 31 | private UserService userService; 32 | private IdentityValidationService identityValidationService; 33 | @Autowired 34 | public EmployeeManager(EmployeeDao employeeDao,UserService userService,IdentityValidationService identityValidationService) { 35 | super(); 36 | this.employeeDao = employeeDao; 37 | this.userService = userService; 38 | this.identityValidationService = identityValidationService; 39 | } 40 | 41 | @Override 42 | public DataResult> getAll() { 43 | return new SuccessDataResult>(employeeDao.findAll()); 44 | } 45 | 46 | @Override 47 | public Result register(EmployeeForRegisterDto employee) { 48 | Result businessRules = BusinessRules.run( 49 | isPasswordsMatch(employee.getPassword(), employee.getVerifyPassword()), 50 | isUserExistWithEmail(employee.getEmail()), 51 | isUserExistWithNationalityId(employee.getNationalityId()) 52 | ); 53 | if(businessRules!=null) return businessRules; 54 | 55 | Calendar calendar = new GregorianCalendar(); 56 | calendar.setTime(employee.getDateOfBirth()); 57 | if(!identityValidationService.validate(employee.getNationalityId(), 58 | employee.getFirstName(), 59 | employee.getLastName(), 60 | calendar.get(Calendar.YEAR)).isSuccess()) { 61 | return new ErrorResult("TC Kimlik Numarası doğrulaması başarısız."); 62 | } 63 | 64 | User userToRegister = new User(employee.getEmail(), employee.getPassword(),false, UUID.randomUUID().toString()); 65 | userService.add(userToRegister); 66 | 67 | Employee employeeToRegister = new Employee(userToRegister.getId(), 68 | employee.getFirstName(), 69 | employee.getLastName(), 70 | employee.getNationalityId(), 71 | employee.getDateOfBirth()); 72 | this.employeeDao.save(employeeToRegister); 73 | return new SuccessResult("İş arayan kayıdı başarılı. Lütfen e-posta adresinize gönderilen doğrulama linkiyle hesabınızı doğrulayınız."); 74 | } 75 | 76 | 77 | @Override 78 | public DataResult getById(int id) { 79 | Employee employee = employeeDao.getOne(id); 80 | if(employee==null) return new ErrorDataResult(); 81 | return new SuccessDataResult(employee); 82 | } 83 | 84 | @Override 85 | public DataResult login(EmployeeForLoginDto employee) { 86 | Employee employeeToLogin = employeeDao.findByUser_EmailAndUser_Password(employee.getEmail(), employee.getPassword()); 87 | 88 | if(employeeToLogin==null) return new ErrorDataResult("Giriş bilgileri hatalı veya eksik. Lütfen kontrol ediniz."); 89 | Result businessRules = BusinessRules.run( 90 | isEmployeeEmailVerified(employeeToLogin) 91 | ); 92 | if(businessRules!=null) return new ErrorDataResult(businessRules.getMessage()); 93 | 94 | return new SuccessDataResult(employeeToLogin,"Giriş başarılı."); 95 | } 96 | 97 | private Result isPasswordsMatch(String password, String passwordVerify) { 98 | if(!password.equals(passwordVerify)) { 99 | return new ErrorResult("Şifreler uyuşmalıdır."); 100 | } 101 | return new SuccessResult(); 102 | } 103 | 104 | private Result isUserExistWithEmail(String email) { 105 | if(userService.getByEmail(email).getData() != null) 106 | return new ErrorResult("Bu e-posta adresiyle başka bir kullanıcı mevcut."); 107 | return new SuccessResult(); 108 | } 109 | private Result isUserExistWithNationalityId(String nationalityId) { 110 | if(employeeDao.findByNationalityId(nationalityId) != null) 111 | return new ErrorResult("Bu TCKN ile başka bir kullanıcı mevcut."); 112 | return new SuccessResult(); 113 | } 114 | 115 | 116 | 117 | private Result isEmployeeEmailVerified(Employee employee) { 118 | if(!employee.getUser().isEmailVerified()) return new ErrorResult("E-posta adresinizi doğrulamadan sisteme giriş yapamazsınız."); 119 | return new SuccessResult(); 120 | } 121 | 122 | } 123 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/EmployeeSchoolDepartmentManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.stereotype.Service; 5 | 6 | import com.kodlama.io.hrms.business.abstracts.EmployeeSchoolDepartmentService; 7 | import com.kodlama.io.hrms.core.utilities.results.Result; 8 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 9 | import com.kodlama.io.hrms.dataAccess.abstracts.EmployeeSchoolDepartmentDao; 10 | import com.kodlama.io.hrms.entities.concretes.EmployeeSchoolDepartment; 11 | 12 | @Service 13 | public class EmployeeSchoolDepartmentManager implements EmployeeSchoolDepartmentService{ 14 | 15 | @Autowired 16 | private EmployeeSchoolDepartmentDao employeeSchoolDepartmentDao; 17 | @Override 18 | public Result add(EmployeeSchoolDepartment employeeSchoolDepartment) { 19 | this.employeeSchoolDepartmentDao.save(employeeSchoolDepartment); 20 | return new SuccessResult(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/EmployerManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | import java.util.UUID; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import com.kodlama.io.hrms.business.abstracts.EmployerService; 10 | import com.kodlama.io.hrms.business.abstracts.UserService; 11 | import com.kodlama.io.hrms.core.utilities.business.BusinessRules; 12 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 13 | import com.kodlama.io.hrms.core.utilities.results.ErrorDataResult; 14 | import com.kodlama.io.hrms.core.utilities.results.ErrorResult; 15 | import com.kodlama.io.hrms.core.utilities.results.Result; 16 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 17 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 18 | import com.kodlama.io.hrms.dataAccess.abstracts.EmployerDao; 19 | import com.kodlama.io.hrms.entities.concretes.Employer; 20 | import com.kodlama.io.hrms.entities.concretes.User; 21 | import com.kodlama.io.hrms.entities.dtos.EmployerForLoginDto; 22 | import com.kodlama.io.hrms.entities.dtos.EmployerForRegisterDto; 23 | 24 | @Service 25 | public class EmployerManager implements EmployerService { 26 | 27 | private EmployerDao employerDao; 28 | private UserService userService; 29 | @Autowired 30 | public EmployerManager(EmployerDao employerDao, UserService userService) { 31 | super(); 32 | this.employerDao = employerDao; 33 | this.userService = userService; 34 | } 35 | 36 | @Override 37 | public DataResult> getAll() { 38 | return new SuccessDataResult>(this.employerDao.findAll()); 39 | } 40 | 41 | @Override 42 | public Result register(EmployerForRegisterDto employer) { 43 | Result businessResults = BusinessRules.run( 44 | isPasswordsSame(employer.getPassword(), employer.getVerifyPassword()), 45 | isEmailandWebsiteDomainSame(employer.getEmail(), employer.getWebsite()), 46 | isEmailAlreadyInUse(employer.getEmail()) 47 | ); 48 | if(businessResults != null) return businessResults; 49 | 50 | 51 | // Maybe add AUTOMAPPER? 52 | User userToRegister = new User(employer.getEmail(), employer.getPassword(),false, UUID.randomUUID().toString()); 53 | userService.add(userToRegister); 54 | 55 | Employer employerToRegister = new Employer(userToRegister.getId(),employer.getCompanyName(),employer.getPhone(), false, employer.getWebsite()); 56 | this.employerDao.save(employerToRegister); 57 | 58 | return new SuccessResult("İş veren başarıyla kayıt oldu. Lütfen e-posta adresinize gönderilen linke tıklayarak üyeliğinizi doğrulayın."); 59 | } 60 | @Override 61 | public DataResult getById(int id) { 62 | Employer employer = employerDao.getOne(id); 63 | if(employer==null) return new ErrorDataResult(); 64 | return new SuccessDataResult(employer); 65 | } 66 | 67 | @Override 68 | public DataResult login(EmployerForLoginDto employer) { 69 | Employer employerToLogin = employerDao.getByPhoneAndUser_Password(employer.getPhone(),employer.getPassword()); 70 | if(employerToLogin==null) return new ErrorDataResult("Giriş bilgileriniz hatalı. Lütfen kontrol ediniz."); 71 | 72 | Result businessRulesResult = BusinessRules.run( 73 | isEmployerVerified(employerToLogin)); 74 | if(businessRulesResult != null) return new ErrorDataResult(businessRulesResult.getMessage()); 75 | 76 | return new SuccessDataResult(employerToLogin,"Giriş başarılı"); 77 | } 78 | 79 | 80 | private Result isPasswordsSame(String password, String passwordConfirm) { 81 | if(!password.equals(passwordConfirm)) return new ErrorResult("Şifreleriniz uyuşmuyor."); 82 | return null; 83 | } 84 | private Result isEmailandWebsiteDomainSame(String email, String website) { 85 | String[] emailSplit = email.split("@"); 86 | if(!emailSplit[1].equals(website)) return new ErrorResult("E-posta adresinizin domaini web siteniz ile aynı olmalıdır."); 87 | return null; 88 | } 89 | private Result isEmailAlreadyInUse(String email) { 90 | if(userService.getByEmail(email).getData() != null) return new ErrorResult("Bu e-posta adresiyle kayıtlı bir kullanıcı var."); 91 | return null; 92 | } 93 | private Result isEmployerVerified(Employer employer) { 94 | if(employer.isVerifiedBySystem()) return new SuccessResult(); 95 | return new ErrorResult("Üyeliğiniz henüz aktifleştirilmemiştir. Lütfen ekiplerimizin üyeliğinizi aktifleştirmesini bekleyin."); 96 | } 97 | 98 | 99 | 100 | 101 | 102 | } 103 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/EmployerUpdateRequestManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.time.LocalDate; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | import org.springframework.web.multipart.MultipartFile; 8 | 9 | import com.kodlama.io.hrms.business.abstracts.EmployerService; 10 | import com.kodlama.io.hrms.business.abstracts.EmployerUpdateRequestService; 11 | import com.kodlama.io.hrms.core.utilities.files.FileService; 12 | import com.kodlama.io.hrms.core.utilities.results.ErrorResult; 13 | import com.kodlama.io.hrms.core.utilities.results.Result; 14 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 15 | import com.kodlama.io.hrms.dataAccess.abstracts.EmployerUpdateRequestDao; 16 | import com.kodlama.io.hrms.entities.concretes.Employer; 17 | import com.kodlama.io.hrms.entities.concretes.EmployerUpdateRequest; 18 | import com.kodlama.io.hrms.entities.dtos.EmployerUpdateRequestForAddDto; 19 | 20 | @Service 21 | public class EmployerUpdateRequestManager implements EmployerUpdateRequestService{ 22 | 23 | private EmployerUpdateRequestDao employerUpdateRequestDao; 24 | private EmployerService employerService; 25 | private FileService fileService; 26 | @Autowired 27 | public EmployerUpdateRequestManager(EmployerUpdateRequestDao employerUpdateRequestDao, FileService fileService,EmployerService employerService) { 28 | super(); 29 | this.employerUpdateRequestDao = employerUpdateRequestDao; 30 | this.fileService = fileService; 31 | this.employerService = employerService; 32 | } 33 | 34 | @Override 35 | public Result canSubmitNewUpdateRequest(int id) { 36 | EmployerUpdateRequest employerUpdateRequest = employerUpdateRequestDao.getByEmployer_UserIdAndIsApprovedIsNull(id); 37 | if(employerUpdateRequest != null) return new ErrorResult("Halihazırda onaylanmayı bekleyen bir güncelleme isteğiniz bulunuyor."); 38 | return new SuccessResult(); 39 | } 40 | 41 | @Override 42 | public Result addNew(EmployerUpdateRequestForAddDto employerUpdateRequestForAddDto,MultipartFile avatar) { 43 | Employer employer = employerService.getById(employerUpdateRequestForAddDto.getEmployerId()).getData(); 44 | EmployerUpdateRequest employerUpdateRequest = new EmployerUpdateRequest( 45 | employer, 46 | employerUpdateRequestForAddDto.getUpdatedCompanyName(), 47 | employerUpdateRequestForAddDto.getUpdatedCompanyPhone(), 48 | employerUpdateRequestForAddDto.getUpdatedCompanyWebsite(), 49 | employerUpdateRequestForAddDto.getUpdatedCompanyEmail(), 50 | LocalDate.now()); 51 | 52 | if(avatar != null) { 53 | String path = fileService.upload(avatar); 54 | employerUpdateRequest.setUpdatedAvatarPath(path); 55 | } 56 | 57 | employerUpdateRequestDao.save(employerUpdateRequest); 58 | return new SuccessResult("Güncelleme isteğiniz başarıyla alındı."); 59 | } 60 | 61 | 62 | } 63 | 64 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/ForeignLanguageManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.ForeignLanguageService; 9 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 10 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 11 | import com.kodlama.io.hrms.dataAccess.abstracts.ForeignLanguageDao; 12 | import com.kodlama.io.hrms.entities.concretes.ForeignLanguage; 13 | import com.kodlama.io.hrms.entities.dtos.ForeignLanguageDetailsDto; 14 | 15 | @Service 16 | public class ForeignLanguageManager implements ForeignLanguageService { 17 | 18 | private ForeignLanguageDao foreignLanguageDao; 19 | 20 | @Autowired 21 | public ForeignLanguageManager(ForeignLanguageDao foreignLanguageDao) { 22 | super(); 23 | this.foreignLanguageDao = foreignLanguageDao; 24 | } 25 | 26 | 27 | @Override 28 | public DataResult> findByResume_Id(int id) { 29 | return new SuccessDataResult>(foreignLanguageDao.findByResume_ResumeId(id)); 30 | } 31 | 32 | 33 | @Override 34 | public DataResult findById(int id) { 35 | return new SuccessDataResult( foreignLanguageDao.getOne( id )); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/JobAdvertisementManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.Date; 4 | import java.util.List; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.data.domain.Page; 8 | import org.springframework.data.domain.PageRequest; 9 | import org.springframework.data.domain.Pageable; 10 | import org.springframework.stereotype.Service; 11 | 12 | import com.kodlama.io.hrms.business.abstracts.CityService; 13 | import com.kodlama.io.hrms.business.abstracts.EmployerService; 14 | import com.kodlama.io.hrms.business.abstracts.JobAdvertisementService; 15 | import com.kodlama.io.hrms.business.abstracts.JobPositionService; 16 | import com.kodlama.io.hrms.core.utilities.business.BusinessRules; 17 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 18 | import com.kodlama.io.hrms.core.utilities.results.ErrorResult; 19 | import com.kodlama.io.hrms.core.utilities.results.Result; 20 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 21 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 22 | import com.kodlama.io.hrms.dataAccess.abstracts.JobAdvertisementDao; 23 | import com.kodlama.io.hrms.entities.concretes.JobAdvertisement; 24 | import com.kodlama.io.hrms.entities.dtos.JobAdvertisementForAddDto; 25 | import com.kodlama.io.hrms.entities.dtos.JobAdvertisementWithPagingDto; 26 | 27 | 28 | 29 | @Service 30 | public class JobAdvertisementManager implements JobAdvertisementService { 31 | 32 | private JobAdvertisementDao jobAdvertisementDao; 33 | private EmployerService employerService; 34 | private JobPositionService jobPositionService; 35 | private CityService cityService; 36 | 37 | 38 | 39 | 40 | @Autowired 41 | public JobAdvertisementManager(JobAdvertisementDao jobAdvertisementDao, EmployerService employerService, 42 | JobPositionService jobPositionService, CityService cityService) { 43 | super(); 44 | this.jobAdvertisementDao = jobAdvertisementDao; 45 | this.employerService = employerService; 46 | this.jobPositionService = jobPositionService; 47 | this.cityService = cityService; 48 | } 49 | 50 | 51 | 52 | @Override 53 | public DataResult> findByIsActiveTrue() { 54 | return new SuccessDataResult>(jobAdvertisementDao.findByIsActiveTrue()); 55 | } 56 | 57 | 58 | 59 | @Override 60 | public DataResult> findByIsActiveTrueOrderByCreateDate() { 61 | return new SuccessDataResult>(jobAdvertisementDao.findByIsActiveTrueOrderByCreateDate()); 62 | } 63 | 64 | 65 | 66 | @Override 67 | public DataResult> findByEmployer_EmployerId(int employerId) { 68 | return new SuccessDataResult>(jobAdvertisementDao.findByIsActiveTrueAndEmployer_UserId(employerId)); 69 | } 70 | 71 | 72 | 73 | @Override 74 | public Result addNew(JobAdvertisementForAddDto jobAdvertisement) { 75 | Result businessRulesResult = BusinessRules.run( 76 | isJobPositionValid(jobAdvertisement.getJobPositionId()), 77 | isJobDescValid(jobAdvertisement.getJobDescription()), 78 | isCityValid(jobAdvertisement.getCityId()), 79 | isOpenPositionValid(jobAdvertisement.getOpenPositionCount()), 80 | isEndDateValid(jobAdvertisement.getLastApplyDate()) 81 | ); 82 | if ( businessRulesResult != null ) return businessRulesResult; 83 | 84 | // Aslında burası authenticationdan gelecek fakat şu an öğrenmedik, o yüzden el ile istiyoruz :) 85 | if(!employerService.getById(jobAdvertisement.getEmployerId()).isSuccess()) { 86 | return new ErrorResult("Böyle bir iş veren firma yok."); 87 | } 88 | 89 | 90 | //Automapper entegrasyonu ile çok daha clean hale getirilebilir. 91 | JobAdvertisement jobAdvertisementToAdd = new JobAdvertisement(jobAdvertisement.getJobDescription(), 92 | jobAdvertisement.getMinSalary(), 93 | jobAdvertisement.getMaxSalary(), 94 | jobAdvertisement.getOpenPositionCount(), 95 | jobAdvertisement.getLastApplyDate(), 96 | new Date(), 97 | jobAdvertisement.isActive()); 98 | jobAdvertisementToAdd.setCity(cityService.getById(jobAdvertisement.getCityId()).getData()); 99 | jobAdvertisementToAdd.setJobPosition(jobPositionService.getById(jobAdvertisement.getJobPositionId()).getData()); 100 | jobAdvertisementToAdd.setEmployer(employerService.getById(jobAdvertisement.getEmployerId()).getData()); 101 | jobAdvertisementDao.save(jobAdvertisementToAdd); 102 | 103 | return new SuccessResult("İş ilanı başarı ile oluşturuldu."); 104 | } 105 | 106 | 107 | 108 | @Override 109 | public DataResult> findByIsActiveTrueAndIsApprovedTrue() { 110 | return new SuccessDataResult>(jobAdvertisementDao.findByIsActiveTrueAndIsApprovedTrue()); 111 | } 112 | 113 | 114 | 115 | 116 | @Override 117 | public DataResult findByIsActiveTrueAndIsApprovedTruePageable(int page, int size) { 118 | Pageable pageable = PageRequest.of(page,size); 119 | Page result = jobAdvertisementDao.findByIsActiveTrueAndIsApprovedTrue(pageable); 120 | JobAdvertisementWithPagingDto jobAdvertisementWithPagingDto = new JobAdvertisementWithPagingDto(result.getContent(), result.getTotalPages()); 121 | return new SuccessDataResult(jobAdvertisementWithPagingDto); 122 | } 123 | 124 | 125 | 126 | @Override 127 | public Result changeStatus(int advertisementId, int employerId) { 128 | JobAdvertisement jobAdvertisementToUpdate = jobAdvertisementDao.findByIdAndEmployer_UserId(advertisementId, employerId); 129 | if(jobAdvertisementToUpdate==null) return new ErrorResult("Bu kriterlere uyan bir iş ilanı bulamadı. Böyle bir iş ilanı yok veya bu iş ilanı bu şirkete ait değil"); 130 | jobAdvertisementToUpdate.setActive(!jobAdvertisementToUpdate.isActive()); 131 | jobAdvertisementDao.save(jobAdvertisementToUpdate); 132 | return new SuccessResult("Belirtilen iş ilanı " + (jobAdvertisementToUpdate.isActive() ? "aktif" : "pasif") + " hale getirildi."); 133 | } 134 | 135 | 136 | @Override 137 | public DataResult> findByUserFavorites(int userId) { 138 | return new SuccessDataResult>(this.jobAdvertisementDao.findUserFavoriteJobAds(userId)); 139 | } 140 | 141 | @Override 142 | public DataResult findById(int id) { 143 | return new SuccessDataResult(this.jobAdvertisementDao.getOne(id)); 144 | } 145 | 146 | 147 | private Result isJobPositionValid(int id) { 148 | if(id<=0) return new ErrorResult("İş pozisyonu doğru girilmedi."); 149 | if(jobPositionService.getById(id).getData() == null) return new ErrorResult("Böyle bir iş pozisyonu yok."); 150 | return new SuccessResult(); 151 | } 152 | private Result isJobDescValid(String jobDesc) { 153 | if(jobDesc == null || jobDesc.equals("")) return new ErrorResult("İş açıklaması doğru girilmedi"); 154 | return new SuccessResult(); 155 | } 156 | private Result isCityValid(int id) { 157 | if(id<=0) return new ErrorResult("Şehir doğru girilmedi"); 158 | if(cityService.getById(id).getData() == null) return new ErrorResult("Böyle bir şehir yok."); 159 | return new SuccessResult(); 160 | } 161 | private Result isOpenPositionValid(int count) { 162 | if(count<=0) return new ErrorResult("Açık iş pozisyonu 0 ve 0'dan küçük olamaz."); 163 | return new SuccessResult(); 164 | } 165 | private Result isEndDateValid(Date endDate) { 166 | 167 | if(new Date().compareTo(endDate) > 0) { 168 | return new ErrorResult("Son başvuru tarihi iş ilanı tarihinden önce olamaz."); 169 | } 170 | return new SuccessResult(); 171 | } 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | } 184 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/JobExperienceManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.JobExperienceService; 9 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 10 | import com.kodlama.io.hrms.core.utilities.results.Result; 11 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 12 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 13 | import com.kodlama.io.hrms.dataAccess.abstracts.JobExperienceDao; 14 | import com.kodlama.io.hrms.entities.concretes.JobExperience; 15 | import com.kodlama.io.hrms.entities.concretes.Resume; 16 | import com.kodlama.io.hrms.entities.dtos.JobExperienceForAddDto; 17 | 18 | @Service 19 | public class JobExperienceManager implements JobExperienceService{ 20 | 21 | private JobExperienceDao jobExperienceDao; 22 | 23 | @Autowired 24 | public JobExperienceManager(JobExperienceDao jobExperienceDao) { 25 | super(); 26 | this.jobExperienceDao = jobExperienceDao; 27 | } 28 | 29 | 30 | @Override 31 | public DataResult> findByResume_Id(int id) { 32 | return new SuccessDataResult>(jobExperienceDao.findByResume_IdOrderByEndDateDesc(id)); 33 | } 34 | 35 | 36 | @Override 37 | public Result add(JobExperienceForAddDto jobExperience,Resume resume) { 38 | JobExperience jobExperienceToAdd = new JobExperience(jobExperience.getOfficeName(), 39 | jobExperience.getPosition(), 40 | jobExperience.getStartDate(), 41 | jobExperience.getEndDate(), 42 | resume); 43 | jobExperienceDao.save(jobExperienceToAdd); 44 | return new SuccessResult(); 45 | } 46 | 47 | 48 | @Override 49 | public Result addRange(List jobExperiences, Resume resume) { 50 | for(JobExperienceForAddDto jobExperience : jobExperiences) { 51 | JobExperience jobExperienceToAdd = new JobExperience(jobExperience.getOfficeName(), 52 | jobExperience.getPosition(), 53 | jobExperience.getStartDate(), 54 | jobExperience.getEndDate(), 55 | resume); 56 | jobExperienceDao.save(jobExperienceToAdd); 57 | } 58 | return new SuccessResult(); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/JobPositionManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.JobPositionService; 9 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 10 | import com.kodlama.io.hrms.core.utilities.results.ErrorDataResult; 11 | import com.kodlama.io.hrms.core.utilities.results.ErrorResult; 12 | import com.kodlama.io.hrms.core.utilities.results.Result; 13 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 14 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 15 | import com.kodlama.io.hrms.dataAccess.abstracts.JobPositionDao; 16 | import com.kodlama.io.hrms.entities.concretes.JobPosition; 17 | import com.kodlama.io.hrms.entities.dtos.JobPositionForListingDto; 18 | 19 | @Service 20 | public class JobPositionManager implements JobPositionService { 21 | 22 | private JobPositionDao jobPositionDao; 23 | 24 | @Autowired 25 | public JobPositionManager(JobPositionDao jobPositionDao) { 26 | super(); 27 | this.jobPositionDao = jobPositionDao; 28 | } 29 | 30 | @Override 31 | public DataResult> getAll() { 32 | return new SuccessDataResult>(this.jobPositionDao.findAll()); 33 | } 34 | 35 | @Override 36 | public DataResult getByPositionName(String positionName) { 37 | return new SuccessDataResult(this.jobPositionDao.findByPositionName(positionName)); 38 | } 39 | 40 | @Override 41 | public Result addNew(JobPosition jobPosition) { 42 | if(jobPosition.getPositionName() == null || jobPosition.getPositionName() == "") 43 | return new ErrorResult("İş pozisyon ismi boş bırakılamaz."); 44 | if(getByPositionName(jobPosition.getPositionName()) != null) 45 | return new ErrorResult("Aynı isimde iki adet iş pozisyonu oluşturulamaz."); 46 | this.jobPositionDao.save(jobPosition); 47 | return new SuccessResult("İş pozisyonu başarıyla eklendi."); 48 | } 49 | 50 | @Override 51 | public DataResult getById(int id) { 52 | JobPosition jobPosition = jobPositionDao.findById(id); 53 | if(jobPosition==null) return new ErrorDataResult(); 54 | return new SuccessDataResult(jobPosition); 55 | } 56 | 57 | @Override 58 | public DataResult> getAllWithJobAdCount() { 59 | return new SuccessDataResult>(jobPositionDao.getAllWithJobAdCount()); 60 | } 61 | 62 | 63 | 64 | } 65 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/ResumeForeignLanguageManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.ForeignLanguageService; 9 | import com.kodlama.io.hrms.business.abstracts.ResumeForeignLanguageService; 10 | import com.kodlama.io.hrms.core.utilities.business.BusinessRules; 11 | import com.kodlama.io.hrms.core.utilities.results.ErrorResult; 12 | import com.kodlama.io.hrms.core.utilities.results.Result; 13 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 14 | import com.kodlama.io.hrms.dataAccess.abstracts.ResumeForeignLanguageDao; 15 | import com.kodlama.io.hrms.entities.concretes.Resume; 16 | import com.kodlama.io.hrms.entities.concretes.ResumeForeignLanguage; 17 | import com.kodlama.io.hrms.entities.dtos.ForeignLanguageForAddDto; 18 | 19 | @Service 20 | public class ResumeForeignLanguageManager implements ResumeForeignLanguageService { 21 | 22 | private ResumeForeignLanguageDao resumeForeignLanguageDao; 23 | private ForeignLanguageService foreignLanguageService; 24 | @Autowired 25 | public ResumeForeignLanguageManager(ResumeForeignLanguageDao resumeForeignLanguageDao, ForeignLanguageService foreignLanguageService) { 26 | super(); 27 | this.resumeForeignLanguageDao = resumeForeignLanguageDao; 28 | this.foreignLanguageService=foreignLanguageService; 29 | } 30 | 31 | @Override 32 | public Result addRange(List foreignLanguages , Resume resume) { 33 | 34 | for(ForeignLanguageForAddDto foreignLanguage : foreignLanguages) { 35 | Result businessRulesResult=BusinessRules.run( 36 | checkIfLanguageExistsInDatabase(foreignLanguage.getForeignLanguage().getId()) 37 | ); 38 | 39 | if(businessRulesResult != null) { 40 | return businessRulesResult; 41 | } 42 | ResumeForeignLanguage resumeForeignLanguage = new ResumeForeignLanguage(resume,foreignLanguage.getForeignLanguage(),foreignLanguage.getRatio()); 43 | 44 | resumeForeignLanguageDao.save(resumeForeignLanguage); 45 | } 46 | return new SuccessResult(); 47 | } 48 | 49 | private Result checkIfLanguageExistsInDatabase(int id) { 50 | if ( foreignLanguageService.findById(id) == null) { 51 | return new ErrorResult(); 52 | } 53 | return new SuccessResult(); 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/ResumeManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | 4 | 5 | 6 | import java.util.List; 7 | 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | import com.kodlama.io.hrms.business.abstracts.EmployeeService; 12 | import com.kodlama.io.hrms.business.abstracts.ForeignLanguageService; 13 | import com.kodlama.io.hrms.business.abstracts.JobExperienceService; 14 | import com.kodlama.io.hrms.business.abstracts.ResumeForeignLanguageService; 15 | import com.kodlama.io.hrms.business.abstracts.ResumeService; 16 | import com.kodlama.io.hrms.business.abstracts.ResumeSkillService; 17 | import com.kodlama.io.hrms.business.abstracts.SchoolDepartmentService; 18 | import com.kodlama.io.hrms.business.abstracts.SkillService; 19 | import com.kodlama.io.hrms.core.utilities.business.BusinessRules; 20 | import com.kodlama.io.hrms.core.utilities.files.FileService; 21 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 22 | import com.kodlama.io.hrms.core.utilities.results.ErrorDataResult; 23 | 24 | import com.kodlama.io.hrms.core.utilities.results.Result; 25 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 26 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 27 | import com.kodlama.io.hrms.dataAccess.abstracts.ResumeDao; 28 | import com.kodlama.io.hrms.entities.concretes.Employee; 29 | import com.kodlama.io.hrms.entities.concretes.Resume; 30 | import com.kodlama.io.hrms.entities.dtos.ResumeForAddDto; 31 | import com.kodlama.io.hrms.entities.dtos.ResumeWithDetailsDto; 32 | 33 | 34 | 35 | @Service 36 | public class ResumeManager implements ResumeService{ 37 | 38 | private ResumeDao resumeDao; 39 | private SchoolDepartmentService schoolDepartmentService; 40 | private JobExperienceService jobExperienceService; 41 | private ForeignLanguageService foreignLanguageService; 42 | private SkillService skillService; 43 | private ResumeForeignLanguageService resumeForeignLanguageService; 44 | private EmployeeService employeeService; 45 | private ResumeSkillService resumeSkillService; 46 | private FileService fileService; 47 | 48 | @Autowired 49 | public ResumeManager(ResumeDao resumeDao, 50 | SchoolDepartmentService schoolDepartmentService, 51 | JobExperienceService jobExperienceService, 52 | ForeignLanguageService foreignLanguageService, 53 | ResumeForeignLanguageService resumeForeignLanguageService, 54 | SkillService skillService, 55 | ResumeSkillService resumeSkillService, 56 | EmployeeService employeeService, 57 | FileService fileService) { 58 | super(); 59 | this.resumeDao = resumeDao; 60 | this.schoolDepartmentService = schoolDepartmentService; 61 | this.jobExperienceService = jobExperienceService; 62 | this.foreignLanguageService = foreignLanguageService; 63 | this.skillService = skillService; 64 | this.resumeForeignLanguageService=resumeForeignLanguageService; 65 | this.employeeService = employeeService; 66 | this.resumeSkillService = resumeSkillService; 67 | this.fileService = fileService; 68 | } 69 | 70 | 71 | @Override 72 | public DataResult getResumeWithDetails(int id) { 73 | ResumeWithDetailsDto resume = resumeDao.getResumeWithDetailsById(id); 74 | 75 | if(resume==null) return new ErrorDataResult(); 76 | 77 | resume.setSchoolDepartments(schoolDepartmentService.findByEmployeeSchoolDepartments_Employee_UserId(resume.getEmployee().getUserId()).getData()); 78 | 79 | resume.setJobExperiences(jobExperienceService.findByResume_Id(resume.getId()).getData()); 80 | 81 | resume.setForeignLanguages(foreignLanguageService.findByResume_Id(id).getData()); 82 | 83 | resume.setSkills(skillService.findByResume_Id(resume.getId()).getData()); 84 | 85 | return new SuccessDataResult(resume); 86 | } 87 | 88 | 89 | @Override 90 | public DataResult> getAll() { 91 | return new SuccessDataResult>(resumeDao.findAll()); 92 | } 93 | 94 | 95 | @Override 96 | public Result add(ResumeForAddDto resume) { 97 | 98 | Result businessRulesResult = BusinessRules.run(); 99 | if(businessRulesResult != null) return businessRulesResult; 100 | 101 | Employee employee = employeeService.getById(resume.getEmployeeId()).getData(); 102 | 103 | Resume resumeToAdd = new Resume(resume.getGithubAdress(), 104 | resume.getLinkedinAdress(), 105 | resume.getCoverLetter(), 106 | this.fileService.upload(resume.getPicture()), 107 | employee 108 | ); 109 | resumeDao.save(resumeToAdd); 110 | 111 | this.resumeForeignLanguageService.addRange(resume.getForeignLanguages(), resumeToAdd); 112 | this.jobExperienceService.addRange(resume.getJobExperiences(), resumeToAdd); 113 | this.resumeSkillService.addRange(resume.getSkills(), resumeToAdd); 114 | 115 | 116 | return new SuccessResult("CV başarıyla kaydedildi."); 117 | } 118 | 119 | 120 | @Override 121 | public DataResult> getAllByEmployeeId(int id) { 122 | return new SuccessDataResult>(resumeDao.getAllByEmployee_UserId(id)); 123 | } 124 | 125 | 126 | 127 | } 128 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/ResumeSkillManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.ResumeSkillService; 9 | import com.kodlama.io.hrms.core.utilities.business.BusinessRules; 10 | import com.kodlama.io.hrms.core.utilities.results.ErrorResult; 11 | import com.kodlama.io.hrms.core.utilities.results.Result; 12 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 13 | import com.kodlama.io.hrms.dataAccess.abstracts.ResumeSkillDao; 14 | import com.kodlama.io.hrms.entities.concretes.Resume; 15 | import com.kodlama.io.hrms.entities.concretes.ResumeSkill; 16 | import com.kodlama.io.hrms.entities.dtos.SkillForAddDto; 17 | 18 | @Service 19 | public class ResumeSkillManager implements ResumeSkillService{ 20 | 21 | @Autowired 22 | ResumeSkillDao resumeSkillDao; 23 | 24 | @Override 25 | public Result addRange(List skills, Resume resume) { 26 | for(SkillForAddDto skill : skills) { 27 | Result businessRules = BusinessRules.run(checkIfSkillExistsInDatabase(skill.getSkill().getId())); 28 | if(businessRules != null) return businessRules; 29 | 30 | ResumeSkill resumeSkill = new ResumeSkill(resume,skill.getSkill(), skill.getLevel()); 31 | System.out.println(resumeSkill.getSkill()); 32 | resumeSkillDao.save(resumeSkill); 33 | } 34 | return new SuccessResult(); 35 | } 36 | 37 | private Result checkIfSkillExistsInDatabase(int skillId) { 38 | if(resumeSkillDao.findById(skillId) == null) { 39 | return new ErrorResult(); 40 | } 41 | return new SuccessResult(); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/SchoolDepartmentManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.EmployeeSchoolDepartmentService; 9 | import com.kodlama.io.hrms.business.abstracts.EmployeeService; 10 | import com.kodlama.io.hrms.business.abstracts.SchoolDepartmentService; 11 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 12 | import com.kodlama.io.hrms.core.utilities.results.Result; 13 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 14 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 15 | import com.kodlama.io.hrms.dataAccess.abstracts.SchoolDepartmentDao; 16 | import com.kodlama.io.hrms.entities.concretes.EmployeeSchoolDepartment; 17 | import com.kodlama.io.hrms.entities.dtos.SchoolDepartmentDetailsDto; 18 | import com.kodlama.io.hrms.entities.dtos.SchoolDepartmentForAddDto; 19 | 20 | @Service 21 | public class SchoolDepartmentManager implements SchoolDepartmentService{ 22 | 23 | private SchoolDepartmentDao schoolDepartmentDao; 24 | private EmployeeSchoolDepartmentService employeeSchoolDepartmentService; 25 | private EmployeeService employeeService; 26 | 27 | @Autowired 28 | public SchoolDepartmentManager(SchoolDepartmentDao schoolDepartmentDao, 29 | EmployeeSchoolDepartmentService employeeSchoolDepartmentService, 30 | EmployeeService employeeService) { 31 | super(); 32 | this.schoolDepartmentDao = schoolDepartmentDao; 33 | this.employeeSchoolDepartmentService = employeeSchoolDepartmentService; 34 | this.employeeService = employeeService; 35 | } 36 | 37 | @Override 38 | public DataResult> findByEmployeeSchoolDepartments_Employee_UserId(int id) { 39 | 40 | return new SuccessDataResult>(schoolDepartmentDao.findByEmployeeSchoolDepartments_Employee_UserId(id)); 41 | } 42 | 43 | @Override 44 | public Result assignToEmployee(SchoolDepartmentForAddDto schoolDepartment) { 45 | this.employeeSchoolDepartmentService.add(new EmployeeSchoolDepartment( 46 | employeeService.getById(schoolDepartment.getEmployee().getUserId()).getData(), 47 | this.schoolDepartmentDao.getOne(schoolDepartment.getSchoolDepartment().getId()), 48 | schoolDepartment.getStartDate(), 49 | schoolDepartment.getEndDate() 50 | )); 51 | return new SuccessResult(); 52 | } 53 | 54 | 55 | 56 | } 57 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/SkillManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.SkillService; 9 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 10 | import com.kodlama.io.hrms.core.utilities.results.ErrorDataResult; 11 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 12 | import com.kodlama.io.hrms.dataAccess.abstracts.SkillDao; 13 | import com.kodlama.io.hrms.entities.concretes.Skill; 14 | import com.kodlama.io.hrms.entities.dtos.SkillDetailsDto; 15 | 16 | @Service 17 | public class SkillManager implements SkillService { 18 | 19 | private SkillDao skillDao; 20 | 21 | @Autowired 22 | public SkillManager(SkillDao skillDao) { 23 | super(); 24 | this.skillDao = skillDao; 25 | } 26 | 27 | @Override 28 | public DataResult> findByResume_Id(int id) { 29 | return new SuccessDataResult>(skillDao.findByResume_ResumeId(id)); 30 | } 31 | 32 | @Override 33 | public DataResult findById(int id) { 34 | Skill skill = skillDao.getOne(id); 35 | if(skill==null) return new ErrorDataResult(); 36 | return new SuccessDataResult(skill); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/SystemUserManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.SystemUserService; 9 | import com.kodlama.io.hrms.dataAccess.abstracts.SystemUserDao; 10 | import com.kodlama.io.hrms.entities.concretes.SystemUser; 11 | 12 | @Service 13 | public class SystemUserManager implements SystemUserService { 14 | private SystemUserDao systemUserDao; 15 | @Autowired 16 | public SystemUserManager(SystemUserDao systemUserDao) { 17 | super(); 18 | this.systemUserDao = systemUserDao; 19 | } 20 | 21 | @Override 22 | public List getAll() { 23 | return this.systemUserDao.findAll(); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/business/concretes/UserManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.business.concretes; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.kodlama.io.hrms.business.abstracts.UserService; 9 | import com.kodlama.io.hrms.core.utilities.mail.EmailService; 10 | import com.kodlama.io.hrms.core.utilities.results.DataResult; 11 | import com.kodlama.io.hrms.core.utilities.results.ErrorResult; 12 | import com.kodlama.io.hrms.core.utilities.results.Result; 13 | import com.kodlama.io.hrms.core.utilities.results.SuccessDataResult; 14 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 15 | import com.kodlama.io.hrms.dataAccess.abstracts.UserDao; 16 | import com.kodlama.io.hrms.entities.concretes.User; 17 | 18 | @Service 19 | public class UserManager implements UserService{ 20 | 21 | 22 | private UserDao userDao; 23 | private EmailService emailService; 24 | @Autowired 25 | public UserManager(UserDao userDao,EmailService emailService) { 26 | super(); 27 | this.userDao = userDao; 28 | this.emailService = emailService; 29 | } 30 | 31 | @Override 32 | public DataResult> getAll() { 33 | return new SuccessDataResult>( userDao.findAll() ); 34 | } 35 | 36 | @Override 37 | public DataResult getByEmail(String email) { 38 | return new SuccessDataResult(userDao.findByEmail(email)); 39 | } 40 | 41 | @Override 42 | public Result add(User user) { 43 | this.userDao.save(user); 44 | this.emailService.send(user.getEmail(), 45 | "Doğrulama Linki", 46 | "HRMS Sistemine hoşgeldiniz. " 47 | + "Aşşağıdaki linke tıklayarak üyeliğinizi doğrulayabilirsiniz \n " 48 | + "www.localhost:8080/api/users/verify?email=" + user.getEmail() + "&verifycode=" + user.getEmailVerifyCode()); 49 | return new SuccessResult(); 50 | } 51 | 52 | @Override 53 | public Result verifyUser(String email, String verificationCode) { 54 | User user = userDao.findByEmailAndEmailVerifyCode(email, verificationCode); 55 | if(user == null) 56 | return new ErrorResult("Doğrulama başarısız lütfen bilgileri doğru girdiğinizden emin olun."); 57 | 58 | user.setEmailVerified(true); 59 | userDao.save(user); 60 | return new SuccessResult("Kullanıcı e-postası başarıyla doğrulandı."); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/IdentityValidationService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities; 2 | 3 | import com.kodlama.io.hrms.core.utilities.results.Result; 4 | 5 | public interface IdentityValidationService { 6 | Result validate(String tckn, String firstName, String lastName, int yearOfDate); 7 | } 8 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/MernisServiceAdapter.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities; 2 | 3 | 4 | import org.springframework.stereotype.Service; 5 | 6 | import com.kodlama.io.hrms.core.utilities.results.Result; 7 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 8 | 9 | 10 | 11 | @Service 12 | public class MernisServiceAdapter implements IdentityValidationService{ 13 | 14 | @Override 15 | public Result validate(String tckn, String firstName, String lastName, int yearOfDate){ 16 | return new SuccessResult("TCKN doğrulaması başarılı."); 17 | } 18 | 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/business/BusinessRules.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.business; 2 | 3 | import com.kodlama.io.hrms.core.utilities.results.Result; 4 | 5 | public class BusinessRules { 6 | public static Result run(Result... logics) 7 | { 8 | for (Result result : logics) 9 | { 10 | if (!result.isSuccess()) 11 | { 12 | return result; 13 | } 14 | } 15 | 16 | return null; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/files/CloudinaryFileManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.files; 2 | 3 | import java.io.File; 4 | import java.io.FileOutputStream; 5 | import java.io.IOException; 6 | 7 | import org.springframework.beans.factory.annotation.Value; 8 | import org.springframework.stereotype.Service; 9 | import org.springframework.web.multipart.MultipartFile; 10 | 11 | import com.cloudinary.Cloudinary; 12 | import com.cloudinary.utils.ObjectUtils; 13 | import java.util.Map; 14 | 15 | @Service 16 | public class CloudinaryFileManager implements FileService { 17 | 18 | @Value("${cloudinary.cloud_name}") 19 | private String cloudName; 20 | 21 | @Value("${cloudinary.api_key}") 22 | private String apiKey; 23 | 24 | @Value("${cloudinary.api_secret}") 25 | private String apiSecret; 26 | 27 | 28 | @Override 29 | public String upload(MultipartFile file) { 30 | 31 | Cloudinary cloudinary = new Cloudinary(ObjectUtils.asMap( 32 | "cloud_name",cloudName, 33 | "api_key",apiKey, 34 | "api_secret",apiSecret)); 35 | 36 | try { 37 | File uploadedFile = convertMultiPartToFile(file); 38 | Map uploadResult = cloudinary.uploader().upload(uploadedFile, ObjectUtils.emptyMap()); 39 | return uploadResult.get("url").toString(); 40 | } catch (Exception e) { 41 | throw new RuntimeException(e); 42 | } 43 | } 44 | 45 | 46 | private File convertMultiPartToFile(MultipartFile file) throws IOException { 47 | File convFile = new File(file.getOriginalFilename()); 48 | FileOutputStream fos = new FileOutputStream(convFile); 49 | fos.write(file.getBytes()); 50 | fos.close(); 51 | return convFile; 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/files/FileService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.files; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | 5 | public interface FileService { 6 | String upload(MultipartFile file); 7 | } 8 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/mail/EmailManager.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.mail; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | import com.kodlama.io.hrms.core.utilities.results.Result; 6 | import com.kodlama.io.hrms.core.utilities.results.SuccessResult; 7 | 8 | @Service 9 | public class EmailManager implements EmailService{ 10 | 11 | @Override 12 | public Result send(String to, String title, String message) { 13 | return new SuccessResult("E-posta başarıyla gönderildi."); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/mail/EmailService.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.mail; 2 | 3 | import com.kodlama.io.hrms.core.utilities.results.Result; 4 | 5 | public interface EmailService { 6 | Result send(String to, String title, String message); 7 | } 8 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/results/DataResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.results; 2 | 3 | public class DataResult extends Result{ 4 | 5 | private T data; 6 | public DataResult(T data,boolean success, String message) { 7 | super(success, message); 8 | this.data = data; 9 | } 10 | public DataResult(T data,boolean success) { 11 | super(success); 12 | this.data = data; 13 | } 14 | 15 | public T getData() { 16 | return this.data; 17 | } 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/results/ErrorDataResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.results; 2 | 3 | public class ErrorDataResult extends DataResult { 4 | public ErrorDataResult(T data) { 5 | super(data, false); 6 | } 7 | public ErrorDataResult(T data, String message) { 8 | super(data, false, message); 9 | } 10 | public ErrorDataResult(String message) { 11 | super(null, false, message); 12 | } 13 | 14 | public ErrorDataResult() { 15 | super(null, false); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/results/ErrorResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.results; 2 | 3 | public class ErrorResult extends Result{ 4 | 5 | public ErrorResult() { 6 | super(false); 7 | } 8 | public ErrorResult(String message) { 9 | super(false, message); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/results/Result.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.results; 2 | 3 | public class Result { 4 | 5 | private boolean success; 6 | private String message; 7 | 8 | public Result(boolean success) { 9 | this.success = success; 10 | } 11 | public Result(boolean success, String message){ 12 | this(success); 13 | this.message = message; 14 | } 15 | 16 | public boolean isSuccess() { 17 | return this.success; 18 | } 19 | public String getMessage() { 20 | return this.message; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/results/SuccessDataResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.results; 2 | 3 | public class SuccessDataResult extends DataResult { 4 | 5 | public SuccessDataResult(T data) { 6 | super(data, true); 7 | } 8 | public SuccessDataResult(T data, String message) { 9 | super(data, true, message); 10 | } 11 | public SuccessDataResult(String message) { 12 | super(null, true, message); 13 | } 14 | 15 | public SuccessDataResult() { 16 | super(null, true); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/core/utilities/results/SuccessResult.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.core.utilities.results; 2 | 3 | public class SuccessResult extends Result{ 4 | 5 | public SuccessResult() { 6 | super(true); 7 | } 8 | public SuccessResult(String message) { 9 | super(true, message); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/CityDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.City; 6 | 7 | public interface CityDao extends JpaRepository{ 8 | City findById(int id); 9 | } 10 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/EmployeeDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.kodlama.io.hrms.entities.concretes.Employee; 8 | 9 | public interface EmployeeDao extends JpaRepository{ 10 | Employee findByNationalityId(String nationalityId); 11 | Employee findByUser_EmailAndUser_Password(String email,String password); 12 | } 13 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/EmployeeJobAdvertisementFavoriteDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.kodlama.io.hrms.entities.concretes.EmployeeJobAdvertisementFavorite; 8 | 9 | public interface EmployeeJobAdvertisementFavoriteDao extends JpaRepository { 10 | List getByEmployee_UserId(int id); 11 | EmployeeJobAdvertisementFavorite getByEmployee_UserIdAndJobAdvertisementId(int employeeId,int jobAdId); 12 | } 13 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/EmployeeSchoolDepartmentDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.EmployeeSchoolDepartment; 6 | 7 | public interface EmployeeSchoolDepartmentDao extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/EmployerDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.Employer; 6 | 7 | public interface EmployerDao extends JpaRepository{ 8 | Employer getByPhoneAndUser_Password(String phone,String password); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/EmployerUpdateRequestDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.EmployerUpdateRequest; 6 | 7 | public interface EmployerUpdateRequestDao extends JpaRepository{ 8 | EmployerUpdateRequest getByEmployer_UserIdAndIsApprovedIsNull(int employerId); 9 | } 10 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/ForeignLanguageDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.jpa.repository.Query; 7 | 8 | import com.kodlama.io.hrms.entities.concretes.ForeignLanguage; 9 | import com.kodlama.io.hrms.entities.dtos.ForeignLanguageDetailsDto; 10 | 11 | public interface ForeignLanguageDao extends JpaRepository{ 12 | @Query("Select new com.kodlama.io.hrms.entities.dtos.ForeignLanguageDetailsDto(fl.name, rfl.ratio) " 13 | + "From ForeignLanguage fl JOIN fl.resumeForeignLanguages rfl Where rfl.resume.id = :id") 14 | List findByResume_ResumeId(int id); 15 | } 16 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/JobAdvertisementDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.domain.Page; 6 | import org.springframework.data.domain.Pageable; 7 | import org.springframework.data.jpa.repository.JpaRepository; 8 | import org.springframework.data.jpa.repository.Query; 9 | 10 | import com.kodlama.io.hrms.entities.concretes.JobAdvertisement; 11 | 12 | 13 | 14 | public interface JobAdvertisementDao extends JpaRepository { 15 | List findByIsActiveTrue(); 16 | List findByIsActiveTrueOrderByCreateDate(); 17 | List findByIsActiveTrueAndEmployer_UserId(int userId); 18 | List findByIsActiveTrueAndIsApprovedTrue(); 19 | Page findByIsActiveTrueAndIsApprovedTrue(Pageable pageable); 20 | JobAdvertisement findByIdAndEmployer_UserId(int id, int userId); 21 | @Query("Select ja from JobAdvertisement ja JOIN ja.employeeJobAdvertisementFavorites ej JOIN ej.employee e Where e.userId=:userId") 22 | List findUserFavoriteJobAds(int userId); 23 | } 24 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/JobExperienceDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import com.kodlama.io.hrms.entities.concretes.JobExperience; 8 | 9 | public interface JobExperienceDao extends JpaRepository { 10 | List findByResume_IdOrderByEndDateDesc(int id); 11 | } 12 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/JobPositionDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.jpa.repository.Query; 7 | 8 | import com.kodlama.io.hrms.entities.concretes.JobPosition; 9 | import com.kodlama.io.hrms.entities.dtos.JobPositionForListingDto; 10 | 11 | public interface JobPositionDao extends JpaRepository{ 12 | @Query("Select new com.kodlama.io.hrms.entities.dtos.JobPositionForListingDto(jp.id,jp.positionName,COUNT(ja.id)) " 13 | + "FROM JobPosition jp JOIN jp.jobAdvertisements ja where ja.isActive=true group by jp.id,jp.positionName ") 14 | List getAllWithJobAdCount(); 15 | JobPosition findByPositionName(String positionName); 16 | JobPosition findById(int id); 17 | } 18 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/ResumeDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | 4 | 5 | import java.util.List; 6 | 7 | import org.springframework.data.jpa.repository.JpaRepository; 8 | import org.springframework.data.jpa.repository.Query; 9 | 10 | 11 | import com.kodlama.io.hrms.entities.concretes.Resume; 12 | import com.kodlama.io.hrms.entities.dtos.ResumeWithDetailsDto; 13 | 14 | 15 | public interface ResumeDao extends JpaRepository{ 16 | 17 | @Query("Select new com.kodlama.io.hrms.entities.dtos.ResumeWithDetailsDto" 18 | + "(r.id, r.githubAddress,r.linkedinAddress, r.coverLetter,r.picture,r.createDate,e)" 19 | + "From Resume r JOIN r.employee e Where r.id=:id") 20 | ResumeWithDetailsDto getResumeWithDetailsById(int id); 21 | 22 | List getAllByEmployee_UserId(int userId); 23 | } 24 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/ResumeForeignLanguageDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.ResumeForeignLanguage; 6 | 7 | public interface ResumeForeignLanguageDao extends JpaRepository{ 8 | 9 | } 10 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/ResumeSkillDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.ResumeSkill; 6 | 7 | public interface ResumeSkillDao extends JpaRepository{ 8 | 9 | } 10 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/SchoolDepartmentDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.jpa.repository.Query; 7 | 8 | import com.kodlama.io.hrms.entities.concretes.SchoolDepartment; 9 | import com.kodlama.io.hrms.entities.dtos.SchoolDepartmentDetailsDto; 10 | 11 | public interface SchoolDepartmentDao extends JpaRepository{ 12 | 13 | @Query("Select new com.kodlama.io.hrms.entities.dtos.SchoolDepartmentDetailsDto" 14 | + "(sd.department,es.startDate,es.graduateDate,sd.school.name) From SchoolDepartment sd JOIN sd.employeeSchoolDepartments es " 15 | + "Where es.employee.userId=:userId Order By es.graduateDate DESC") 16 | List findByEmployeeSchoolDepartments_Employee_UserId(int userId); 17 | } 18 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/SkillDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.jpa.repository.Query; 7 | 8 | import com.kodlama.io.hrms.entities.concretes.Skill; 9 | import com.kodlama.io.hrms.entities.dtos.SkillDetailsDto; 10 | 11 | public interface SkillDao extends JpaRepository{ 12 | @Query("Select new com.kodlama.io.hrms.entities.dtos.SkillDetailsDto" 13 | + "(s.name,rs.level) " 14 | + "From Skill s Join s.resumeSkills rs Where rs.resume.id=:id") 15 | List findByResume_ResumeId(int id); 16 | } 17 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/SystemUserDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.SystemUser; 6 | 7 | public interface SystemUserDao extends JpaRepository{ 8 | 9 | } 10 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/dataAccess/abstracts/UserDao.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.dataAccess.abstracts; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.User; 6 | 7 | public interface UserDao extends JpaRepository { 8 | User findByEmail(String email); 9 | User findByEmailAndEmailVerifyCode(String email, String emailVerifyCode); 10 | } 11 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/City.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | import java.util.List; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.FetchType; 9 | import javax.persistence.GeneratedValue; 10 | import javax.persistence.GenerationType; 11 | import javax.persistence.Id; 12 | import javax.persistence.OneToMany; 13 | import javax.persistence.Table; 14 | 15 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 16 | 17 | import lombok.AllArgsConstructor; 18 | import lombok.Data; 19 | import lombok.NoArgsConstructor; 20 | 21 | 22 | @Entity 23 | @Data 24 | @Table(name="cities") 25 | @NoArgsConstructor 26 | @AllArgsConstructor 27 | @JsonIgnoreProperties({"hibernateLazyInitializer","handler","jobAdvertisements"}) 28 | public class City { 29 | @Id 30 | @GeneratedValue(strategy=GenerationType.IDENTITY) 31 | @Column(name="id",nullable=false) 32 | private int id; 33 | 34 | @Column(name="name",nullable=false) 35 | private String name; 36 | 37 | @OneToMany(mappedBy="city",fetch = FetchType.LAZY) 38 | private List jobAdvertisements; 39 | } 40 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/Employee.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | 5 | import java.util.Date; 6 | import java.util.Set; 7 | 8 | import javax.persistence.Column; 9 | import javax.persistence.Entity; 10 | import javax.persistence.FetchType; 11 | import javax.persistence.Id; 12 | import javax.persistence.JoinColumn; 13 | import javax.persistence.OneToMany; 14 | import javax.persistence.OneToOne; 15 | import javax.persistence.Table; 16 | 17 | import com.fasterxml.jackson.annotation.JsonIgnore; 18 | 19 | import lombok.AllArgsConstructor; 20 | import lombok.Data; 21 | import lombok.NoArgsConstructor; 22 | 23 | @Entity 24 | @Data 25 | @Table(name="Employees") 26 | @AllArgsConstructor 27 | @NoArgsConstructor 28 | public class Employee { 29 | @Id 30 | @Column(name="`UserId`",nullable=false) 31 | private int userId; 32 | 33 | @Column(name="`FirstName`",nullable=false) 34 | private String firstName; 35 | 36 | @Column(name="`LastName`",nullable=false) 37 | private String lastName; 38 | 39 | 40 | @Column(name="`NationalityId`",unique=true,nullable=false) 41 | private String nationalityId; 42 | 43 | @Column(name="`BirthOfDate`",nullable=false) 44 | private Date birthOfDate; 45 | 46 | @OneToOne(fetch = FetchType.LAZY) 47 | @JoinColumn(name="`UserId`") 48 | private User user; 49 | 50 | @OneToMany(mappedBy="employee") 51 | @JsonIgnore() 52 | Set employeeSchoolDepartments; 53 | 54 | @OneToMany(mappedBy="employee") 55 | @JsonIgnore() 56 | Set resumees; 57 | 58 | @OneToMany(mappedBy="employee") 59 | @JsonIgnore() 60 | Set employeeJobAdvertisementFavorites; 61 | 62 | public Employee(int userId, String firstName, String lastName, String nationalityId, Date birthOfDate) { 63 | this.userId = userId; 64 | this.firstName = firstName; 65 | this.lastName = lastName; 66 | this.nationalityId = nationalityId; 67 | this.birthOfDate = birthOfDate; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/EmployeeJobAdvertisementFavorite.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | import javax.persistence.JoinColumn; 11 | import javax.persistence.ManyToOne; 12 | import javax.persistence.Table; 13 | 14 | import lombok.AllArgsConstructor; 15 | import lombok.Data; 16 | import lombok.NoArgsConstructor; 17 | 18 | @Data 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | @Entity 22 | @Table(name="employee_jobadvertisement_favorites") 23 | public class EmployeeJobAdvertisementFavorite { 24 | @Id 25 | @Column(name="favorite_id") 26 | @GeneratedValue(strategy = GenerationType.IDENTITY) 27 | private int id; 28 | 29 | @ManyToOne 30 | @JoinColumn(name="employee_id") 31 | private Employee employee; 32 | 33 | @ManyToOne 34 | @JoinColumn(name="jobadvertisement_id") 35 | private JobAdvertisement jobAdvertisement; 36 | } 37 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/EmployeeSchoolDepartment.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import java.util.Date; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.Id; 8 | import javax.persistence.JoinColumn; 9 | import javax.persistence.ManyToOne; 10 | import javax.persistence.Table; 11 | 12 | import lombok.AllArgsConstructor; 13 | import lombok.Data; 14 | import lombok.NoArgsConstructor; 15 | 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Entity 20 | @Table(name="employee_school_departments") 21 | public class EmployeeSchoolDepartment { 22 | 23 | @Id 24 | @Column(name="employee_school_department_id") 25 | private int id; 26 | 27 | @ManyToOne 28 | @JoinColumn(name="employee_id") 29 | private Employee employee; 30 | 31 | 32 | @ManyToOne 33 | @JoinColumn(name="school_department_id") 34 | private SchoolDepartment schoolDepartment; 35 | 36 | 37 | @Column(name = "start_date") 38 | private Date startDate; 39 | 40 | @Column(name = "graduate_date") 41 | private Date graduateDate; 42 | 43 | public EmployeeSchoolDepartment(Employee employee, SchoolDepartment schoolDepartment, Date startDate, 44 | Date graduateDate) { 45 | super(); 46 | this.employee = employee; 47 | this.schoolDepartment = schoolDepartment; 48 | this.startDate = startDate; 49 | this.graduateDate = graduateDate; 50 | } 51 | 52 | 53 | 54 | 55 | } 56 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/Employer.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | import java.util.List; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.FetchType; 9 | import javax.persistence.Id; 10 | import javax.persistence.JoinColumn; 11 | import javax.persistence.OneToMany; 12 | import javax.persistence.OneToOne; 13 | import javax.persistence.Table; 14 | 15 | import com.fasterxml.jackson.annotation.JsonIgnore; 16 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | @Entity 23 | @Data 24 | @Table(name="Employers") 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | @JsonIgnoreProperties({"hibernateLazyInitializer","handler","jobAdvertisements"}) 28 | public class Employer { 29 | 30 | @Id 31 | @Column(name="`UserId`") 32 | private int userId; 33 | 34 | @Column(name="`CompanyName`") 35 | private String companyName; 36 | 37 | @Column(name="`Phone`") 38 | private String phone; 39 | 40 | @Column(name="`VerifiedBySystem`") 41 | private boolean verifiedBySystem; 42 | 43 | @Column(name="`Website`") 44 | private String website; 45 | 46 | @Column(name="avatar_path") 47 | private String avatarPath; 48 | 49 | @OneToOne(fetch = FetchType.LAZY) 50 | @JoinColumn(name="`UserId`") 51 | private User user; 52 | 53 | @OneToMany(mappedBy="employer",fetch = FetchType.LAZY) 54 | private List jobAdvertisements; 55 | 56 | @OneToMany(mappedBy = "employer") 57 | @JsonIgnore() 58 | private List updateRequests; 59 | 60 | public Employer(int userId, String companyName, String phone, boolean verifiedBySystem, String website) { 61 | this.userId = userId; 62 | this.companyName = companyName; 63 | this.phone = phone; 64 | this.verifiedBySystem = verifiedBySystem; 65 | this.website = website; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/EmployerUpdateRequest.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import java.time.LocalDate; 4 | 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.GeneratedValue; 9 | import javax.persistence.GenerationType; 10 | import javax.persistence.Id; 11 | import javax.persistence.JoinColumn; 12 | import javax.persistence.ManyToOne; 13 | import javax.persistence.Table; 14 | 15 | import lombok.AllArgsConstructor; 16 | import lombok.Data; 17 | import lombok.NoArgsConstructor; 18 | 19 | @Entity 20 | @Data 21 | @Table(name="employer_update_requests") 22 | @AllArgsConstructor 23 | @NoArgsConstructor 24 | public class EmployerUpdateRequest { 25 | 26 | @Id 27 | @GeneratedValue(strategy = GenerationType.IDENTITY) 28 | @Column(name="updaterequest_id",nullable=false) 29 | private int id; 30 | 31 | @Column(name="updated_company_name") 32 | private String updatedCompanyName; 33 | 34 | @Column(name="updated_company_phone") 35 | private String updatedCompanyPhone; 36 | 37 | @Column(name="updated_company_website") 38 | private String updatedCompanyWebsite; 39 | 40 | @Column(name="updated_company_email") 41 | private String updatedCompanyEmail; 42 | 43 | @Column(name="updated_avatar_path") 44 | private String updatedAvatarPath; 45 | 46 | @Column(name="update_date") 47 | private LocalDate updateDate; 48 | 49 | @Column(name="approved_date") 50 | private LocalDate approvedDate; 51 | 52 | @Column(name="is_approved",nullable = true) 53 | private Boolean isApproved; 54 | 55 | @Column(name="approve_description",nullable = true) 56 | private String approveDescription; 57 | 58 | @ManyToOne() 59 | @JoinColumn(name="employer_id") 60 | private Employer employer; 61 | 62 | @ManyToOne() 63 | @JoinColumn(name="systemuser_id") 64 | private SystemUser systemUser; 65 | 66 | public EmployerUpdateRequest(Employer employer,String updatedCompanyName, String updatedCompanyPhone, String updatedCompanyWebsite, 67 | String updatedCompanyEmail, LocalDate updateDate) { 68 | super(); 69 | this.employer = employer; 70 | this.updatedCompanyName = updatedCompanyName; 71 | this.updatedCompanyPhone = updatedCompanyPhone; 72 | this.updatedCompanyWebsite = updatedCompanyWebsite; 73 | this.updatedCompanyEmail = updatedCompanyEmail; 74 | this.updateDate = updateDate; 75 | } 76 | 77 | 78 | 79 | 80 | 81 | } 82 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/ForeignLanguage.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | 5 | 6 | import java.util.Set; 7 | 8 | import javax.persistence.Column; 9 | import javax.persistence.Entity; 10 | import javax.persistence.GeneratedValue; 11 | import javax.persistence.GenerationType; 12 | import javax.persistence.Id; 13 | import javax.persistence.OneToMany; 14 | import javax.persistence.Table; 15 | 16 | import com.fasterxml.jackson.annotation.JsonIgnore; 17 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 18 | 19 | import lombok.AllArgsConstructor; 20 | import lombok.Data; 21 | import lombok.NoArgsConstructor; 22 | 23 | @Entity 24 | @NoArgsConstructor 25 | @AllArgsConstructor 26 | @Data 27 | @Table(name = "foreign_languages") 28 | @JsonIgnoreProperties({"hibernateLazyInitializer","handler","resumeForeignLanguages"}) 29 | public class ForeignLanguage { 30 | 31 | @Column(name="foreignlang_id",nullable=false ,insertable = false,updatable = false) 32 | @Id 33 | @GeneratedValue(strategy = GenerationType.IDENTITY) 34 | private int id; 35 | 36 | @Column(name="name",nullable = false) 37 | private String name; 38 | 39 | @OneToMany(mappedBy="foreignLanguage") 40 | @JsonIgnore() 41 | Set resumeForeignLanguages; 42 | 43 | } 44 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/JobAdvertisement.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import java.util.Date; 4 | import java.util.Set; 5 | 6 | import javax.persistence.CascadeType; 7 | import javax.persistence.Column; 8 | import javax.persistence.Entity; 9 | import javax.persistence.FetchType; 10 | import javax.persistence.GeneratedValue; 11 | import javax.persistence.GenerationType; 12 | import javax.persistence.Id; 13 | import javax.persistence.JoinColumn; 14 | import javax.persistence.ManyToOne; 15 | import javax.persistence.OneToMany; 16 | import javax.persistence.Table; 17 | 18 | import com.fasterxml.jackson.annotation.JsonIgnore; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Entity 25 | @Data 26 | @Table(name="jobAdvertisements") 27 | @NoArgsConstructor 28 | @AllArgsConstructor 29 | public class JobAdvertisement { 30 | @Id 31 | @GeneratedValue(strategy=GenerationType.IDENTITY) 32 | @Column(name="id",nullable=false) 33 | private int id; 34 | 35 | @Column(name="jobDescription",nullable=false) 36 | private String jobDescription; 37 | 38 | @Column(name="minSalary",nullable=true) 39 | private Double minSalary; 40 | 41 | @Column(name="maxSalary",nullable=true) 42 | private Double maxSalary; 43 | 44 | @Column(name="openPositionCount",nullable=false) 45 | private int openPositionCount; 46 | 47 | 48 | @Column(name="lastApplyDate",nullable=false) 49 | private Date lastApplyDate; 50 | 51 | @Column(name="createDate",nullable=false) 52 | private Date createDate; 53 | 54 | @Column(name="isActive",nullable=false) 55 | private boolean isActive; 56 | 57 | @Column(name="is_approved",nullable=false) 58 | private boolean isApproved; 59 | 60 | @ManyToOne() 61 | @JoinColumn(name="workingtype_id") 62 | private JobAdvertisementWorkingType workingType; 63 | 64 | @ManyToOne() 65 | @JoinColumn(name="workingtime_id") 66 | private JobAdvertisementWorkingTime workingTime; 67 | 68 | 69 | @ManyToOne(fetch = FetchType.LAZY, cascade={ CascadeType.PERSIST, CascadeType.MERGE }) 70 | @JoinColumn(name="cityid") 71 | private City city; 72 | 73 | @ManyToOne(fetch = FetchType.LAZY, cascade={ CascadeType.PERSIST, CascadeType.MERGE }) 74 | @JoinColumn(name="jobpositionid") 75 | private JobPosition jobPosition; 76 | 77 | @ManyToOne(fetch = FetchType.LAZY, cascade={ CascadeType.PERSIST, CascadeType.MERGE }) 78 | @JoinColumn(name="employerid") 79 | private Employer employer; 80 | 81 | @OneToMany(mappedBy="jobAdvertisement") 82 | @JsonIgnore() 83 | Set employeeJobAdvertisementFavorites; 84 | 85 | public JobAdvertisement(String jobDescription, Double minSalary, Double maxSalary, int openPositionCount, 86 | Date lastApplyDate, Date createDate, boolean isActive) { 87 | super(); 88 | this.jobDescription = jobDescription; 89 | this.minSalary = minSalary; 90 | this.maxSalary = maxSalary; 91 | this.openPositionCount = openPositionCount; 92 | this.lastApplyDate = lastApplyDate; 93 | this.createDate = createDate; 94 | this.isActive = isActive; 95 | } 96 | 97 | 98 | 99 | 100 | 101 | } 102 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/JobAdvertisementWorkingTime.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import java.util.List; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.FetchType; 8 | import javax.persistence.GeneratedValue; 9 | import javax.persistence.GenerationType; 10 | import javax.persistence.Id; 11 | import javax.persistence.OneToMany; 12 | import javax.persistence.Table; 13 | 14 | import com.fasterxml.jackson.annotation.JsonIgnore; 15 | 16 | import lombok.AllArgsConstructor; 17 | import lombok.Data; 18 | import lombok.NoArgsConstructor; 19 | 20 | @Entity 21 | @Data 22 | @Table(name="jobadvertisements_workingtimes") 23 | @NoArgsConstructor 24 | @AllArgsConstructor 25 | public class JobAdvertisementWorkingTime { 26 | @Id 27 | @GeneratedValue(strategy=GenerationType.IDENTITY) 28 | @Column(name="workingTime_id",nullable=false) 29 | private int workingTime_id; 30 | 31 | 32 | @Column(name="description",nullable = false,unique = true) 33 | private String description; 34 | 35 | @JsonIgnore() 36 | @OneToMany(mappedBy="workingTime",fetch = FetchType.LAZY) 37 | private List jobAdvertisements; 38 | } 39 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/JobAdvertisementWorkingType.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | import java.util.List; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.FetchType; 9 | import javax.persistence.GeneratedValue; 10 | import javax.persistence.GenerationType; 11 | import javax.persistence.Id; 12 | import javax.persistence.OneToMany; 13 | import javax.persistence.Table; 14 | 15 | import com.fasterxml.jackson.annotation.JsonIgnore; 16 | 17 | import lombok.AllArgsConstructor; 18 | import lombok.Data; 19 | import lombok.NoArgsConstructor; 20 | 21 | @Entity 22 | @Data 23 | @Table(name="jobadvertisements_workingtypes") 24 | @NoArgsConstructor 25 | @AllArgsConstructor 26 | public class JobAdvertisementWorkingType { 27 | @Id 28 | @GeneratedValue(strategy=GenerationType.IDENTITY) 29 | @Column(name="workingType_id",nullable=false) 30 | private int workingType_id; 31 | 32 | 33 | @Column(name="description",nullable = false,unique = true) 34 | private String description; 35 | 36 | @JsonIgnore() 37 | @OneToMany(mappedBy="workingType",fetch = FetchType.LAZY) 38 | private List jobAdvertisements; 39 | } 40 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/JobExperience.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import java.time.LocalDate; 4 | import java.util.Date; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.GeneratedValue; 9 | import javax.persistence.GenerationType; 10 | import javax.persistence.Id; 11 | import javax.persistence.JoinColumn; 12 | import javax.persistence.ManyToOne; 13 | import javax.persistence.Table; 14 | 15 | import com.fasterxml.jackson.annotation.JsonIgnore; 16 | import lombok.AllArgsConstructor; 17 | import lombok.Data; 18 | import lombok.NoArgsConstructor; 19 | 20 | @Entity 21 | @NoArgsConstructor 22 | @AllArgsConstructor 23 | @Data 24 | @Table(name="job_experience") 25 | public class JobExperience { 26 | @Id() 27 | @GeneratedValue(strategy = GenerationType.IDENTITY) 28 | @Column(name = "id") 29 | private int id; 30 | 31 | @Column(name = "office_name",nullable=false) 32 | private String officeName; 33 | 34 | @Column(name = "position",nullable=false) 35 | private String position; 36 | 37 | @Column(name = "start_date",nullable=false) 38 | private LocalDate startDate; 39 | 40 | @Column(name = "end_date",nullable=true) 41 | private Date endDate; 42 | 43 | @ManyToOne() 44 | @JoinColumn(name="resume_id") 45 | @JsonIgnore 46 | private Resume resume; 47 | 48 | public JobExperience(String officeName, String position, LocalDate startDate, Date endDate, Resume resume) { 49 | super(); 50 | this.officeName = officeName; 51 | this.position = position; 52 | this.startDate = startDate; 53 | this.endDate = endDate; 54 | this.resume = resume; 55 | } 56 | 57 | 58 | } 59 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/JobPosition.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | import java.util.List; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.FetchType; 9 | import javax.persistence.GeneratedValue; 10 | import javax.persistence.GenerationType; 11 | import javax.persistence.Id; 12 | import javax.persistence.OneToMany; 13 | import javax.persistence.Table; 14 | 15 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 16 | 17 | import lombok.AllArgsConstructor; 18 | import lombok.Data; 19 | import lombok.NoArgsConstructor; 20 | 21 | @Entity 22 | @Data 23 | @Table(name="jobpositions") 24 | @AllArgsConstructor 25 | @NoArgsConstructor 26 | @JsonIgnoreProperties({"hibernateLazyInitializer","handler","jobAdvertisements"}) 27 | public class JobPosition { 28 | @Id 29 | @GeneratedValue(strategy = GenerationType.IDENTITY) 30 | @Column(name="id",nullable=false) 31 | private int id; 32 | 33 | @Column(name="positionname",unique=true) 34 | private String positionName; 35 | 36 | 37 | @OneToMany(mappedBy = "jobPosition",fetch = FetchType.LAZY) 38 | private List jobAdvertisements; 39 | 40 | 41 | } 42 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/Resume.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | 5 | import java.util.Date; 6 | 7 | import java.util.Set; 8 | 9 | import javax.persistence.Column; 10 | import javax.persistence.Entity; 11 | import javax.persistence.GeneratedValue; 12 | import javax.persistence.GenerationType; 13 | import javax.persistence.Id; 14 | import javax.persistence.JoinColumn; 15 | import javax.persistence.ManyToOne; 16 | import javax.persistence.OneToMany; 17 | import javax.persistence.Table; 18 | 19 | import com.fasterxml.jackson.annotation.JsonIgnore; 20 | 21 | import lombok.AllArgsConstructor; 22 | import lombok.Data; 23 | import lombok.NoArgsConstructor; 24 | 25 | @Entity 26 | @NoArgsConstructor 27 | @AllArgsConstructor 28 | @Data 29 | @Table(name="resumes") 30 | public class Resume { 31 | @Id() 32 | @GeneratedValue(strategy = GenerationType.IDENTITY) 33 | @Column(name = "resume_id") 34 | private int id; 35 | 36 | 37 | @Column(name = "github_adress" , nullable=true) 38 | private String githubAddress; 39 | 40 | @Column(name = "linkedin_adress" , nullable=true) 41 | private String linkedinAddress; 42 | 43 | @Column(name = "cover_letter" , nullable=true) 44 | private String coverLetter; 45 | 46 | @Column(name = "picture" , nullable=true) 47 | private String picture; 48 | 49 | @Column(name = "create_date" , nullable=false) 50 | private Date createDate; 51 | 52 | 53 | 54 | 55 | @ManyToOne() 56 | @JoinColumn(name = "employee_id") 57 | @JsonIgnore 58 | private Employee employee; 59 | 60 | @OneToMany(mappedBy="resume") 61 | @JsonIgnore 62 | private Set jobExperiences; 63 | 64 | @OneToMany(mappedBy="resume") 65 | @JsonIgnore() 66 | Set resumeForeignLanguages; 67 | 68 | @OneToMany(mappedBy="resume") 69 | @JsonIgnore() 70 | Set resumeSkills; 71 | 72 | 73 | public Resume(String githubAddress, String linkedinAddress, String coverLetter, String picture, 74 | Employee employee) { 75 | super(); 76 | this.githubAddress = githubAddress; 77 | this.linkedinAddress = linkedinAddress; 78 | this.coverLetter = coverLetter; 79 | this.picture = picture; 80 | this.createDate = new Date(); 81 | this.employee = employee; 82 | } 83 | 84 | 85 | 86 | } 87 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/ResumeForeignLanguage.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.GeneratedValue; 6 | import javax.persistence.GenerationType; 7 | import javax.persistence.Id; 8 | import javax.persistence.JoinColumn; 9 | import javax.persistence.ManyToOne; 10 | import javax.persistence.Table; 11 | 12 | 13 | import lombok.AllArgsConstructor; 14 | import lombok.Data; 15 | import lombok.NoArgsConstructor; 16 | 17 | @Data 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | @Entity 21 | @Table(name="resume_foreign_languages") 22 | public class ResumeForeignLanguage { 23 | 24 | @Id 25 | @Column(name="resume_foreign_language_id") 26 | @GeneratedValue(strategy = GenerationType.IDENTITY) 27 | private int id; 28 | 29 | @ManyToOne 30 | @JoinColumn(name="resume_id") 31 | private Resume resume; 32 | 33 | @ManyToOne 34 | @JoinColumn(name="foreign_language_id") 35 | private ForeignLanguage foreignLanguage; 36 | 37 | 38 | @Column(name = "ratio") 39 | private int ratio; 40 | 41 | 42 | public ResumeForeignLanguage(Resume resume, ForeignLanguage foreignLanguage, int ratio) { 43 | super(); 44 | this.resume = resume; 45 | this.foreignLanguage = foreignLanguage; 46 | this.ratio = ratio; 47 | } 48 | 49 | 50 | 51 | } 52 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/ResumeSkill.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.GeneratedValue; 6 | import javax.persistence.GenerationType; 7 | import javax.persistence.Id; 8 | import javax.persistence.JoinColumn; 9 | import javax.persistence.ManyToOne; 10 | import javax.persistence.Table; 11 | 12 | import lombok.AllArgsConstructor; 13 | import lombok.Data; 14 | import lombok.NoArgsConstructor; 15 | 16 | @Data 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | @Entity 20 | @Table(name="resume_skills") 21 | public class ResumeSkill { 22 | 23 | @Id 24 | @Column(name="resume_skill_id") 25 | @GeneratedValue(strategy = GenerationType.IDENTITY) 26 | private int resume_skill_id; 27 | 28 | @ManyToOne 29 | @JoinColumn(name="resume_id") 30 | private Resume resume; 31 | 32 | @ManyToOne 33 | @JoinColumn(name="skill_id") 34 | private Skill skill; 35 | 36 | 37 | @Column(name = "level") 38 | private int level; 39 | 40 | 41 | public ResumeSkill(Resume resume, Skill skill, int level) { 42 | super(); 43 | this.resume = resume; 44 | this.skill = skill; 45 | this.level = level; 46 | } 47 | 48 | 49 | } 50 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/School.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | import javax.persistence.Column; 5 | import javax.persistence.Entity; 6 | import javax.persistence.GeneratedValue; 7 | import javax.persistence.GenerationType; 8 | import javax.persistence.Id; 9 | import javax.persistence.Table; 10 | 11 | import lombok.AllArgsConstructor; 12 | import lombok.Data; 13 | import lombok.NoArgsConstructor; 14 | 15 | @Entity 16 | @NoArgsConstructor 17 | @AllArgsConstructor 18 | @Data 19 | @Table(name="schools") 20 | public class School { 21 | @Id() 22 | @GeneratedValue(strategy = GenerationType.IDENTITY) 23 | @Column(name = "id") 24 | private int id; 25 | 26 | @Column(name = "name",nullable = false) 27 | private String name; 28 | } 29 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/SchoolDepartment.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import java.util.Set; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.GenerationType; 9 | import javax.persistence.Id; 10 | import javax.persistence.JoinColumn; 11 | import javax.persistence.ManyToOne; 12 | import javax.persistence.OneToMany; 13 | import javax.persistence.Table; 14 | 15 | import com.fasterxml.jackson.annotation.JsonIgnore; 16 | 17 | import lombok.AllArgsConstructor; 18 | import lombok.Data; 19 | import lombok.NoArgsConstructor; 20 | 21 | @Entity 22 | @NoArgsConstructor 23 | @AllArgsConstructor 24 | @Data 25 | @Table(name="school_departments") 26 | public class SchoolDepartment { 27 | @Id() 28 | @GeneratedValue(strategy = GenerationType.IDENTITY) 29 | @Column(name = "id") 30 | private int id; 31 | 32 | 33 | @Column(name = "department",nullable = false) 34 | private String department; 35 | 36 | @ManyToOne() 37 | @JoinColumn(name = "school_id") 38 | @JsonIgnore 39 | private School school; 40 | 41 | @OneToMany(mappedBy="schoolDepartment") 42 | @JsonIgnore 43 | Set employeeSchoolDepartments; 44 | 45 | 46 | } 47 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/Skill.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | 4 | import java.util.Set; 5 | 6 | 7 | import javax.persistence.Column; 8 | import javax.persistence.Entity; 9 | import javax.persistence.GeneratedValue; 10 | import javax.persistence.GenerationType; 11 | import javax.persistence.Id; 12 | import javax.persistence.OneToMany; 13 | import javax.persistence.Table; 14 | 15 | import com.fasterxml.jackson.annotation.JsonIgnore; 16 | 17 | import lombok.AllArgsConstructor; 18 | import lombok.Data; 19 | import lombok.NoArgsConstructor; 20 | 21 | @Entity 22 | @NoArgsConstructor 23 | @AllArgsConstructor 24 | @Data 25 | @Table(name="skills") 26 | public class Skill { 27 | @Id() 28 | @GeneratedValue(strategy = GenerationType.IDENTITY) 29 | @Column(name = "skill_id") 30 | private int id; 31 | 32 | @Column(name = "name",nullable = false) 33 | private String name; 34 | 35 | @OneToMany(mappedBy="skill") 36 | @JsonIgnore() 37 | Set resumeSkills; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/SystemUser.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.Id; 6 | import javax.persistence.Table; 7 | 8 | import lombok.AllArgsConstructor; 9 | import lombok.Data; 10 | import lombok.NoArgsConstructor; 11 | 12 | @Entity 13 | @Data 14 | @Table(name="SystemUsers") 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class SystemUser { 18 | @Id 19 | @Column(name="`UserId`") 20 | private int userId; 21 | 22 | @Column(name="`Roles`") 23 | private String roles; 24 | } 25 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/concretes/User.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.concretes; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Entity; 5 | import javax.persistence.GeneratedValue; 6 | import javax.persistence.GenerationType; 7 | import javax.persistence.Id; 8 | import javax.persistence.Table; 9 | 10 | import com.fasterxml.jackson.annotation.JsonIgnore; 11 | 12 | import lombok.AllArgsConstructor; 13 | import lombok.Data; 14 | import lombok.NoArgsConstructor; 15 | 16 | @Entity 17 | @Data 18 | @Table(name="Users") 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | public class User { 22 | 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.IDENTITY) 25 | @Column(name="id",nullable=false) 26 | private int id; 27 | 28 | @Column(name="email",unique=true,nullable=false) 29 | private String email; 30 | 31 | @JsonIgnore() 32 | @Column(name="password",nullable=false) 33 | private String password; 34 | 35 | @Column(name="emailVerified",nullable=false) 36 | private boolean emailVerified; 37 | 38 | @Column(name="emailVerifyCode",nullable=false) 39 | private String emailVerifyCode; 40 | 41 | public User(String email, String password, boolean emailVerified, String emailVerifyCode) { 42 | this.email = email; 43 | this.password = password; 44 | this.emailVerified = emailVerified; 45 | this.emailVerifyCode = emailVerifyCode; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/EmployeeForLoginDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class EmployeeForLoginDto { 13 | private String email; 14 | private String password; 15 | } 16 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/EmployeeForRegisterDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import java.util.Date; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotNull; 7 | import javax.validation.constraints.Size; 8 | 9 | import lombok.AllArgsConstructor; 10 | import lombok.Data; 11 | import lombok.NoArgsConstructor; 12 | 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | public class EmployeeForRegisterDto { 17 | @NotBlank 18 | @NotNull 19 | private String firstName; 20 | 21 | @NotBlank 22 | @NotNull 23 | private String lastName; 24 | 25 | @NotBlank 26 | @NotNull 27 | @Size(min=11,max=11) 28 | private String nationalityId; 29 | 30 | @NotNull 31 | private Date dateOfBirth; 32 | 33 | @NotBlank 34 | @NotNull 35 | private String email; 36 | 37 | @NotBlank 38 | @NotNull 39 | private String password; 40 | 41 | @NotBlank 42 | @NotNull 43 | private String verifyPassword; 44 | } 45 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/EmployerForLoginDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import javax.validation.constraints.NotBlank; 4 | import javax.validation.constraints.NotNull; 5 | 6 | import lombok.AllArgsConstructor; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | @Data 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | public class EmployerForLoginDto { 14 | @NotNull(message = "Telefon boş olamaz.") 15 | @NotBlank(message = "Telefon boş olamaz.") 16 | private String phone; 17 | @NotNull(message = "Şifre boş olamaz.") 18 | @NotBlank(message = "Şifre boş olamaz.") 19 | private String password; 20 | } 21 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/EmployerForRegisterDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | 4 | import javax.validation.constraints.Email; 5 | import javax.validation.constraints.NotBlank; 6 | import javax.validation.constraints.NotNull; 7 | 8 | import lombok.AllArgsConstructor; 9 | import lombok.Data; 10 | import lombok.NoArgsConstructor; 11 | 12 | @Data 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | public class EmployerForRegisterDto { 16 | @NotBlank 17 | @NotNull 18 | private String companyName; 19 | 20 | @NotBlank 21 | @NotNull 22 | private String phone; 23 | 24 | @NotBlank 25 | @NotNull 26 | private String website; 27 | 28 | @NotBlank 29 | @NotNull 30 | @Email 31 | private String email; 32 | 33 | @NotBlank 34 | @NotNull 35 | private String password; 36 | 37 | @NotBlank 38 | @NotNull 39 | private String verifyPassword; 40 | } 41 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/EmployerUpdateRequestForAddDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | 4 | import javax.validation.constraints.NotBlank; 5 | import javax.validation.constraints.NotNull; 6 | 7 | import org.springframework.web.multipart.MultipartFile; 8 | 9 | import lombok.AllArgsConstructor; 10 | import lombok.Data; 11 | import lombok.NoArgsConstructor; 12 | 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | public class EmployerUpdateRequestForAddDto { 17 | @NotNull(message="İş veren boş olamaz.") 18 | private int employerId; 19 | @NotNull(message = "Şirket adı boş olamaz.") 20 | @NotBlank(message = "Şirket adı boş olamaz.") 21 | private String updatedCompanyName; 22 | @NotNull(message = "Şirket telefonu boş olamaz.") 23 | @NotBlank(message = "Şirket telefonu boş olamaz.") 24 | private String updatedCompanyPhone; 25 | @NotNull(message = "Şirket website adresi boş olamaz.") 26 | @NotBlank(message = "Şirket website adresi boş olamaz.") 27 | private String updatedCompanyWebsite; 28 | @NotNull(message = "Şirket e-posta adresi boş olamaz.") 29 | @NotBlank(message = "Şirket e-posta adresi boş olamaz.") 30 | private String updatedCompanyEmail; 31 | } 32 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/ForeignLanguageDetailsDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class ForeignLanguageDetailsDto { 11 | private String name; 12 | private int ratio; 13 | } 14 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/ForeignLanguageForAddDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | 4 | import javax.validation.constraints.Max; 5 | import javax.validation.constraints.Min; 6 | import javax.validation.constraints.NotNull; 7 | 8 | import com.kodlama.io.hrms.entities.concretes.ForeignLanguage; 9 | 10 | import lombok.AllArgsConstructor; 11 | import lombok.Data; 12 | import lombok.NoArgsConstructor; 13 | 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class ForeignLanguageForAddDto { 18 | @NotNull 19 | private ForeignLanguage foreignLanguage; 20 | @NotNull 21 | @Min(1) 22 | @Max(5) 23 | private int ratio; 24 | } 25 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/JobAdvertisementFavoriteToToggleDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import com.kodlama.io.hrms.entities.concretes.ForeignLanguage; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class JobAdvertisementFavoriteToToggleDto { 13 | private int employeeId; 14 | private int jobAdvertisementId; 15 | } 16 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/JobAdvertisementForAddDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class JobAdvertisementForAddDto { 13 | private String jobDescription; 14 | private Double minSalary; 15 | private Double maxSalary; 16 | private int openPositionCount; 17 | private Date lastApplyDate; 18 | private boolean isActive; 19 | private int cityId; 20 | private int jobPositionId; 21 | private int employerId; 22 | } 23 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/JobAdvertisementForListingDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import com.kodlama.io.hrms.entities.concretes.City; 4 | import com.kodlama.io.hrms.entities.concretes.Employer; 5 | import com.kodlama.io.hrms.entities.concretes.JobPosition; 6 | 7 | import lombok.AllArgsConstructor; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | @Data 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | public class JobAdvertisementForListingDto { 15 | 16 | private int id; 17 | private Employer employer; 18 | private City city; 19 | private JobPosition jobPosition; 20 | } 21 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/JobAdvertisementWithPagingDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import java.util.List; 4 | 5 | import com.kodlama.io.hrms.entities.concretes.JobAdvertisement; 6 | 7 | import lombok.AllArgsConstructor; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | @Data 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | public class JobAdvertisementWithPagingDto { 15 | private List jobAdvertisements; 16 | private int totalPages; 17 | } 18 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/JobExperienceForAddDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import java.time.LocalDate; 4 | import java.util.Date; 5 | 6 | import javax.validation.constraints.NotBlank; 7 | import com.sun.istack.NotNull; 8 | 9 | import lombok.AllArgsConstructor; 10 | import lombok.Data; 11 | import lombok.NoArgsConstructor; 12 | 13 | 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class JobExperienceForAddDto { 18 | 19 | @NotNull 20 | @NotBlank 21 | private String officeName; 22 | 23 | @NotNull 24 | @NotBlank 25 | private String position; 26 | 27 | @NotNull 28 | private LocalDate startDate; 29 | 30 | private Date endDate; 31 | } 32 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/JobPositionForListingDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class JobPositionForListingDto { 12 | private int id; 13 | private String positionName; 14 | private long count; 15 | } 16 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/ResumeForAddDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import java.util.List; 4 | 5 | import javax.validation.Valid; 6 | 7 | import org.springframework.web.multipart.MultipartFile; 8 | 9 | import lombok.AllArgsConstructor; 10 | import lombok.Data; 11 | import lombok.NoArgsConstructor; 12 | 13 | @Data 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | public class ResumeForAddDto { 17 | 18 | 19 | private String githubAdress; 20 | private String linkedinAdress; 21 | private String coverLetter; 22 | private MultipartFile picture; 23 | 24 | private int employeeId; 25 | @Valid 26 | private List foreignLanguages; 27 | 28 | @Valid 29 | private List skills; 30 | 31 | @Valid 32 | private List jobExperiences; 33 | } 34 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/ResumeWithDetailsDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | 4 | 5 | import java.util.Date; 6 | import java.util.List; 7 | 8 | import com.kodlama.io.hrms.entities.concretes.Employee; 9 | import com.kodlama.io.hrms.entities.concretes.JobExperience; 10 | 11 | import lombok.AllArgsConstructor; 12 | import lombok.Data; 13 | import lombok.NoArgsConstructor; 14 | 15 | @Data 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | public class ResumeWithDetailsDto { 19 | private int Id; 20 | private String githubAddress; 21 | private String linkedinAddress; 22 | private String coverLetter; 23 | private String picture; 24 | private Date createDate; 25 | private Employee employee; 26 | 27 | private List jobExperiences; 28 | private List schoolDepartments; 29 | private List foreignLanguages; 30 | private List skills; 31 | 32 | public ResumeWithDetailsDto(int id, String githubAddress, String linkedinAddress, String coverLetter, 33 | String picture, Date createDate, Employee employee) { 34 | super(); 35 | Id = id; 36 | this.githubAddress = githubAddress; 37 | this.linkedinAddress = linkedinAddress; 38 | this.coverLetter = coverLetter; 39 | this.picture = picture; 40 | this.createDate = createDate; 41 | this.employee = employee; 42 | } 43 | 44 | 45 | } 46 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/SchoolDepartmentDetailsDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | 4 | import java.util.Date; 5 | 6 | 7 | import lombok.AllArgsConstructor; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | 11 | @Data 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | public class SchoolDepartmentDetailsDto { 15 | private String department; 16 | private Date startDate; 17 | private Date graduateDate; 18 | private String schoolName; 19 | } 20 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/SchoolDepartmentForAddDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import java.sql.Date; 4 | 5 | import javax.validation.constraints.NotNull; 6 | 7 | import com.kodlama.io.hrms.entities.concretes.Employee; 8 | import com.kodlama.io.hrms.entities.concretes.SchoolDepartment; 9 | 10 | import lombok.AllArgsConstructor; 11 | import lombok.Data; 12 | import lombok.NoArgsConstructor; 13 | 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class SchoolDepartmentForAddDto { 18 | 19 | @NotNull 20 | private SchoolDepartment schoolDepartment; 21 | @NotNull 22 | private Employee employee; 23 | @NotNull 24 | private Date startDate; 25 | private Date endDate; 26 | } 27 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/SkillDetailsDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class SkillDetailsDto { 13 | private String name; 14 | private int ratio; 15 | } 16 | -------------------------------------------------------------------------------- /hrms/src/main/java/com/kodlama/io/hrms/entities/dtos/SkillForAddDto.java: -------------------------------------------------------------------------------- 1 | package com.kodlama.io.hrms.entities.dtos; 2 | 3 | import javax.validation.constraints.Max; 4 | import javax.validation.constraints.Min; 5 | import javax.validation.constraints.NotNull; 6 | 7 | import com.kodlama.io.hrms.entities.concretes.Skill; 8 | 9 | import lombok.AllArgsConstructor; 10 | 11 | import lombok.Data; 12 | import lombok.NoArgsConstructor; 13 | 14 | @Data 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | public class SkillForAddDto { 18 | @NotNull 19 | private Skill skill; 20 | @NotNull 21 | @Min(1) 22 | @Max(3) 23 | private int level; 24 | } 25 | -------------------------------------------------------------------------------- /hrms/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 2 | spring.jpa.hibernate.ddl-auto=update 3 | spring.jpa.hibernate.show-sql=true 4 | spring.datasource.url=jdbc:postgresql://localhost:5432/HRMS 5 | spring.datasource.username=postgres 6 | spring.datasource.password=12345 7 | spring.jpa.properties.javax.persistence.validation.mode = none 8 | spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 9 | hibernate.globally_quoted_identifiers=true 10 | #Cloudinary Configuration 11 | cloudinary.cloud_name=df19wl431 12 | cloudinary.api_key=442718174911574 13 | cloudinary.api_secret=kafZaEKdcDPFRmlQoJYlEAG8eU8 --------------------------------------------------------------------------------