Skip to content

0.1.20 - Добавил поддержку Encodable для request в виде функции makeJsonRequestEncodable#8

Open
rentateam-vmedvedev wants to merge 5 commits intoRentateam:masterfrom
rentateam-vmedvedev:0.1.20
Open

0.1.20 - Добавил поддержку Encodable для request в виде функции makeJsonRequestEncodable#8
rentateam-vmedvedev wants to merge 5 commits intoRentateam:masterfrom
rentateam-vmedvedev:0.1.20

Conversation

@rentateam-vmedvedev
Copy link
Copy Markdown

Ранее в request можно было передавать параметры только с помощью типа Parameters (который является словарем [String: Any])
Теперь можно передавать параметры с помощью любого типа данных, который конформит протокол Encodable.
Это избавляет нас от необходимости в ручную заполнять Parameters в стиле:

    func getParams() -> Parameters? {
        var parameters = Parameters()

        var address: [String:Any] = [:]
        address["appartment"] = data.contactAddress.appartment
        address["city"] = data.contactAddress.city
        address["cityFiasId"] = data.contactAddress.cityFiasId
      
        parameters["address"] = address
        return parameters
    }

Теперь мы можем сделать так:

  func getParams() -> Address? {
        return self.address
    }

}
}

private func getHeadersWithAuthTokenIfNeeded(request: RequestProtocol) -> HTTPHeaders {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может, тогда просто добавить реализацию RequestProtocol: RequestProtocolEncodable, и тогда не нужен будет этот метод? Просто обойдемся generic-ами.
Кстати, тогда, возможно и public func makeJsonRequestEncodable<Foo: RequestProtocolEncodable, Bar: Decodable> станет ненужным.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants