This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const step1 = [ | |
{ FormID: '1', Status: 'New', CreatedAt: 1662477251 }, // Created 10 days ago | |
{ FormID: '2', Status: 'Saved', CreatedAt: 1662477252 }, // Created 20 days ago | |
{ FormID: '1', Status: 'New', CreatedAt: 1662477254 }, // Created 28 days ago | |
{ FormID: '2', Status: 'Saved', CreatedAt: 1662477255 }, // Created 31 days ago | |
{ FormID: '1', Status: 'Saved', CreatedAt: 1662477257 }, // Created 17 days ago | |
{ FormID: '3', Status: 'New', CreatedAt: 1662477258 }, // Created 29 days ago | |
]; | |
const step2 = [ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const formResponses = [{Status: "New", CreatedAt: 1662477251}, {Status: "Saved", CreatedAt: 1662477251}]; | |
const results = formResponses.reduce((acc, current) => { | |
if (current.Status === "New") { | |
// responseAge is defined using the same day diff logic that can be found in the previous phase | |
if (responseAge > 25) return { ...acc, NumberOfUnsavedResponsesBeyond25Days: acc.NumberOfUnsavedResponsesBeyond25Days + 1 }; | |
else if (responseAge > 13) return { ...acc, NumberOfUnsavedResponsesBeyond13Days: acc.NumberOfUnsavedResponsesBeyond13Days + 1 }; | |
} else if (current.Status === "Saved") { | |
if (responseAge > 25) return { ...acc, NumberOfUnconfirmedResponsesBeyond25Days: acc.NumberOfUnconfirmedResponsesBeyond25Days + 1 }; | |
else if (responseAge > 13) return { ...acc, NumberOfUnconfirmedResponsesBeyond13Days: acc.NumberOfUnconfirmedResponsesBeyond13Days + 1 }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const formResponses = [{Status: "New", CreatedAt: 1662477251}, {Status: "Saved", CreatedAt: 1662477251}]; | |
const results = formResponses.reduce((acc, current) => { | |
if (responseAge > 13) { // responseAge is defined using the same day diff logic that can be found in the previous phase | |
if (current.Status === "New") { | |
return { ...acc, NumberOfUnsavedResponsesBeyond13Days: acc.NumberOfUnsavedResponsesBeyond13Days + 1 }; | |
} else if (current.Status === "Saved") { | |
return { ...acc, NumberOfUnconfirmedResponsesBeyond13Days: acc.NumberOfUnconfirmedResponsesBeyond13Days + 1 }; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package hello.world | |
import android.bluetooth.BluetoothDevice | |
import android.content.Context | |
import android.content.Intent | |
import android.content.IntentFilter | |
import android.content.BroadcastReceiver | |
import com.polidea.rxandroidble2.RxBleDevice | |
import io.reactivex.Completable | |
import io.reactivex.disposables.Disposables |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use hidapi::HidApi; | |
use updatable_device::UpdatableDevice; | |
const BSL_VENDOR_ID: u16 = 0x2047; | |
const BSL_PRODUCT_ID: u16 = 0x200; | |
pub struct HIDDeviceManager { | |
hid_api: HidApi | |
} |