콘텐츠 업로드 - 미리 듣기 시간 설정 기능 추가

This commit is contained in:
Yu Sung
2023-09-23 00:08:23 +09:00
parent 225efc34e4
commit d1b5ab31aa
3 changed files with 113 additions and 1 deletions

View File

@@ -58,6 +58,9 @@ final class ContentCreateViewModel: ObservableObject {
}
}
@Published var previewStartTime: String = ""
@Published var previewEndTime: String = ""
var placeholder = "내용을 입력하세요"
func uploadAudioContent() {
@@ -71,7 +74,9 @@ final class ContentCreateViewModel: ObservableObject {
price: price,
themeId: theme!.id,
isAdult: isAdult,
isCommentAvailable: isAvailableComment
isCommentAvailable: isAvailableComment,
previewStartTime: previewStartTime,
previewEndTime: previewEndTime
)
var multipartData = [MultipartFormData]()
@@ -211,6 +216,62 @@ final class ContentCreateViewModel: ObservableObject {
return false
}
if previewStartTime.count > 0 && previewEndTime.count > 0 {
let startTimeArray = previewStartTime.split(separator: ":")
if startTimeArray.count != 3 {
errorMessage = "미리 듣기 시간 형식은 00:30:00 과 같아야 합니다"
isShowPopup = true
return false
}
for time in startTimeArray {
if time.count != 2 {
errorMessage = "미리 듣기 시간 형식은 00:30:00 과 같아야 합니다"
isShowPopup = true
return false
}
}
let endTimeArray = previewStartTime.split(separator: ":")
if endTimeArray.count != 3 {
errorMessage = "미리 듣기 시간 형식은 00:30:00 과 같아야 합니다"
isShowPopup = true
return false
}
for time in endTimeArray {
if time.count != 2 {
errorMessage = "미리 듣기 시간 형식은 00:30:00 과 같아야 합니다"
isShowPopup = true
return false
}
}
let timeDifference = timeDifference(startTime: previewStartTime, endTime: previewEndTime)
if timeDifference < 30.0 {
errorMessage = "미리 듣기의 최소 시간은 30초 입니다"
isShowPopup = true
return false
}
} else {
if previewStartTime.count > 0 || previewEndTime.count > 0 {
errorMessage = "미리 듣기 시작 시간과 종료 시간 둘 다 입력을 하거나 둘 다 입력 하지 않아야 합니다."
isShowPopup = true
return false
}
}
return true
}
private func timeDifference(startTime: String, endTime: String) -> Double {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm:ss"
if let date1 = dateFormatter.date(from: startTime), let date2 = dateFormatter.date(from: endTime) {
return date2.timeIntervalSince(date1)
}
return 0
}
}