/*- | |
* ============LICENSE_START======================================================= | |
* OSAM Core | |
* ================================================================================ | |
* Copyright (C) 2018 Netsia | |
* ================================================================================ | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
* ============LICENSE_END========================================================= | |
*/ | |
package org.onap.osam.controller; | |
import lombok.extern.slf4j.Slf4j; | |
import org.onap.osam.api.service.DeviceService; | |
import org.onap.osam.common.dto.ChassisDTO; | |
import org.onap.osam.common.dto.OLTChassisDTO; | |
import org.onap.osam.common.dto.ONTDTO; | |
import org.onap.osam.helper.DTOMapper; | |
import org.onap.osam.model.dao.*; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.http.HttpStatus; | |
import org.springframework.http.ResponseEntity; | |
import org.springframework.web.bind.annotation.*; | |
import java.util.List; | |
import java.util.Map; | |
/** | |
* Created by Zafer Kaban on 27.09.2018. | |
*/ | |
@CrossOrigin | |
@RestController | |
@RequestMapping("/device") | |
@Slf4j | |
public class DeviceController extends AbstractController { | |
private DeviceService deviceService; | |
@Autowired | |
public DeviceController(DeviceService deviceService) { | |
super(log); | |
this.deviceService = deviceService; | |
} | |
@PostMapping("/chassis") | |
public ResponseEntity<ChassisDTO> postChassis(@RequestBody ChassisDTO chassisDTO){ | |
try { | |
log.info("postChassis request is received {}",chassisDTO); | |
Chassis chassis = DTOMapper.convertToChassis(chassisDTO); | |
chassis = deviceService.addChassis(chassis); | |
return new ResponseEntity<>(DTOMapper.convertChassisToDTO(chassis),HttpStatus.CREATED); | |
}catch (Exception e){ | |
return super.proceedException(e); | |
} | |
} | |
@DeleteMapping("chassis/{clli}") | |
public ResponseEntity deleteChassisByClli(@PathVariable("clli") String clli) { | |
try{ | |
this.deviceService.deleteChassisByClli(clli); | |
return ResponseEntity.ok().build(); | |
}catch (Exception e) { | |
return super.proceedException(e); | |
} | |
} | |
@PostMapping("/chassis/olt") | |
public ResponseEntity<OLTChassisDTO> postOLTChassis(@RequestBody OLTChassisDTO oltChassisDTO){ | |
try { | |
Chassis chassis = this.deviceService.getChassisByClli(oltChassisDTO.getClli()); | |
OLTSlot oltSlot = DTOMapper.convertToOLT(oltChassisDTO); | |
oltSlot.setChassis(chassis); | |
this.deviceService.addOLTSlot(oltSlot, chassis); | |
return new ResponseEntity<> (DTOMapper.convertFromOLT(oltSlot),HttpStatus.CREATED); | |
}catch (Exception e){ | |
return super.proceedException(e); | |
} | |
} | |
@PostMapping("/chassis/olt/ont-provision") | |
public ResponseEntity<ONTDTO> provisionONTDevice(@RequestBody ONTDTO ontDTO){ | |
try { | |
ONTDevice ont = deviceService.provisionONTDevice(DTOMapper.convertToONTDevice(ontDTO), DeviceService.OntProvisioningType.PROVISION); | |
return new ResponseEntity<> (DTOMapper.convertFromONTDevice(ont),HttpStatus.CREATED); | |
}catch (Exception e){ | |
return super.proceedException(e); | |
} | |
} | |
@PostMapping("/chassis/olt/ont-full") | |
public ResponseEntity<ONTDTO> provisionONTDeviceFull(@RequestBody ONTDTO ontDTO){ | |
try { | |
ONTDevice ont = deviceService.provisionONTDevice(DTOMapper.convertToONTDevice(ontDTO), DeviceService.OntProvisioningType.FULL); | |
return new ResponseEntity<> (DTOMapper.convertFromONTDevice(ont),HttpStatus.CREATED); | |
}catch (Exception e){ | |
return super.proceedException(e); | |
} | |
} | |
@PostMapping("/chassis/olt/ont-preprovision") | |
public ResponseEntity<ONTDTO> preprovisionONTDevice(@RequestBody ONTDTO ontDTO){ | |
try { | |
ONTDevice ont = deviceService.provisionONTDevice(DTOMapper.convertToONTDevice(ontDTO), DeviceService.OntProvisioningType.PREPROVISION); | |
return new ResponseEntity<> (DTOMapper.convertFromONTDevice(ont),HttpStatus.CREATED); | |
}catch (Exception e){ | |
return super.proceedException(e); | |
} | |
} | |
@DeleteMapping("chassis/olt/ont/{ontid}") | |
public ResponseEntity deleteOntById(@PathVariable("ontid") String ontid) { | |
try{ | |
this.deviceService.deleteONTDevice(new Long(ontid)); | |
return ResponseEntity.ok().build(); | |
}catch (Exception e) { | |
return super.proceedException(e); | |
} | |
} | |
@GetMapping("/chassis") | |
public ResponseEntity<List<ChassisDTO>> getAllChassis(){ | |
try { | |
return new ResponseEntity<> (DTOMapper.convertChassisToDTO(deviceService.getAllChassis()), HttpStatus.OK); | |
}catch (Exception e){ | |
return super.proceedException(e); | |
} | |
} | |
@GetMapping("/chassis/olt") | |
public ResponseEntity<Map<String, List<OLTChassisDTO>>> getAllOLTDevices(){ | |
try { | |
return new ResponseEntity<> (DTOMapper.convertFromOLT(deviceService.getAllOLTSlots()), HttpStatus.OK); | |
}catch (Exception e){ | |
return super.proceedException(e); | |
} | |
} | |
@GetMapping("/chassis/olt/ont") | |
public ResponseEntity<Map<String, List<ONTDTO>>> getAllONTDevices(){ | |
try { | |
return new ResponseEntity<> (DTOMapper.convertFromONTDevice(deviceService.getAllONTDevices()), HttpStatus.OK); | |
}catch (Exception e){ | |
return super.proceedException(e); | |
} | |
} | |
} |