Skip to content

Commit

Permalink
Added trigger functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
manushikapoor committed Jun 26, 2020
1 parent 9d6ae1d commit 06ae88b
Show file tree
Hide file tree
Showing 15 changed files with 76 additions and 87 deletions.
12 changes: 12 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,18 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
</dependencies>

Expand Down
23 changes: 1 addition & 22 deletions src/main/java/com/SpringBootWebApplication.java
Original file line number Diff line number Diff line change
@@ -1,39 +1,18 @@
package com;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;

import com.document.Student;
import com.repository.StudentRepository;

import reactor.core.publisher.Flux;

@SpringBootApplication
public class SpringBootWebApplication implements CommandLineRunner {

@Autowired
StudentRepository personRepository;

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

@Override
public void run(String... arg0) throws Exception {

//personRepository.save(new Student(5,"hgRT","mittal",21,"manushikapoor@gmail.com","C"));
final Student johnAoe = new Student(3,"manushi","chillar",21,"manushikapoor@gmail.com","CS");
final Student varini = new Student(5,"hgRT","mittal",21,"manushikapoor@gmail.com","C");
//// //MongoCollection<Document> gradesCollection = Student.getCollection("student


personRepository.saveAll(Flux.just(johnAoe, varini)).subscribe();
//// //personRepository.insert(personRepository);
//// //personRepository.findByDepartment("CS").log().map(Student::getFirstname).subscribe(System.out::println);
personRepository.findAll().log().map(Student::getFirstname).subscribe(System.out::println);
//

}
}
23 changes: 23 additions & 0 deletions src/main/java/com/connection/SpringFoxConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.connection;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SpringFoxConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
32 changes: 1 addition & 31 deletions src/main/java/com/connection/connect.java
Original file line number Diff line number Diff line change
@@ -1,34 +1,20 @@
package com.connection;

import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.reactivestreams.client.MongoClients;
import com.repository.StudentRepository;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import org.springframework.data.mongodb.repository.config.EnableReactiveMongoRepositories;

