iOS-study
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

AccountService.swift 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //
  2. // AccountService.swift
  3. // iOSFirst
  4. //
  5. // Created by 孙宇峰 on 2023/2/3.
  6. //
  7. import Foundation
  8. import Moya
  9. enum AccountService {
  10. case login(_ username: String, _ password: String, _ showLoading: Bool)
  11. }
  12. extension AccountService: TargetType {
  13. var baseURL: URL {
  14. return URL(string: Api.shoolurl)!
  15. }
  16. var path: String {
  17. switch self {
  18. case .login:
  19. return Api.Account.loginTeacher
  20. }
  21. }
  22. var method: Moya.Method {
  23. switch self {
  24. case .login:
  25. return .post
  26. default:
  27. return .post
  28. }
  29. }
  30. // var sampleData: Data {
  31. // return Data()
  32. // }
  33. //
  34. var task: Task {
  35. switch self {
  36. case .login(let username, let password, _):
  37. return .requestParameters(parameters: ["loginname": username,
  38. "loginpwd": password,
  39. "ultype":"p_phone_t",
  40. "versionnum":"3.6.0"],
  41. encoding: JSONEncoding.default)
  42. }
  43. }
  44. var headers: [String : String]? {
  45. switch self {
  46. case .login(_, _, let showLoading):
  47. return [
  48. "st":"false",
  49. "Content-type":"application/json"]
  50. default:
  51. return nil
  52. }
  53. }
  54. var sampleData: Data {
  55. switch self {
  56. case .login:
  57. return "should be filled properly".utf8Encoded
  58. }
  59. }
  60. }
  61. private extension String {
  62. var utf8Encoded:Data {
  63. return data(using: .utf8)!
  64. }
  65. }