Reports
1. Create Reports
- Asleep.createReports
 
Sleep Tracking에 대한 결과를 가져오기 위한 Reports를 생성합니다.
fun createReports(asleepConfig: AsleepConfig?): Reports?| Parameter Name | Type | Description | 
|---|---|---|
| asleepConfig | AsleepConfig? | initAsleepConfig호출에서 콜백받은 설정값을 입력 | 
2. Get Single Report
- Asleep.Reports.getReport
 
sessionId에 해당하는 Report를 가져옵니다.
fun getReport(sessionId: String, reportListener: ReportListener)| Parameter Name | Type | Description | 
|---|---|---|
| sessionId | String | Sleep Tracking을 정지할 때 받을 수 있는 sessionId의 값 | 
| reportListener | ReportListener | Report를 콜백 받을 listener | 
- Asleep.Reports.ReportListener
 
interface ReportListener {
    fun onSuccess(report: Report?)
    fun onFail(errorCode: Int, detail: String)
}성공 시, onSuccess()가 호출됩니다.
data class Report(
    val validity: String?,
    val session: Session?,
    val stat: Stat?,
    val timezone: String?
)
data class Session(
    val endTime: String?,
    val id: String?,
    val osaStages: List<Int?>?,
    val sleepStages: List<Int?>?,
    val startTime: String?,
    val state: String?
)
data class Stat(
    val sleepEfficiency: Float?,
    val sleepLatency: Int?,
    val sleepTime: String?,
    val timeInBed: Int?,
    val timeInDeep: Int?,
    val timeInLight: Int?,
    val timeInRem: Int?,
    val timeInSleep: Int?,
    val timeInWake: Int?,
    val wakeTime: String?,
    val wakeupLatency: Int?,
    val timeInSleepPeriod: Int?,
    val timeInStableBreath: Int?,
    val timeInUnstableBreath: Int?,
    val wakeRatio: Float?,
    val sleepRatio: Float?,
    val remRatio: Float?,
    val lightRatio: Float?,
    val deepRatio: Float?,
    val stableBreathRatio: Float?,
    val unstableBreathRatio: Float?,
    val breathingPattern: String?,
    val estimatedAhi: Float?
)Parameter Name  | Type  | Description  | 
|---|---|---|
validity  | String?  | 해당 수면 세션의 분석이 유효한지 여부 IN_PROGRESS: 세션이 OPEN인 경우  | 
session  | Session?  | 세션 분석 정보  | 
stat  | Stat?  | 분석 통계 정보  | 
timezone  | String?  | 분석 결과의 시간대를 해당 timezone으로 변경해서 반환  | 
endTime  | String?  | 세션 종료 시각  | 
id  | String?  | 세션 Id  | 
osaStages  | List<Int?>?  | 호흡 안정도 단계 리스트  | 
sleepStages  | List<Int?>?  | 수면 단계 리스트  | 
startTime  | String?  | 세션 시작 시각  | 
state  | String?  | 수면 세션 상태 (OPEN, CLOSED or COMPLETE)  | 
sleepEfficiency  | Float?  | 수면 측정 시간 중 실제로 잠든 시간의 비율  | 
sleepLatency  | Int?  | 잠들때까지 걸린 시각  | 
sleepTime  | String?  | 수면 측정 시작 후 잠들기 까지 걸린 시간  | 
timeInBed  | Int?  | 수면 측정 시작 시각부터 수면 측정 종료 시각 까지의 시간  | 
timeInDeep  | Int?  | 수면 단계가 deep로 진행된 총 시간  | 
timeInLight  | Int?  | 수면 단계가 light 로 진행된 총 시간  | 
timeInRem  | Int?  | 수면 단계가 rem 으로 진행된 총 시간  | 
timeInSleep  | Int?  | 수면 측정 시간 중 실제로 수면 중이었던 시간이 시간이 deep, light, rem의 3단계로 구분됨  | 
timeInWake  | Int?  | 수면 도중에 깬 시간  | 
wakeTime  | String?  | 잠에서 깨어난 시각  | 
wakeupLatency  | Int?  | 잠에서 깨어난 후 수면 측정을 종료하기까지 걸린 시간  | 
timeInSleepPeriod  | Int?  | 수면 측정 시간 중 수면 측정 시작으로부터 잠들기 까지 걸린 시간과 잠에서 깨어난 후로부터 수면 측정을 종료하기까지 걸린 시간을 제외한 시간  | 
timeInStableBreath  | Int?  | 호흡 안정 구간이었던 총 시간  | 
timeInUnstableBreath  | Int?  | 호흡 불안정 구간이었던 총 시간  | 
wakeRatio  | Float?  | 수면 단계 도중 중간에 깬 시간의 비율  | 
sleepRatio  | Float?  | 수면 단계 도중 깨지 않고 잔 시간의 비율  | 
remRatio  | Float?  | rem sleep 비율  | 
lightRatio  | Float?  | 수면 단계 도중 light 수면의 비율  | 
deepRatio  | Float?  | 수면 단계 도중 deep 수면의 비율  | 
stableBreathRatio  | Float?  | 수면 단계 도중 호흡 안정 구간이었던 시간의 비율  | 
unstableBreathRatio  | Float?  | 수면 단계 도중 호흡 불안정 구간이었던 시간의 비율  | 
breathingPattern  | String?  | 호흡 불안정의 단계  | 
estimatedAhi  | Float?  | 호흡 불안정 레벨을 판단하기 위한 값  | 
실패 시, onFail()이 호출됩니다.
| Parameter Name | Type | Description | 
|---|---|---|
| errorCode | Int | AsleepErrorCode 참조 | 
| detail | String | errorCode에 관련된 메세지 | 
3. Get Multiple Reports
- Asleep.Reports.getReports
 
