[go: nahoru, domu]

Skip to content

Commit

Permalink
change project structure to spring best practices
Browse files Browse the repository at this point in the history
  • Loading branch information
csplinter committed Jun 18, 2020
1 parent a95adfa commit a050bf7
Show file tree
Hide file tree
Showing 15 changed files with 30 additions and 53 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import javax.annotation.PostConstruct;
import java.util.List;
import java.util.stream.Stream;

@SpringBootApplication
@EnableDiscoveryClient
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.datastax.examples.conf;
package com.datastax.examples;

import com.datastax.examples.dao.ProductDao;
import com.datastax.examples.product.ProductDao;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.config.DefaultDriverOption;
import org.springframework.beans.factory.annotation.Value;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.datastax.examples.model;
package com.datastax.examples.product;

import java.math.BigDecimal;
import java.time.Instant;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.datastax.examples.controller;
package com.datastax.examples.product;

import java.util.UUID;

import com.datastax.examples.model.Product;
import com.datastax.examples.service.ProductService;
import com.datastax.examples.product.Product;
import com.datastax.examples.product.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
Expand All @@ -19,32 +19,32 @@ public class ProductController {

@GetMapping("products/search/{name}")
public ResponseEntity<Iterable<Product>> findProductsByName(@PathVariable String name) {
return new ResponseEntity<Iterable<Product>>(productService.find(name), HttpStatus.OK);
return ResponseEntity.ok(productService.find(name));
}

@GetMapping("products/search/{name}/{id}")
public ResponseEntity<Product> findProductsByNameAndId(@PathVariable String name, @PathVariable UUID id) {
Product product = productService.find(name, id);
return new ResponseEntity<Product>(product, HttpStatus.OK);
return ResponseEntity.ok(product);
}

@PostMapping("products/add")
public ResponseEntity<String> addProduct(@RequestBody Product product){
productService.add(product);
return new ResponseEntity<String>(product.getName(), HttpStatus.OK);
return ResponseEntity.ok(product.getName());
}

@DeleteMapping("products/delete/{name}")
public ResponseEntity<String> removeProductByName(@PathVariable String name){
productService.remove(name);
return new ResponseEntity<String>(name, HttpStatus.OK);
return ResponseEntity.ok(name);

}

@DeleteMapping("products/delete/{name}/{id}")
public ResponseEntity<String> removeProductByNameAndId(@PathVariable String name, @PathVariable UUID id){
productService.remove(name, id);
return new ResponseEntity<String>(name + " " + id, HttpStatus.OK);
return ResponseEntity.ok(name + "," + id);
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.datastax.examples.dao;
package com.datastax.examples.product;

import com.datastax.examples.model.Product;
import com.datastax.examples.product.Product;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.cql.PreparedStatement;
import com.datastax.oss.driver.api.core.cql.ResultSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package com.datastax.examples.service;
package com.datastax.examples.product;

import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.datastax.examples.dao.ProductDao;
import com.datastax.examples.model.Product;

@Service
public class ProductService {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.datastax.examples.conf;
package com.datastax.examples.swagger;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class SpringDataApplication extends SpringBootServletInitializer {
public class SpringDataCassandraApplication extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringDataApplication.class);
return application.sources(SpringDataCassandraApplication.class);
}

public static void main(String[] args) {
SpringApplication.run(SpringDataApplication.class, args);
SpringApplication.run(SpringDataCassandraApplication.class, args);
}

}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.datastax.examples.conf;
package com.datastax.examples;

import java.net.InetSocketAddress;
import java.nio.file.Paths;
Expand All @@ -19,7 +19,7 @@
import org.springframework.data.cassandra.core.cql.session.init.KeyspacePopulator;
import org.springframework.data.cassandra.core.cql.session.init.ResourceKeyspacePopulator;

import com.datastax.examples.SpringDataApplication;
import com.datastax.examples.SpringDataCassandraApplication;

@Configuration
@EnableConfigurationProperties(CassandraProperties.class)
Expand Down Expand Up @@ -94,13 +94,13 @@ public SchemaAction getSchemaAction() {
protected KeyspacePopulator keyspacePopulator() {
ResourceKeyspacePopulator keyspacePopulate = new ResourceKeyspacePopulator();
keyspacePopulate.setSeparator(";");
keyspacePopulate.setScripts(new ClassPathResource("sample-data.cql"));
keyspacePopulate.setScripts(new ClassPathResource("orders-schema.cql"));
return keyspacePopulate;
}

@Override
public String[] getEntityBasePackages() {
return new String[]{ SpringDataApplication.class.getPackageName() + ".model" };
return new String[]{ SpringDataCassandraApplication.class.getPackageName() + ".order" };
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.datastax.examples.model;
package com.datastax.examples.order;

import lombok.Data;
import org.springframework.data.cassandra.core.mapping.*;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package com.datastax.examples.controller;
package com.datastax.examples.order;

import com.datastax.examples.dao.OrderRepository;
import com.datastax.examples.model.Order;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.rest.webmvc.BasePathAwareController;
import org.springframework.http.HttpStatus;
Expand All @@ -19,18 +17,18 @@ public class OrderController {
@RequestMapping(value = "orders/delete/order", method = RequestMethod.DELETE)
public ResponseEntity<String> deleteOrder(@RequestParam UUID orderId){
orderRepository.deleteByKeyOrderId(orderId);
return new ResponseEntity<String>("DELETED: " + orderId, HttpStatus.OK);
return ResponseEntity.ok(orderId.toString());
}

@RequestMapping(value = "orders/delete/product-from-order", method = RequestMethod.DELETE)
public ResponseEntity<String> deleteProductFromOrder(@RequestParam UUID orderId, @RequestParam UUID productId){
orderRepository.deleteByKeyOrderIdAndKeyProductId(orderId, productId);
return new ResponseEntity<String>("DELETED: " + orderId + "," + productId, HttpStatus.OK);
return ResponseEntity.ok(orderId + "," + productId);
}

@RequestMapping(value = "orders/add", method = RequestMethod.POST)
public ResponseEntity<Order> addOrder(@RequestBody Order order){
orderRepository.save(order);
return new ResponseEntity<Order>(order, HttpStatus.OK);
return ResponseEntity.ok(order);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.datastax.examples.model;
package com.datastax.examples.order;

import org.springframework.data.cassandra.core.cql.PrimaryKeyType;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyClass;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package com.datastax.examples.dao;
package com.datastax.examples.order;

import com.datastax.examples.model.OrderPrimaryKey;
import org.springframework.data.cassandra.repository.CassandraRepository;
import org.springframework.data.cassandra.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

import com.datastax.examples.model.Order;
import org.springframework.data.rest.core.annotation.RestResource;

import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.datastax.examples.model;
package com.datastax.examples.order;

import org.springframework.data.rest.core.config.Projection;

import java.time.Instant;

@Projection(name = "product-name-and-price", types = { Order.class })
public interface ProductNameAndPriceOnly {
String getProductName();
Expand Down

0 comments on commit a050bf7

Please sign in to comment.