Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/labs64io-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# separate terms of service, privacy policy, and support
# documentation.

name: Labs64.IO - eCommerce - CI
name: Labs64.IO - Shopping Cart - CI

permissions:
contents: write
Expand All @@ -32,12 +32,12 @@ jobs:
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: mvn -B package --file ecommerce-be/pom.xml
run: mvn -B package --file shopping-cart-be/pom.xml
- name: Build the Docker image
run: docker build ecommerce-be --file ecommerce-be/Dockerfile --tag ecommerce:$(date +%s)
run: docker build shopping-cart-be --file shopping-cart-be/Dockerfile --tag shopping-cart:$(date +%s)

# Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
with:
directory: ecommerce-be
directory: shopping-cart-be
10 changes: 5 additions & 5 deletions .github/workflows/labs64io-docker-publish.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Labs64.IO - eCommerce - Publish Docker
name: Labs64.IO - Shopping Cart - Publish Docker

permissions:
contents: read
Expand All @@ -24,7 +24,7 @@ jobs:
cache: maven

- name: Build with Maven
run: mvn -B package --file ./ecommerce-be/pom.xml
run: mvn -B package --file ./shopping-cart-be/pom.xml

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
Expand All @@ -42,11 +42,11 @@ jobs:
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: ./ecommerce-be
context: ./shopping-cart-be
push: true
platforms: linux/amd64,linux/arm64/v8
tags: |
labs64/ecommerce:latest
labs64/ecommerce:${{ steps.get_release_tag.outputs.RELEASE_TAG }}
labs64/shopping-cart:latest
labs64/shopping-cart:${{ steps.get_release_tag.outputs.RELEASE_TAG }}
cache-from: type=gha,scope=${{ github.workflow }}
cache-to: type=gha,mode=max,scope=${{ github.workflow }}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<p align="center"><img src="https://raw.githubusercontent.com/Labs64/.github/refs/heads/master/assets/labs64-io-ecosystem.png"></p>

# Labs64.IO :: eCommerce
# Labs64.IO :: Shopping Cart
## Commerce-Ready Platform for Digital Sales Enablement

