@@ -26,6 +26,8 @@ import { TransformedPayloadDto } from "@dto/kafka/transformed-payload.dto";
2626import { PayloadDecoderExecutorService } from "@services/data-management/payload-decoder-executor.service" ;
2727import { PayloadDecoderService } from "@services/data-management/payload-decoder.service" ;
2828import { IoTDeviceService } from "@services/device-management/iot-device.service" ;
29+ import { IoTDeviceType } from "@enum/device-type.enum" ;
30+ import { ChirpstackDeviceService } from "@services/chirpstack/chirpstack-device.service" ;
2931
3032@Injectable ( )
3133export class DataTargetService {
@@ -47,7 +49,8 @@ export class DataTargetService {
4749 @Inject ( forwardRef ( ( ) => PayloadDecoderService ) )
4850 private payloadDecoderService : PayloadDecoderService ,
4951 @Inject ( forwardRef ( ( ) => IoTDeviceService ) )
50- private iotDeviceService : IoTDeviceService
52+ private iotDeviceService : IoTDeviceService ,
53+ private chirpstackDeviceService : ChirpstackDeviceService
5154 ) { }
5255
5356 async findAndCountAllWithPagination (
@@ -214,7 +217,7 @@ export class DataTargetService {
214217
215218 public async testDataTarget ( testDto : TestDataTargetDto ) : Promise < TestDataTargetResultDto > {
216219 const dataTarget = await this . findOne ( testDto . dataTargetId ) ;
217- const iotDevice = await this . iotDeviceService . findOne ( testDto . iotDeviceId ) ;
220+ let iotDevice = await this . iotDeviceService . findOne ( testDto . iotDeviceId ) ;
218221
219222 if ( dataTarget . type === DataTargetType . MQTT && ! testDto . dataPackage ) {
220223 const result = await this . dataTargetSenderService . testMqttDataTarget ( dataTarget ) ;
@@ -224,6 +227,10 @@ export class DataTargetService {
224227 let rawPackage = JSON . parse ( testDto . dataPackage ) ;
225228 if ( testDto . payloadDecoderId ) {
226229 const payloadDecoder = await this . payloadDecoderService . findOne ( testDto . payloadDecoderId ) ;
230+ if ( iotDevice . type === IoTDeviceType . LoRaWAN && payloadDecoder . decodingFunction . includes ( "lorawanSettings" ) ) {
231+ iotDevice = await this . chirpstackDeviceService . enrichLoRaWANDevice ( iotDevice ) ;
232+ }
233+
227234 const decoded = await this . payloadDecoderExecutorService . callUntrustedCode (
228235 payloadDecoder . decodingFunction ,
229236 iotDevice ,
0 commit comments