package com.technoidentity.agastya.controller;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.technoidentity.agastya.model.TelemetryEvent;
import com.technoidentity.agastya.repositery.TelemetryEventRepository;
@CrossOrigin(origins = "http://localhost:3000")
@RestController
@RequestMapping("/agastya")
public class TelemetryEventController {
@Autowired
private TelemetryEventRepository repositery;
// Display All TelemetryEvent Object
@GetMapping("/telemetry")
public ResponseEntity<List<TelemetryEvent>> getAllTelemetryEvent() {
List<TelemetryEvent> telemetryEvents = new ArrayList<TelemetryEvent>();
repositery.findAll().forEach(telemetryEvents::add);
return new ResponseEntity<List<TelemetryEvent>>(telemetryEvents, HttpStatus.OK);
}
// Display TelemetryEvent based on the Id
@GetMapping("/telemetry/{id}")
@Transactional(readOnly = true)
public ResponseEntity<TelemetryEvent> getTelemetryEventById(@PathVariable("id") String deviceId) {
Optional<TelemetryEvent> telemetryevent = repositery.findById(deviceId);
return new ResponseEntity<TelemetryEvent>(telemetryevent.get(), HttpStatus.OK);
}
// Update command
@PutMapping("/telemetry/{id}")
public ResponseEntity<TelemetryEvent> updateTelemetryEvent(@PathVariable("id") String deviceId,
@RequestBody TelemetryEvent telemetryevent) {
java.util.Optional<TelemetryEvent> telemetryevent1 = repositery.findById(deviceId);
Date d=new Date();
TelemetryEvent _tutorial = telemetryevent1.get();
_tutorial.setDeviceId(telemetryevent.getDeviceId());
_tutorial.setTimestamp(d);
_tutorial.setTelemetryKey(telemetryevent.getTelemetryKey());
_tutorial.setTelemetryValue(telemetryevent.getTelemetryValue());
return new ResponseEntity<>(repositery.save(_tutorial), HttpStatus.OK);
}
// delete by ID
@DeleteMapping("/telemetry/{id}")
public ResponseEntity<String> deleteTelemetryEvent(@PathVariable("id") String deviceId) {
repositery.deleteById(deviceId);
return new ResponseEntity<String>(deviceId + " Is Deleted.?", HttpStatus.OK);
}
// insert TelemetryEvent Data
@PostMapping("/telemetry")
public ResponseEntity<?> createTelemetryEvent(@RequestBody TelemetryEvent telemetryEvent) {
Date d=new Date();
repositery.save(new TelemetryEvent(telemetryEvent.getDeviceId(),d ,
telemetryEvent.getTelemetryKey(), telemetryEvent.getTelemetryValue()));
return new ResponseEntity<String>("TelemetryEvent Data is inserted", HttpStatus.OK);
}
}
Comments
Post a Comment