![Docker Image Version](https://img.shields.io/docker/v/labs64/ecommerce?logo=docker&logoColor=%23E14817&color=%23E14817) - TODO
Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion ecommerce-be/justfile → shopping-cart-be/justfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
APP_NAME := "ecommerce"
APP_NAME := "shopping-cart"

# build application
build:
Expand Down
16 changes: 8 additions & 8 deletions ecommerce-be/pom.xml → shopping-cart-be/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
<modelVersion>4.0.0</modelVersion>

<groupId>io.labs64</groupId>
<artifactId>ecommerce</artifactId>
<artifactId>shopping-cart</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Labs64.IO :: eCommerce</name>
<description>Labs64.IO - eCommerce</description>
<name>Labs64.IO :: Shopping Cart</name>
<description>Labs64.IO - Shopping Cart</description>

<parent>
<groupId>org.springframework.boot</groupId>
Expand All @@ -18,7 +18,7 @@

<properties>
<!-- API VERSIONS -->
<ecommerce.version>v1</ecommerce.version>
<shopping-cart.version>v1</shopping-cart.version>
<!-- DEPENDENCIES -->
<java.version>21</java.version>
<spring-cloud.version>2025.0.0</spring-cloud.version>
Expand Down Expand Up @@ -209,17 +209,17 @@
<version>${openapi-generator-maven-plugin.version}</version>
<executions>
<execution>
<id>labs64.io-ecommerce</id>
<id>labs64.io-shopping-cart</id>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/openapi/openapi-ecommerce-${ecommerce.version}.yaml</inputSpec>
<inputSpec>${project.basedir}/src/main/resources/openapi/openapi-cart-${shopping-cart.version}.yaml</inputSpec>
<generatorName>spring</generatorName>
<output>${project.build.directory}/generated-sources</output>
<apiPackage>io.labs64.ecommerce.${ecommerce.version}.api</apiPackage>
<modelPackage>io.labs64.ecommerce.${ecommerce.version}.model</modelPackage>
<apiPackage>io.labs64.cart.${shopping-cart.version}.api</apiPackage>
<modelPackage>io.labs64.cart.${shopping-cart.version}.model</modelPackage>
<generateSupportingFiles>true</generateSupportingFiles>
<configOptions>
<useTags>true</useTags>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package io.labs64.ecommerce;
package io.labs64.cart;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class EcommerceApplication {
public class CartApplication {
public static void main(String[] args) {
SpringApplication.run(EcommerceApplication.class, args);
SpringApplication.run(CartApplication.class, args);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.config;
package io.labs64.cart.config;

import java.time.Duration;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.config;
package io.labs64.cart.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Expand All @@ -14,7 +14,7 @@
import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;

import io.labs64.ecommerce.v1.model.Cart;
import io.labs64.cart.v1.model.Cart;

@Configuration
public class RedisConfig {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.exception;
package io.labs64.cart.exception;

import java.time.OffsetDateTime;

Expand All @@ -9,8 +9,8 @@
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import io.labs64.ecommerce.v1.model.ErrorCode;
import io.labs64.ecommerce.v1.model.ErrorResponse;
import io.labs64.cart.v1.model.ErrorCode;
import io.labs64.cart.v1.model.ErrorResponse;
import jakarta.servlet.http.HttpServletRequest;

@RestControllerAdvice
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package io.labs64.ecommerce.exception;
package io.labs64.cart.exception;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

import io.labs64.ecommerce.v1.model.ErrorCode;
import io.labs64.cart.v1.model.ErrorCode;
import lombok.Getter;

@Getter
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package io.labs64.ecommerce.exception;
package io.labs64.cart.exception;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

import io.labs64.ecommerce.v1.model.ErrorCode;
import io.labs64.cart.v1.model.ErrorCode;
import lombok.Getter;

@Getter
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.messaging;
package io.labs64.cart.messaging;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -10,14 +10,14 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import io.labs64.ecommerce.v1.model.Cart;
import io.labs64.cart.v1.model.Cart;

@Service
public class CartPublisherService {

private static final Logger logger = LoggerFactory.getLogger(CartPublisherService.class);

public static final String ECOMMERCE_OUT_0 = "ecommerce-out-0";
public static final String SHOPPING_CART_OUT_0 = "shopping-cart-out-0";

private final StreamBridge streamBridge;
private final ObjectMapper objectMapper;
Expand All @@ -37,8 +37,8 @@ public boolean publishCart(Cart cart) {
return false;
}

logger.debug("Publish shopping cart '{}' to binding '{}'", json, ECOMMERCE_OUT_0);
return streamBridge.send(ECOMMERCE_OUT_0, MessageBuilder.withPayload(json).build());
logger.debug("Publish shopping cart '{}' to binding '{}'", json, SHOPPING_CART_OUT_0);
return streamBridge.send(SHOPPING_CART_OUT_0, MessageBuilder.withPayload(json).build());
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.messaging;
package io.labs64.cart.messaging;

import java.util.function.Consumer;

Expand All @@ -20,7 +20,7 @@ public void init() {
}

@Bean
public Consumer<String> ecommerce() {
public Consumer<String> cart() {
return message -> {
logger.debug("Received entity: {}", message);
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.v1.controller;
package io.labs64.cart.v1.controller;

import java.util.Collections;
import java.util.List;
Expand All @@ -13,17 +13,17 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.NativeWebRequest;

import io.labs64.ecommerce.exception.NotFoundException;
import io.labs64.ecommerce.v1.api.CartApi;
import io.labs64.ecommerce.v1.api.CartItemsApi;
import io.labs64.ecommerce.v1.mapper.CartMapper;
import io.labs64.ecommerce.v1.model.Cart;
import io.labs64.ecommerce.v1.model.CartItem;
import io.labs64.ecommerce.v1.model.CreateCartItemRequest;
import io.labs64.ecommerce.v1.model.CreateCartRequest;
import io.labs64.ecommerce.v1.model.UpdateCartItemRequest;
import io.labs64.ecommerce.v1.model.UpdateCartRequest;
import io.labs64.ecommerce.v1.service.CartService;
import io.labs64.cart.exception.NotFoundException;
import io.labs64.cart.v1.api.CartApi;
import io.labs64.cart.v1.api.CartItemsApi;
import io.labs64.cart.v1.mapper.CartMapper;
import io.labs64.cart.v1.model.Cart;
import io.labs64.cart.v1.model.CartItem;
import io.labs64.cart.v1.model.CreateCartItemRequest;
import io.labs64.cart.v1.model.CreateCartRequest;
import io.labs64.cart.v1.model.UpdateCartItemRequest;
import io.labs64.cart.v1.model.UpdateCartRequest;
import io.labs64.cart.v1.service.CartService;
import jakarta.validation.Valid;

@RestController
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.v1.mapper;
package io.labs64.cart.v1.mapper;

import java.util.ArrayList;
import java.util.HashMap;
Expand All @@ -12,12 +12,12 @@
import org.mapstruct.MappingTarget;
import org.mapstruct.NullValuePropertyMappingStrategy;

import io.labs64.ecommerce.v1.model.Cart;
import io.labs64.ecommerce.v1.model.CartItem;
import io.labs64.ecommerce.v1.model.CreateCartItemRequest;
import io.labs64.ecommerce.v1.model.CreateCartRequest;
import io.labs64.ecommerce.v1.model.UpdateCartItemRequest;
import io.labs64.ecommerce.v1.model.UpdateCartRequest;
import io.labs64.cart.v1.model.Cart;
import io.labs64.cart.v1.model.CartItem;
import io.labs64.cart.v1.model.CreateCartItemRequest;
import io.labs64.cart.v1.model.CreateCartRequest;
import io.labs64.cart.v1.model.UpdateCartItemRequest;
import io.labs64.cart.v1.model.UpdateCartRequest;

@Mapper(componentModel = "spring")
public interface CartMapper {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.v1.service;
package io.labs64.cart.v1.service;

import java.math.BigDecimal;
import java.time.Duration;
Expand All @@ -14,11 +14,10 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import io.labs64.ecommerce.config.CartProperties;
import io.labs64.ecommerce.exception.ValidationException;
import io.labs64.ecommerce.v1.model.Cart;
import io.labs64.ecommerce.v1.model.CartItem;
import io.labs64.ecommerce.v1.validator.CartValidator;
import io.labs64.cart.config.CartProperties;
import io.labs64.cart.v1.model.Cart;
import io.labs64.cart.v1.model.CartItem;
import io.labs64.cart.v1.validator.CartValidator;
import lombok.extern.slf4j.Slf4j;

@Slf4j
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package io.labs64.ecommerce.v1.validator;
package io.labs64.cart.v1.validator;

import java.util.List;

import org.springframework.stereotype.Component;

import io.labs64.ecommerce.v1.model.Cart;
import io.labs64.cart.v1.model.Cart;

@Component
public class CartValidator {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package io.labs64.ecommerce.v1.validator;
package io.labs64.cart.v1.validator;

import java.util.List;

import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;

import io.labs64.ecommerce.config.CartProperties;
import io.labs64.ecommerce.exception.ValidationException;
import io.labs64.ecommerce.v1.model.Cart;
import io.labs64.cart.config.CartProperties;
import io.labs64.cart.exception.ValidationException;
import io.labs64.cart.v1.model.Cart;

@Component
public class CurrencyValidator implements Validator<Cart> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package io.labs64.ecommerce.v1.validator;
package io.labs64.cart.v1.validator;

import org.apache.commons.lang3.StringUtils;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;

import io.labs64.ecommerce.exception.ValidationException;
import io.labs64.ecommerce.v1.model.Cart;
import io.labs64.cart.exception.ValidationException;
import io.labs64.cart.v1.model.Cart;

@Component
public class ExtraValidator implements Validator<Cart> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.v1.validator;
package io.labs64.cart.v1.validator;

import java.util.HashMap;
import java.util.Map;
Expand All @@ -7,9 +7,9 @@
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;

import io.labs64.ecommerce.exception.ValidationException;
import io.labs64.ecommerce.v1.model.Cart;
import io.labs64.ecommerce.v1.model.CartItem;
import io.labs64.cart.exception.ValidationException;
import io.labs64.cart.v1.model.Cart;
import io.labs64.cart.v1.model.CartItem;

@Component
public class UniqueItemIdsValidator implements Validator<Cart> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.labs64.ecommerce.v1.validator;
package io.labs64.cart.v1.validator;

public interface Validator<T> {
void validate(T entity);
Expand Down
Loading
Loading