123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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 file = FileModel(name: "photo", 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()
- }
- }
|