|
//
// GroupPhotoRemoteAPI.swift
// PaiaiDataKit
//
// Created by ffib on 2019/1/2.
// Copyright © 2019 yb. All rights reserved.
//
import Foundation
import RxSwift
struct GroupPhotoRemoteAPI {
private var groupId: String
init(groupId: String) {
self.groupId = groupId
}
private func parse(_ json: JSON) -> [PhotoItem]? {
guard let data = json["data"] as? [String: AnyObject],
let photos = data["photos"] as? [[String: AnyObject]] else { return nil }
let dataArr = photos.compactMap { $0 }
return dataArr.map { PhotoItem(json: $0) }
}
private func parseUpload(_ json: JSON) -> PhotoItem? {
guard let data = json["data"] as? [String: AnyObject],
let photos = data["photos"] as? [[String: AnyObject]] else { return nil }
let dataArr = photos.compactMap { $0 }
return PhotoItem(json: dataArr[0])
}
func loadContent() -> Single<[PhotoItem]> {
let resource = ContentResource<[PhotoItem]>(path: .groupPhotoList,
parameter: ["user_id": ShareUserId,
"group_id": groupId],
parseJSON: parse)
return resource.loadContent()
}
func uploadPhoto(data: Data) -> Single<PhotoItem> {
let name = groupId + "" + "\(Date.timeIntervalSinceReferenceDate)"
let file = FileModel(name: name, fileData: data)
let uploadResource = UploadResource<PhotoItem>(path: .photoUpload,
parameter: ["user_id": ShareUserId,
"group_id": groupId,
"photo": file],
parseJSON: parseUpload)
return uploadResource.upload()
}
}
|