//@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
@Configuration
@EnableReactiveMongoRepositories(basePackageClasses=StudentRepository.class)
@PropertySource("classpath:mongo.properties")
public abstract class connect extends AbstractReactiveMongoConfiguration {
// @Autowired
// private Environment env;
//

@Bean
public MongoClient mongoClient() {
return (MongoClient) MongoClients.create("mongodb://localhost:27017/student");
Expand All @@ -37,22 +23,6 @@ public MongoClient mongoClient() {
protected String getDatabaseName() {
return "student";
}
// @Bean
// public ReactiveMongoTemplate reactiveMongoTemplate() {
// return new ReactiveMongoTemplate((com.mongodb.reactivestreams.client.MongoClient) reactiveMongoClient(), getDatabaseName());
// }
// protected String getMappingBasePackage() {
// return "com.document";
// }
//
//// public Mongo mongo() throws Exception {
//// return new MongoClient(env.getProperty("spring.data.mongodb.host"), Integer.parseInt(env.getProperty("spring.data.mongodb.port")));
//// }
// @Override
// public com.mongodb.reactivestreams.client.MongoClient reactiveMongoClient() {
// // TODO Auto-generated method stub
// return MongoClients.create("mongodb://localhost:27017/student");
// }
}


Expand Down
42 changes: 27 additions & 15 deletions src/main/java/com/controller/ApplicationController.java
Original file line number Diff line number Diff line change
@@ -1,49 +1,61 @@
package com.controller;

import java.time.Duration;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.repository.StudentRepository;

import io.swagger.annotations.Api;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import com.document.Student;

@RestController
//@RequestMapping("/student");
@Api(value="Students", description="Operations for students of Universities.")
public class ApplicationController {

@Autowired
StudentRepository repository;

@PutMapping("/student/{id}/{firstname}/{lastname}/{age}/{email}/{department}")
public Mono<Student> save(@PathVariable("id") final int id,@PathVariable("firstname") final String firstname,@PathVariable("lastname") final String lastname,@PathVariable("age") final int age,@PathVariable("email") final String email,@PathVariable("department") final String department){
@PostMapping("/student/saveOne")
public Mono<Student> saveOne(@RequestParam(value="id") int id,@RequestParam(value="firstName") String firstname,@RequestParam(value="lastName") String lastname,@RequestParam(value="age") int age,@RequestParam(value="email") String email,@RequestParam(value="department") String department){
Student student=new Student(id,firstname,lastname,age,email,department);
System.out.println("::Saving a Student::");
return repository.save(student);
}

@GetMapping("/student/{id}")
public Mono<Student> getById(@PathVariable("id") final int id) {
@GetMapping("/student/id/{id}")
public Mono<Student> getOneById(@PathVariable("id") final int id) {
System.out.println("::Will Return a Student::");
return repository.findOneBy_id(id);
}

@GetMapping("/student/all")
public Flux<Student> showAll() {
repository.findAll().log().map(Student::getFirstname).subscribe(System.out::println);
return repository.findAll();
@GetMapping(value="/student/showall",produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Student> getByTailing(){
System.out.println("::Will Return All the Students in real time::");
return repository.findWithTailableCursorBy().delayElements(Duration.ofSeconds(1));
}

@GetMapping("/student")
public Flux<Student> showByDepartment(@RequestParam(value="department") String department) {
repository.findByDepartment(department).log().map(Student::getFirstname).subscribe(System.out::println);
@GetMapping("/student/department/{department}")
public Flux<Student> getByDepartment(@PathVariable("department") final String department) {
System.out.println("::Will Return Students filtered by department::");
return repository.findByDepartment(department);
}

@PostMapping("/student/saveMany")
Flux<Student> saveMany(@RequestBody() final List<Student> student){
System.out.println("::Will Save Multiple Students::");
return repository.saveAll(student);
}

}
3 changes: 3 additions & 0 deletions src/main/java/com/document/Student.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ public String getDepartment() {
}
public void setDepartment(String department) {
this.department = department;
}
public Student() {

}
public Student(int _id, String firstname, String lastname, int age, String email, String department) {
super();
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/com/repository/StudentRepository.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.repository;

import java.util.List;

import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
import org.springframework.data.mongodb.repository.Tailable;
import org.springframework.stereotype.Repository;

import com.document.Student;
Expand All @@ -15,4 +13,8 @@
public interface StudentRepository extends ReactiveMongoRepository < Student, String > {
Flux < Student > findByDepartment(final String department);
Mono < Student> findOneBy_id(final int _id);

@Tailable
Flux<Student> findWithTailableCursorBy();

}
10 changes: 2 additions & 8 deletions src/main/resources/mongo.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,2 @@
#mongo.database=student
#mongo.host=127.0.0.1
#mongo.port=27017
#spring.main.allow-bean-definition-overriding=true
#spring.data.mongodb.database=student
#spring.data.mongodb.port=27017
#spring.data.mongodb.host=localhost
spring.data.mongodb.uri=mongodb://localhost:27017/student
spring.data.mongodb.uri=mongodb://localhost:27017/student
spring.mvc.async.request-timeout = -1
Binary file modified target/classes/com/SpringBootWebApplication.class
Binary file not shown.
Binary file not shown.
Binary file modified target/classes/com/connection/connect.class
Binary file not shown.
Binary file modified target/classes/com/controller/ApplicationController.class
Binary file not shown.
Binary file modified target/classes/com/document/Student.class
Binary file not shown.
Binary file modified target/classes/com/repository/StudentRepository.class
Binary file not shown.
10 changes: 2 additions & 8 deletions target/classes/mongo.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,2 @@
#mongo.database=student
#mongo.host=127.0.0.1
#mongo.port=27017
#spring.main.allow-bean-definition-overriding=true
#spring.data.mongodb.database=student
#spring.data.mongodb.port=27017
#spring.data.mongodb.host=localhost
spring.data.mongodb.uri=mongodb://localhost:27017/student
spring.data.mongodb.uri=mongodb://localhost:27017/student
spring.mvc.async.request-timeout = -1

0 comments on commit 06ae88b

Please sign in to comment.