diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..85cbe21 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM adoptopenjdk:11-jre-hotspot +COPY build/libs/employement-profiling-system-0.0.1-SNAPSHOT.jar app.jar +RUN chmod 777 app.jar + +ENTRYPOINT [ "java", "-jar", "app.jar" ] \ No newline at end of file diff --git a/build.gradle b/build.gradle index 457756b..27f8b26 100644 --- a/build.gradle +++ b/build.gradle @@ -39,6 +39,9 @@ dependencies { compile 'com.google.apis:google-api-services-gmail:v1-rev83-1.23.0' compile group: 'javax.mail', name: 'mail', version: '1.4' compile group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1' + compile 'io.jsonwebtoken:jjwt-api:0.10.7' + runtime 'io.jsonwebtoken:jjwt-impl:0.10.7' + implementation 'io.fusionauth:fusionauth-jwt:3.1.6' } test { diff --git a/db/holiday.sql b/db/holiday.sql new file mode 100644 index 0000000..35a3e92 --- /dev/null +++ b/db/holiday.sql @@ -0,0 +1,42 @@ +DROP TABLE IF EXISTS employee cascade; + +CREATE TABLE employee ( + employee_id serial primary key, + employee_firstName text , + employee_lastName text , + employee_phoneNumber text, + employee_email text, + employee_address text, + employee_role text, + employee_dev_level text, + employee_hire_date DATE, + employee_onLeave BOOLEAN, + employee_gender text, + employee_status text +); + +--- DATABASE FOR HOLIDAY ME --- + +DROP TABLE IF EXISTS requests cascade; +DROP TABLE IF EXISTS request_status cascade; + +--- REQUEST STATUS --- + +CREATE TABLE request_status( + request_status_id serial primary key NOT NULL, + req_status varchar(10) +); + +INSERT INTO request_status(request_status_id, req_status) VALUES (1, 'PENDING'); +INSERT INTO request_status(request_status_id, req_status) VALUES (2, 'DECLINED'); +INSERT INTO request_status(request_status_id, req_status) VALUES (3, 'APPROVED'); + +--- REQUESTS TABLE --- + +CREATE TABLE requests( + request_id serial primary key NOT NULL, + requester_id int references employee(employee_id) NOT NULL, + request_start_date date NOT NULL, + request_report_date date NOT NULL, + request_status_id int references request_status(request_status_id) NOT NULL default 1 +); \ No newline at end of file diff --git a/db/holiday/holiday.sql b/db/holiday/holiday.sql new file mode 100644 index 0000000..e6da465 --- /dev/null +++ b/db/holiday/holiday.sql @@ -0,0 +1,21 @@ +--- DATABASE FOR HOLIDAY ME --- + +DROP TABLE IF EXISTS requests cascade; +DROP TABLE IF EXISTS request_status cascade; + +--- REQUEST STATUS --- + +CREATE TABLE request_status( + request_status_id serial primary key NOT NULL, + req_status varchar(10) +); + +--- REQUESTS TABLE --- + +CREATE TABLE requests( + request_id serial primary key NOT NULL, + requester_id int references employee(employee_id) NOT NULL, + request_start_date date NOT NULL, + request_report_date date NOT NULL, + request_status_id int references request_status(request_status_id) NOT NULL default 1 +); \ No newline at end of file diff --git a/db/holiday/requestStatusInsertion.sql b/db/holiday/requestStatusInsertion.sql new file mode 100644 index 0000000..e1072a8 --- /dev/null +++ b/db/holiday/requestStatusInsertion.sql @@ -0,0 +1,3 @@ +INSERT INTO request_status(req_status) VALUES ('PENDING'); +INSERT INTO request_status(req_status) VALUES ('DECLINED'); +INSERT INTO request_status(req_status) VALUES ('APPROVED'); diff --git a/db/holiday/requestsTableInsertion.sql b/db/holiday/requestsTableInsertion.sql new file mode 100644 index 0000000..d036955 --- /dev/null +++ b/db/holiday/requestsTableInsertion.sql @@ -0,0 +1,3 @@ +INSERT INTO requests(requester_id, request_start_date, request_report_date, request_status_id) values(1,'2020-02-20', '2020-02-25', 2); +INSERT INTO requests(requester_id, request_start_date, request_report_date, request_status_id) values(1,'2020-02-20', '2020-02-25', 3); +INSERT INTO requests(requester_id, request_start_date, request_report_date, request_status_id) values(1,'2020-02-20', '2020-02-25', 1); diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..20da902 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,33 @@ +version: '3' +services: + apigateway: + image: "idawud/turntablapigateway:latest" + env_file: + - .envs/.apigateway + ports: + - "80:8081" + permission: + image: "idawud/accperm:v3" + env_file: + - .envs/.permission + ports: + - "5000:5000" + gis: + image: "isammyk/gis-docker:latest" + env_file: + - .envs/.gis + ports: + - "5004:5004" + chess: + image: "francisbilla/chess:latest" + env_file: + - .envs/.chess + ports: + - "8080:8080" + holidayrequest: + image: " billalidocker/employee-service:latest" + env_file: + - .envs/.holidayrequest + ports: + - "7070:7070" + diff --git a/init.sh b/init.sh new file mode 100644 index 0000000..7fcb27f --- /dev/null +++ b/init.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +#create init env files: list all services in the array, separeted by space +declare -a arr=("apigateway" "gis" "permission" "chess" "holidayrequest") + +for i in "${arr[@]}" +do + filename="./.envs/.$i" + if [[ ! -e "$filename" ]]; then + mkdir -p ./.envs + touch $filename + fi +done + +# install docker +if docker --version 2>&1 >/dev/null ; then + echo >&2 "docker installed" +else + sudo apt install docker -y +fi + +#install docker-compose +if docker-compose --version 2>&1 >/dev/null ; then + echo >&2 "docker-compose installed" +else + sudo apt install docker-compose -y +fi + +# run docker-compose +declare -i count=$(docker-compose ps | wc -l) +if [ $count -gt 2 ]; then + echo "Restarting services:...." + sudo docker-compose down + sudo docker-compose pull + sudo docker rmi $(docker images -a | grep '' | awk '{print $3}') + sudo docker-compose build --no-cache + sudo docker-compose up -d +else + echo "Starting all services:....." + sudo docker-compose down + sudo docker-compose pull + sudo docker rmi $(docker images -a | grep '' | awk '{print $3}') + sudo docker-compose build --no-cache + sudo docker-compose up -d +fi \ No newline at end of file diff --git a/public_key.pem b/public_key.pem new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/io/turntabl/employementprofilingsystem/Controllers/EmployeeController.java b/src/main/java/io/turntabl/employementprofilingsystem/Controllers/EmployeeController.java index fbca8f2..0cad43c 100644 --- a/src/main/java/io/turntabl/employementprofilingsystem/Controllers/EmployeeController.java +++ b/src/main/java/io/turntabl/employementprofilingsystem/Controllers/EmployeeController.java @@ -2,11 +2,11 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import io.turntabl.employementprofilingsystem.DAO.EmployeeDAO; import io.turntabl.employementprofilingsystem.Models.AddEmployee; import io.turntabl.employementprofilingsystem.Models.EditEmployee; -import io.turntabl.employementprofilingsystem.Transfers.*; +import io.turntabl.employementprofilingsystem.Transfers.Employee; +import io.turntabl.employementprofilingsystem.Transfers.UpdateEmployee; import io.turntabl.employementprofilingsystem.Utilities.Date; import io.turntabl.employementprofilingsystem.Utilities.Parsor; import org.springframework.beans.factory.annotation.Autowired; @@ -14,14 +14,14 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.simple.SimpleJdbcInsert; import org.springframework.web.bind.annotation.*; - -import java.sql.SQLException; -import java.util.*; -import java.util.stream.Collectors; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Api @RestController -class EmployeeController implements EmployeeDAO{ +class EmployeeController implements EmployeeDAO { @Autowired JdbcTemplate jdbcTemplate; diff --git a/src/main/java/io/turntabl/employementprofilingsystem/Controllers/RequestController.java b/src/main/java/io/turntabl/employementprofilingsystem/Controllers/RequestController.java new file mode 100644 index 0000000..b755311 --- /dev/null +++ b/src/main/java/io/turntabl/employementprofilingsystem/Controllers/RequestController.java @@ -0,0 +1,148 @@ +package io.turntabl.employementprofilingsystem.Controllers; + +import io.fusionauth.jwt.JWTException; +import io.fusionauth.jwt.Verifier; +import io.fusionauth.jwt.domain.JWT; +import io.fusionauth.jwt.rsa.RSAVerifier; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +import io.turntabl.employementprofilingsystem.Models.AddEmployee; +import io.turntabl.employementprofilingsystem.Gmail.Email; +import io.turntabl.employementprofilingsystem.Models.RequestTO; +import io.turntabl.employementprofilingsystem.Transfers.Employee; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.simple.SimpleJdbcInsert; +import org.springframework.web.bind.annotation.*; +import java.io.IOException; +import java.nio.file.Paths; +import java.security.GeneralSecurityException; +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Api +@RestController +public class RequestController { + + @Autowired + JdbcTemplate jdbcTemplate; + + @CrossOrigin + @ApiOperation("Make a holiday request") + @PostMapping("/api/v1/request") + public void makeARequest(@RequestBody RequestTO request) { + jdbcTemplate.update("insert into requests(requester_id, request_start_date, request_report_date) values(?,?,?)", + request.getRequester_id(), request.getRequest_start_date(), request.getRequest_report_date()); + + SimpleDateFormat DateFor = new SimpleDateFormat("E, dd MMMM yyyy"); + String startDate = DateFor.format(request.getRequest_start_date()); + String reportDate = DateFor.format(request.getRequest_report_date()); + + try { + Email.requestMessage("isaac.agyen@turntabl.io", request.getFrom() ,"Holiday request", startDate, reportDate, request.getRequester_name()); + } catch (IOException e) { + e.printStackTrace(); + } catch (GeneralSecurityException e) { + e.printStackTrace(); + } + } + + @CrossOrigin + @ApiOperation("Get all holiday requests for requester") + @GetMapping("/api/v1/request/requester/{id}") + + public List getRequestByRequesterId(@PathVariable("id") Integer id) { + return this.jdbcTemplate.query( + " select request_start_date, request_report_date, request_status.req_status from requests inner join request_status on requests.request_status_id = request_status.request_status_id where requester_id =?", + new Object[]{id}, + new BeanPropertyRowMapper<>(RequestTO.class) + ); + } + + @CrossOrigin + @ApiOperation("Get all holiday requests") + @GetMapping("/api/v1/requests") + + public List getAllRequests() { + return this.jdbcTemplate.query("select request_start_date, request_report_date, request_status.req_status from requests inner join request_status on requests.request_status_id = request_status.request_status_id", + new BeanPropertyRowMapper(RequestTO.class) + + ); + } + + @CrossOrigin + @ApiOperation("Accept holiday request") + @PutMapping("/api/v1/requests/approve/{id}") + public void approveRequest(@PathVariable("id") Integer request_id) { + this.jdbcTemplate.update("update requests set request_status_id = 3 where request_status_id = 1 and request_id = ?", request_id); + } + + @CrossOrigin + @ApiOperation("Decline holiday request") + @PutMapping("/api/v1/requests/decline/{id}") + public void declineRequest(@PathVariable("id") Integer request_id) { + this.jdbcTemplate.update("update requests set request_status_id = 2 where request_status_id = 1 and request_id = ?", request_id); + } + + @CrossOrigin + @ApiOperation("validating employee with OIDC") + @PostMapping("/validate") + public Map checkToken(@RequestHeader("access-token") String token){ + Map response = new HashMap<>(); + + Verifier verifier = RSAVerifier.newVerifier(Paths.get("public_key.pem")); + try { + // Verify and decode the encoded string JWT to a rich object + JWT jwt = JWT.getDecoder().decode(token,verifier); + response.put("success", true); + response.put("decoded_token", jwt); + return response; + } catch (JWTException e) { + e.getCause(); + response.put("success", false); + return response; + } + } + + @CrossOrigin + @ApiOperation("Checking available email") + @GetMapping("/verifymail/{email}") + public Map check_employee_exits(@PathVariable("email") String email) { + Map response = new HashMap<>(); + + response.put("response", this.jdbcTemplate.query("select * from employee where employee_email = ?", + new Object[]{email}, + BeanPropertyRowMapper.newInstance(Employee.class) + ) ); + return response; + } + + + @CrossOrigin + @ApiOperation("Checking available email") + @PostMapping("/addemployee") + public Map addemployeeDetails(@RequestBody Employee employeeDetails) { + Map response = new HashMap<>(); + + SimpleJdbcInsert insertActor = new SimpleJdbcInsert(jdbcTemplate).withTableName("employee").usingGeneratedKeyColumns("employee_id"); + Map insertEmployeeDetails = new HashMap<>(); + insertEmployeeDetails.put("employee_firstname", employeeDetails.getEmployee_firstname()); + insertEmployeeDetails.put("employee_lastname", employeeDetails.getEmployee_lastname()); + insertEmployeeDetails.put("employee_email", employeeDetails.getEmployee_email()); + + Number Key = insertActor.executeAndReturnKey(insertEmployeeDetails); + if (Key != null){ + response.put("success",true); + response.put("employee_id",Key.longValue()); + }else { + response.put("success",false); + response.put("msg","Failed to add new employee, try again later"); + } + return response; + } +} + diff --git a/src/main/java/io/turntabl/employementprofilingsystem/DAO/EmployeeDAO.java b/src/main/java/io/turntabl/employementprofilingsystem/DAO/EmployeeDAO.java index 5ede3ce..8d019e6 100644 --- a/src/main/java/io/turntabl/employementprofilingsystem/DAO/EmployeeDAO.java +++ b/src/main/java/io/turntabl/employementprofilingsystem/DAO/EmployeeDAO.java @@ -13,7 +13,7 @@ public interface EmployeeDAO { @PostMapping("/v1/api/employee") Map addEmployee(@RequestBody AddEmployee requestData); - @ApiOperation("List of Employee Profile") + @ApiOperation("List of Employee") @CrossOrigin(origins = "*") @GetMapping("/v1/api/employees") Map getAllEmployee(); diff --git a/src/main/java/io/turntabl/employementprofilingsystem/EmployementProfilingSystemApplication.java b/src/main/java/io/turntabl/employementprofilingsystem/EmployementProfilingSystemApplication.java index 8a8eec0..d905396 100644 --- a/src/main/java/io/turntabl/employementprofilingsystem/EmployementProfilingSystemApplication.java +++ b/src/main/java/io/turntabl/employementprofilingsystem/EmployementProfilingSystemApplication.java @@ -17,6 +17,7 @@ public class EmployementProfilingSystemApplication { public static void main(String[] args) throws GeneralSecurityException, IOException { SpringApplication.run(EmployementProfilingSystemApplication.class, args); + } } diff --git a/src/main/java/io/turntabl/employementprofilingsystem/Gmail/Email.java b/src/main/java/io/turntabl/employementprofilingsystem/Gmail/Email.java new file mode 100644 index 0000000..c5aaed9 --- /dev/null +++ b/src/main/java/io/turntabl/employementprofilingsystem/Gmail/Email.java @@ -0,0 +1,152 @@ +package io.turntabl.employementprofilingsystem.Gmail; + +import java.io.IOException; +import java.security.GeneralSecurityException; + +public class Email { + public static void requestMessage(String to, String from, String subject, String request_start_date, String request_report_date, String requester_name) throws IOException, GeneralSecurityException { + String bodyText = "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " Pollstar\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
 \n" + + "
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
\n" + + "

Hi there,

\n" + + "

Holiday request by " + requester_name + "

\n" + + "

Start date: " + request_start_date + "

\n" + + "

Report date: " + request_report_date +"

\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
Take Action
\n" + + "
\n" + + "
\n" + + "
\n" + + "
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
\n" + + " Turntabl, Achimota, Mile 7, Sonnidom house\n" + + "
Turntabl.\n" + + "
\n" + + "
\n" + + "
\n" + + "
 
\n" + + " \n" + + " "; + + GmailService.sendMail(from, to, subject, bodyText.toString()); + } +} \ No newline at end of file diff --git a/src/main/java/io/turntabl/employementprofilingsystem/Gmail/GmailService.java b/src/main/java/io/turntabl/employementprofilingsystem/Gmail/GmailService.java new file mode 100644 index 0000000..b877c99 --- /dev/null +++ b/src/main/java/io/turntabl/employementprofilingsystem/Gmail/GmailService.java @@ -0,0 +1,96 @@ +package io.turntabl.employementprofilingsystem.Gmail; + +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.JsonFactory; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.Base64; +import com.google.api.services.gmail.Gmail; +import com.google.api.services.gmail.GmailScopes; +import com.google.api.services.gmail.model.Message; +import com.google.common.collect.ImmutableList; + +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import java.io.ByteArrayOutputStream; +import java.io.FileInputStream; +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.util.List; +import java.util.Properties; + +public class GmailService { + private static final String APPLICATION_NAME = "GmailService"; + private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); + + private static final List SCOPES = ImmutableList.of(GmailScopes.GMAIL_SEND, GmailScopes.GMAIL_COMPOSE); + private static final String CREDENTIALS_FILE_PATH = "credentials.json"; + + public static void sendMail(String from, String to, String subject, String bodyText) throws IOException, GeneralSecurityException { + Gmail service = getGmail(from); + System.out.println(service.getApplicationName()); + System.out.println(service.getBaseUrl()); + System.out.println(service.users().toString()); + + try { + service.users().messages().send(from, + createMessageWithEmail(createEmail(to, from, subject, bodyText)) + ).execute(); + } catch (MessagingException e) { + e.printStackTrace(); + } + } + + public static Gmail getGmail(String from) throws GeneralSecurityException, IOException { + HttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); + + GoogleCredential gcFromJson = GoogleCredential + .fromStream(new FileInputStream(CREDENTIALS_FILE_PATH)) + .createScoped(SCOPES); + + GoogleCredential credential = new GoogleCredential.Builder() + .setTransport(gcFromJson.getTransport()) + .setJsonFactory(gcFromJson.getJsonFactory()) + .setServiceAccountId(gcFromJson.getServiceAccountId()) + .setServiceAccountUser( from) + .setServiceAccountPrivateKey(gcFromJson.getServiceAccountPrivateKey()) + .setServiceAccountScopes(gcFromJson.getServiceAccountScopes()) + .setTokenServerEncodedUrl(gcFromJson.getTokenServerEncodedUrl()) + .build(); + + return new Gmail.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential) + .setApplicationName(APPLICATION_NAME) + .build(); + } + + private static Message createMessageWithEmail(MimeMessage emailContent) + throws MessagingException, IOException { + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + emailContent.writeTo(buffer); + byte[] bytes = buffer.toByteArray(); + String encodedEmail = Base64.encodeBase64URLSafeString(bytes); + Message message = new Message(); + message.setRaw(encodedEmail); + return message; + } + + private static MimeMessage createEmail(String to, + String from, + String subject, + String bodyText) throws MessagingException { + Properties props = new Properties(); + Session session = Session.getDefaultInstance(props, null); + + MimeMessage email = new MimeMessage(session); + + email.setFrom(new InternetAddress( from )); + email.addRecipient(javax.mail.Message.RecipientType.TO, + new InternetAddress(to)); + email.setSubject(subject); + email.setText(bodyText, "UTF-8", "html"); + return email; + } +} diff --git a/src/main/java/io/turntabl/employementprofilingsystem/Models/RequestTO.java b/src/main/java/io/turntabl/employementprofilingsystem/Models/RequestTO.java new file mode 100644 index 0000000..3fdf413 --- /dev/null +++ b/src/main/java/io/turntabl/employementprofilingsystem/Models/RequestTO.java @@ -0,0 +1,114 @@ +package io.turntabl.employementprofilingsystem.Models; + +import java.text.SimpleDateFormat; +import java.util.Date; + +public class RequestTO { + private int request_id; + private int requester_id; + private Date request_start_date; + private Date request_report_date; + private int request_status_id; + private String from; + private String requester_name; + private String req_status; + + public RequestTO() { + } + + public RequestTO(int request_id, int requester_id, Date request_start_date, Date request_report_date, int request_status_id, String from, String requester_name, String req_status) { + this.request_id = request_id; + this.requester_id = requester_id; + this.request_start_date = request_start_date; + this.request_report_date = request_report_date; + this.request_status_id = request_status_id; + this.from = from; + this.requester_name = requester_name; + this.req_status = req_status; + } + +// SimpleDateFormat DateFor = new SimpleDateFormat("E, dd MMMM yyyy"); +// String startDate = DateFor.format(request.getRequest_start_date()); +// String reportDate = DateFor.format(request.getRequest_report_date()); + + public int getRequest_id() { + return request_id; + } + + public void setRequest_id(int request_id) { + this.request_id = request_id; + } + + public int getRequester_id() { + return requester_id; + } + + public void setRequester_id(int requester_id) { + this.requester_id = requester_id; + } + + public Date getRequest_start_date() { + // SimpleDateFormat DateFor = new SimpleDateFormat("E, dd MMMM yyyy"); + // String request_start_date = DateFor.format(getRequest_start_date()); + return request_start_date; + } + + public void setRequest_start_date(Date request_start_date) { + this.request_start_date = request_start_date; + } + + public Date getRequest_report_date() { + return request_report_date; + } + + public void setRequest_report_date(Date request_report_date) { + this.request_report_date = request_report_date; + } + + public int getRequest_status_id() { + return request_status_id; + } + + public void setRequest_status_id(int request_status_id) { + this.request_status_id = request_status_id; + } + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + this.from = from; + } + + public String getRequester_name() { + return requester_name; + } + + public void setRequester_name(String requester_name) { + this.requester_name = requester_name; + } + + public String getReq_status() { + return req_status; + } + + public void setReq_status(String req_status) { + this.req_status = req_status; + } + + @Override + public String toString() { + return "RequestTO{" + + "request_id=" + request_id + + ", requester_id=" + requester_id + + ", request_start_date=" + request_start_date + + ", request_report_date=" + request_report_date + + ", request_status_id=" + request_status_id + + ", from='" + from + '\'' + + ", requester_name='" + requester_name + '\'' + + ", req_status='" + req_status + '\'' + + '}'; + } +} + diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 2812454..ee38e61 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,6 +1,18 @@ spring.datasource.driverClassName = org.postgresql.Driver -spring.datasource.url = $(SPRING_DATASOURCE_URL) -spring.datasource.username = $(SPRING_DATASOURCE_USERNAME) -spring.datasource.password = $(SPRING_DATASOURCE_PASSWORD) +#spring.datasource.url = $(SPRING_DATASOURCE_URL) +#spring.datasource.username = $(SPRING_DATASOURCE_USERNAME) +#spring.datasource.password = $(SPRING_DATASOURCE_PASSWORD) + +spring.datasource.url = jdbc:postgresql://localhost/holiday +spring.datasource.username = agyen +spring.datasource.password = 0000 + +#spring.datasource.url = $(SPRING_DATASOURCE_URL) +#spring.datasource.username = $(SPRING_DATASOURCE_USERNAME) +#spring.datasource.password = $(SPRING_DATASOURCE_PASSWORD) + +#spring.datasource.url = jdbc:postgresql:employmentdb +#spring.datasource.username = bill +#spring.datasource.password = turntabl