입력한 날짜의 범위내에 있는 Report 목록을 가져옵니다.
fun getReports(
    fromDate: String, 
  	toDate: String, 
  	orderBy: String = "DESC", 
  	offset: Int = 0, 
  	limit: Int = 20, 
  	reportsListener: ReportsListener?)
    Parameter Name  | Type  | Description  | 
|---|---|---|
fromDate  | String (  | 조회 시작 날짜  | 
toDate  | String (  | 조회 마지막 날짜  | 
orderBy = "DESC"  | String  | 
  | 
offset = 0  | Int  | 스킵할 Report 개수  | 
limit = 20  | Int  | 최대 받을 Report 개수(0~20)  | 
reportsListener  | ReportsListener?  | Report 목록을 콜백 받을 listener  | 
- Asleep.Reports.ReportsListener
 
interface ReportsListener {
    fun onSuccess(reports: List<SleepSession>?)
    fun onFail(errorCode: Int, detail: String)
}성공 시, onSuccess()가 호출됩니다.
data class SleepSession(
    val sessionId: String?,
    val lastReceivedSeqNum: Int?,
    val sessionEndTime: String?,  
    val sessionStartTime: String?,
    val state: String?,
    val timeInBed: Int?
)| Parameter Name | Type | Description | 
|---|---|---|
| sessionId | String? | 세션 Id | 
| lastReceivedSeqNum | Int? | 마지막으로 업로드 받은 오디오 파일의 순서 번호 | 
| sessionEndTime | String? | 세션 종료 시각 | 
| sessionStartTime | String? | 세션 시작 시각 | 
| state | String? | 수면 세션 상태 (OPEN, CLOSED or COMPLETE) | 
| timeInBed | Int? | 침대에 있었던 시간 | 
sessionId로 getReport() 호출 시 상세 리포트를 가져옵니다.
실패 시, onFail()이 호출됩니다.
| Parameter Name | Type | Description | 
|---|---|---|
| errorCode | Int | AsleepErrorCode 참조 | 
| detail | String | errorCode에 관련된 메세지 | 
4. Delete Report
세션 데이터 삭제 요청에 따라 에이슬립 서버에서 세션 데이터가 삭제된 경우, 추후 과금 사용량 분석 시 삭제된 세션에 대한 구체적인 근거 제공이 어렵습니다.
- Asleep.deleteReport
 
sessionId에 해당하는 Report를 삭제합니다.
fun deleteReport(sessionId: String, deleteReportListener: DeleteReportListener)| Parameter Name | Type | Description | 
|---|---|---|
| sessionId | String | 삭제할 sessionId의 값 | 
| deleteReportListener | DeleteReportListener | Report 삭제에 대한 콜백을 받을 listener | 
- Asleep.Reports.DeleteReportListener
 
interface DeleteReportListener {
    fun onSuccess(sessionId: String?)
    fun onFail(errorCode: Int, detail: String)
}성공 시, onSuccess()가 호출됩니다.
| Parameter Name | Type | Description | 
|---|---|---|
| sessionId | String? | 삭제된 sessionId의 값 | 
실패 시, onFail()이 호출됩니다.
| Parameter Name | Type | Description | 
|---|---|---|
| errorCode | Int | AsleepErrorCode 참조 | 
| detail | String | errorCode에 관련된 메세지 | 
Updated 5 months ago
