No Description

CreateGroupViewModel.swift 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //
  2. // CreateGroupViewModel.swift
  3. // PaiAi
  4. //
  5. // Created by ffib on 2018/12/17.
  6. // Copyright © 2018 yb. All rights reserved.
  7. //
  8. import Foundation
  9. import RxSwift
  10. import RxCocoa
  11. public protocol CreateGroupViewModelDelegate: class {
  12. func navigationToGroup(_ item: GroupItem)
  13. }
  14. public final class CreateGroupViewModel {
  15. private var repository: PhotoGroupRepository
  16. public var avatar: String
  17. public var name: String
  18. public var mappingIndex: Int
  19. public weak var delegate: CreateGroupViewModelDelegate?
  20. private let defaultGroupNames = ["苹果", "香蕉", "西兰花",
  21. "杨梅", "胡萝卜", "樱桃",
  22. "玉米", "火龙果", "茄子",
  23. "无花果", "葡萄", "柠檬",
  24. "山竹", "橘子", "木瓜",
  25. "水蜜桃", "菠萝", "草莓",
  26. "西瓜"]
  27. private let disposeBag = DisposeBag()
  28. public init(userInfoViewModel: UserInfoViewModel) {
  29. self.mappingIndex = Int(arc4random_uniform(19))
  30. self.repository = PhotoGroupRepository()
  31. self.avatar = "Group\(mappingIndex)"
  32. self.name = userInfoViewModel.shareUserInfo.value.userName + "的" + defaultGroupNames[mappingIndex] + "群"
  33. }
  34. public func createGroup() {
  35. return repository.create(groupName: name, avatar: "\(mappingIndex)")
  36. .subscribe(onSuccess: {[unowned self] item in
  37. self.delegate?.navigationToGroup(item)
  38. }).disposed(by: disposeBag)
  39. }
  40. }