AsleepConfig
Initialize Config
Asleep.initAsleepConfig()
let apiKey: String = "YOUR_API_KEY"
let userId: String?
let baseUrl: URL?
let callbackUrl: URL?
let service: String?
let delegate: AsleepConfigDelegate = self
Asleep.initAsleepConfig(apiKey: apiKey,
userId: userId,
baseUrl: baseUrl,
callbackUrl: callbackUrl,
service: service,
delegate: self)| Property Name | Type | Description |
|---|---|---|
| apiKey | String | API Key 생성하기 에서 발급받은 값을 입력 |
| userId | String? | 초기 userId가 없을 땐 nil을 입력, 이후 발급받은 userId를 입력 |
| baseUrl | URL? | nil이면 기본값을 사용, proxy server 주소를 입력 |
| callbackUrl | URL? | 수면 세션 분석 결과를 받아올 서버의 url을 입력 |
| service | String? | 앱 이름을 입력 |
| delegate | AsleepConfigDelegate | 결과와 에러를 받을 Delegate을 전달 |
Token 방식
setup을 Token 방식으로 호출했다면 initAsleepConfig도 같은 인증 정보로 호출합니다.
Asleep.initAsleepConfig(appId: "YOUR_APP_ID",
appSecret: "YOUR_APP_SECRET",
userId: userId,
delegate: self)| Property Name | Type | Description |
|---|---|---|
appId | String? | 대시보드에서 발급받은 App ID |
appSecret | String? | 대시보드에서 발급받은 App Secret |
isTestEnvironment | Bool? | 테스트 환경을 사용할 때만 true |
나머지 파라미터(userId, baseUrl, callbackUrl, service, delegate)는 API Key 방식과 같습니다.
AsleepConfigDelegate
protocol AsleepConfigDelegate {
func userDidJoin(userId: String, config: Asleep.Config)
func didFailUserJoin(error: Asleep.AsleepError)
func userDidDelete(userId: String)
}-
성공 시, userDidJoin()가 호출됩니다.
Property Name Type Description userId String 생성된 userId config Asleep.Config 생성된 config -
실패 시, didFailUserJoin()가 호출됩니다.
Property Name Type Description error Asleep.AsleepError Error Codes -
userDidDelete()
성공 시, userId를 포함한 사용자의 모든 데이터를 삭제합니다.Property Name Type Description userId String 삭제된 userId
Delete User
Asleep.deleteUser()
var config: Asleep.Config?
if let config {
Asleep.deleteUser(config: config)
}| Property Name | Type | Description |
|---|---|---|
| config | Asleep.Config | Asleep.Config 객체를 입력 |
User Metadata
사용자의 생년월일 · 성별 · 키 · 몸무게를 저장하고 조회합니다.
Asleep.saveUserMetadata()
var config: Asleep.Config?
let metadata = Asleep.Model.UserMetadata(birthYear: 1990,
birthMonth: 5,
birthDay: 21,
gender: .female,
height: 165.5,
weight: 55.2)
Task {
do {
if let config {
try await Asleep.saveUserMetadata(metadata, config: config)
}
} catch {
print(error)
}
}| Property Name | Type | Description |
|---|---|---|
metadata | Asleep.Model.UserMetadata | 저장할 사용자 정보 |
config | Asleep.Config | userDidJoin에서 받은 config |
Asleep.fetchUserMetadata()
var config: Asleep.Config?
Task {
do {
if let config {
let metadata = try await Asleep.fetchUserMetadata(config: config)
}
} catch {
print(error)
}
}| Property Name | Type | Description |
|---|---|---|
config | Asleep.Config | userDidJoin에서 받은 config |
| (반환값) | Asleep.Model.UserMetadata? | 저장된 정보. 아직 저장한 적이 없으면 nil |
Asleep.Model.UserMetadata
struct UserMetadata {
let birthYear: Int?
let birthMonth: Int?
let birthDay: Int?
let gender: Gender?
let height: Double?
let weight: Double?
}
enum Gender: String {
case male
case female
case nonBinary
case other
case preferNotToSay
}| Property Name | Type | Description |
|---|---|---|
birthYear | Int? | 출생 연도 (1900~2100) |
birthMonth | Int? | 출생 월 (1~12) |
birthDay | Int? | 출생 일 (1~31) |
gender | Gender? | 성별 |
height | Double? | 키, cm (1~500). 소수점 첫째 자리까지 저장 (그 아래는 버림) |
weight | Double? | 몸무게, kg (1~1000). 소수점 첫째 자리까지 저장 (그 아래는 버림) |
- 모든 항목은 선택입니다.
nil인 항목은 요청에 포함되지 않습니다. - 범위를 벗어난 값은 서버 요청 없이 metadataValidationFailed 에러를 던집니다. 월과 일의 조합(예: 2월 31일)은 검사하지 않습니다.
에러 코드
| AsleepError | 상황 |
|---|---|
metadataValidationFailed | 저장 전 입력값 확인 실패. message에 원인 항목이 담깁니다 |
saveMetadataFailed | 저장 실패 (네트워크 · 서버 오류) |
fetchMetadataFailed | 조회 실패 (네트워크 · 서버 오류) |
Updated 6 days ago
Did this page help you?
