Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Базовый класс
- class Parameters {
- var parameters: [String: Any] = [:]
- /**
- Добавить параметр.
- - parameter parameter: имя параметра;
- - parameter value: значение параметра.
- */
- @discardableResult
- open func withParameter(parameter: String, value: Any) -> Self {
- self.parameters[parameter] = value
- return self
- }
- }
- // реализация сереализатора конкртенного типа
- final class CityParameters: Parameters {
- private enum Key: String {
- case id
- case name
- case mapTypeValue = "map_type"
- case center
- case currency
- }
- init(city: City) {
- super.init()
- withParameter(parameter: Key.id.rawValue, value: city.id)
- withParameter(parameter: Key.name.rawValue, value: city.name)
- withParameter(parameter: Key.mapTypeValue.rawValue, value: city.mapTypeValue)
- let center = CoordinateParameters(coordinate: city.center).parameters
- withParameter(parameter: Key.center.rawValue, value: center)
- withParameter(parameter: Key.currency.rawValue, value: city.currency)
- }
- }
Add Comment
Please, Sign In to add comment