diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c647bf8..a246a07 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -5,14 +5,9 @@ on:
# manual trigger
workflow_dispatch:
inputs:
- ssh_debug_enabled:
+ debug_enabled:
type: boolean
- description: 'Run the build/test with ssh debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
- required: false
- default: false
- debug_deployment:
- type: boolean
- description: 'Run the pipeline with debug deployment enabled'
+ description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false
@@ -67,6 +62,7 @@ jobs:
fail-fast: false
matrix:
language: [ 'java', 'javascript' ]
+
# # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# # Use only 'java' to analyze code written in Java, Kotlin or both
# # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
@@ -92,7 +88,7 @@ jobs:
# runnning code scanning with CodeQL. Link to the documentation - https://docs.github.com/en/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning
# first step is to initialize CodeQL
- name: Initialize CodeQL
- uses: github/codeql-action/init@v3
+ uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }} # defining the language for the CodeQL analysis
# debug: true # uncomment this line to enable debugging for CodeQL analysis step
@@ -107,11 +103,11 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@v3
+ uses: github/codeql-action/autobuild@v2
# performing Code Quality Analysis with CodeQL. Link to the documentation - https://docs.github.com/en/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3
+ uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}" # defining the language for the CodeQL analysis
@@ -239,7 +235,7 @@ jobs:
id: split-tests
name: Split tests
with:
- glob: src/test/**/**/*.java # glob pattern to match the test files
+ glob: src/test/**/**/**.java # glob pattern to match the test files
split-total: ${{ env.total-runners }} # total number of github-hosted runners
split-index: ${{ matrix.runner-index }} # current runner index
junit-path: test_results/**/*xml # path to the junit test results with wildcards to match all the files
@@ -260,6 +256,7 @@ jobs:
name: testresults-${{ github.run_id }}-split-${{ matrix.runner-index }} # naming the artifact with the test results
path: ./target/surefire-reports # path to the test results
retention-days: 90 # retention period for the artifact in days. Link to the documentation - https://docs.github.com/en/actions/guides/storing-workflow-data-as-artifacts#about-workflow-artifact-retention
+
publish-test-results:
needs: [build, unit-parallel-tests]
@@ -361,5 +358,4 @@ jobs:
with:
# with tag from the build-and-publish-docker-image job in the output_tags step
image_tag: "${{ needs.build-and-publish-docker-image.outputs.image_tag }}"
- debug: "${{ github.event.inputs.debug_deployment }}"
secrets: inherit
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 59384d5..875022b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -136,6 +136,12 @@
spring-data-commons
+
+ org.springframework.security
+ spring-security-core
+ 5.7.0
+
+
diff --git a/src/main/java/net/codejava/SalesDAO.java b/src/main/java/net/codejava/SalesDAO.java
index c3e6029..3d2ea41 100755
--- a/src/main/java/net/codejava/SalesDAO.java
+++ b/src/main/java/net/codejava/SalesDAO.java
@@ -30,38 +30,9 @@ public List list(int limit, int offset) {
return listSale;
}
- public void save(Sale sale) throws DuplicateKeyException {
- try {
- System.out.println(sale); // log the Sale object
-
- if (sale == null) {
- throw new IllegalArgumentException("Sale object cannot be null");
- }
-
- if (jdbcTemplate == null) {
- throw new IllegalStateException("JdbcTemplate cannot be null");
- }
- // Check if a record with the same primary key already exists
- int count = jdbcTemplate.queryForObject(
- "SELECT COUNT(*) FROM sales WHERE serial_number = ?", Integer.class, sale.getSerialNumber());
-
- if (count > 0) {
- // If such a record exists, throw an exception
- throw new DuplicateKeyException("A record with the same serial number already exists.");
- }
-
- // If no such record exists, insert the new record
- SimpleJdbcInsert insertActor =
- new SimpleJdbcInsert(jdbcTemplate != null ? jdbcTemplate : new JdbcTemplate());
- insertActor.withTableName("sales").usingColumns("serial_number", "item", "quantity", "amount", "date");
- BeanPropertySqlParameterSource param = new BeanPropertySqlParameterSource(sale);
-
- insertActor.execute(param);
- } catch (DuplicateKeyException e) {
- throw e; // rethrow the exception to be handled by the caller
- } catch (Exception e) {
- e.printStackTrace(); // log any other exceptions
- }
+ public void save(Sale sale) {
+ String sql = "INSERT INTO SALES (item, quantity, amount) VALUES ('" + sale.getItem() + "', " + sale.getQuantity() + ", " + sale.getAmount() + ")";
+ jdbcTemplate.update(sql);
}
public Sale get(String serialNumber) {
@@ -118,7 +89,7 @@ public Page findAll(Pageable pageable) {
return new PageImpl<>(sales, pageable, total);
}
- // a method to returns a list of all sales in a jdbctemplate query to use as a csv output
+ // a method to returns a list of all sales in a jdbctemplate query to use as a csv output
public List listAll() {
String sql = "SELECT * FROM sales ORDER BY serial_number ASC";
List listSale = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(Sale.class));
diff --git a/src/main/resources/static/js/styles.js b/src/main/resources/static/js/styles.js
index 1c197a2..c5eef1d 100644
--- a/src/main/resources/static/js/styles.js
+++ b/src/main/resources/static/js/styles.js
@@ -40,7 +40,7 @@ addStyles();
let themeColors;
if (!window.enableSearchFeature) { // Swapped the condition to check for not enabled
themeColors = {
- '--h1-color': '#2196F3',
+ '--h1-color': window.searchFeatureColor || '#4CAF50',
'--th-bg-color': '#2196F3',
'--a-color': '#2196F3',
'--tr-bg-color': '#c2e0fb',