Commit 486ee59b authored by Kyle Muldoon's avatar Kyle Muldoon

Merge branch 'swagger-ui' into 'master'

Swagger ui

See merge request !8
parents 659a0802 324bd028
......@@ -41,6 +41,18 @@
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
<build>
......
package com.nisum.ecomservice.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Ecommerce Microservice")
.build();
}
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
}
package com.nisum.ecomservice.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.config.EnableWebFlux;
import org.springframework.web.reactive.config.ResourceHandlerRegistry;
import org.springframework.web.reactive.config.WebFluxConfigurer;
@Configuration
@EnableWebFlux
public class WebFluxConfig implements WebFluxConfigurer
{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui.html**")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
\ No newline at end of file
package com.nisum.ecomservice.dto;
//needed for post route, do not delete / change names
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class CartPostDTO {
private String id;
private String userId;
private List<CartItemDTO> cartItems;
}
package com.nisum.ecomservice.dto;
import com.nisum.ecomservice.model.Address;
import com.nisum.ecomservice.model.CartEntity;
import com.nisum.ecomservice.model.User;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class OrderRequest {
private User user;
private Address address;
private CartEntity cartEntity;
private CartPostDTO cart;
}
package com.nisum.ecomservice.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.*;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Address {
......
package com.nisum.ecomservice.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.*;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class ProductRef {
private String id;
......
......@@ -9,6 +9,7 @@ import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
......
package com.nisum.ecomservice.service;
import com.nisum.ecomservice.config.AppConfig;
import com.nisum.ecomservice.dto.Order;
import com.nisum.ecomservice.dto.OrderItem;
import com.nisum.ecomservice.dto.OrderRequest;
import com.nisum.ecomservice.dto.OrderSubmission;
import com.nisum.ecomservice.dto.*;
import com.nisum.ecomservice.model.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -26,10 +23,10 @@ public class OrderService {
//create user object from user object details
User user = orderRequest.getUser();
Address address = orderRequest.getAddress();
CartEntity cartEntity = orderRequest.getCartEntity();
CartPostDTO cart = orderRequest.getCart();
//for each item grab product details from products API
List<Mono<Product>> productsToOrder = cartEntity.getCartItems().stream()
List<Mono<Product>> productsToOrder = cart.getCartItems().stream()
.map(cartItem -> cartItem.getProductRef().getSku())
.map(sku -> productService.getProductBySku(sku))
......@@ -44,7 +41,7 @@ public class OrderService {
orderItem.setItemSku(product.getSku());
orderItem.setItemPrice(product.getPrice());
List<CartItemEntity> items = cartEntity.getCartItems().stream().filter(cartItem -> cartItem.getProductRef().getSku()
List<CartItemDTO> items = cart.getCartItems().stream().filter(cartItem -> cartItem.getProductRef().getSku()
.equals(product.getSku()))
.collect(Collectors.toList());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment