Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

38 строки
1.1 KiB

  1. //
  2. // AuthRequestBuilder.swift
  3. // pusher_client
  4. //
  5. // Created by Romario Chinloy on 10/27/20.
  6. //
  7. import PusherSwiftWithEncryption
  8. class AuthRequestBuilder: AuthRequestBuilderProtocol {
  9. let pusherAuth: PusherAuth
  10. init(pusherAuth: PusherAuth) {
  11. self.pusherAuth = pusherAuth
  12. }
  13. func requestFor(socketID: String, channelName: String) -> URLRequest? {
  14. var request = URLRequest(url: URL(string: pusherAuth.endpoint)!)
  15. request.httpMethod = "POST"
  16. do {
  17. let authRequest = AuthRequest(socket_id: socketID, channel_name: channelName)
  18. if(pusherAuth.headers.values.contains("application/json")) {
  19. request.httpBody = try JSONEncoder().encode(authRequest)
  20. } else {
  21. request.httpBody = authRequest.valueUrlEncoded!.data(using: String.Encoding.utf8)
  22. }
  23. pusherAuth.headers.forEach { (key: String, value: String) in
  24. request.addValue(value, forHTTPHeaderField: key)
  25. }
  26. return request
  27. } catch {
  28. return nil
  29. }
  30. }
  31. }