|
//
// 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["photos"] as? [[String: AnyObject]] }.flatMap { $0 }
return dataArr.map { PhotoItem(json: $0) }
}
func loadContent() -> Single<[PhotoItem]> {
let resource = ContentResource<[PhotoItem]>(path: .groupPhotoList,
parameter: ["user_id": ShareUserId,
"group_id": groupId,
"current_id": -1],
parseJSON: parse)
return resource.loadContent()
}
func uploadPhoto(data: Data) -> Single<[PhotoItem]> {
let name = ShareUserId + "\(Date.timeIntervalSinceReferenceDate)"
print(name)
let file = FileModel(fileName: name, fileData: data)
let uploadResource = UploadResource<[PhotoItem]>(path: .photoUpload,
parameter: ["user_id": ShareUserId,
"group_id": groupId,
"current_id": -1,
"photo": file],
parseJSON: parse)
return uploadResource.upload()
}
}
|