FormParameters.kt

  1. package com.hexagonkt.http.model

  2. data class FormParameters(
  3.     val httpFields: Map<String, FormParameter>
  4. ) : Map<String, FormParameter> by httpFields {

  5.     constructor(fields: List<FormParameter>) : this(fields.associateBy { it.name })

  6.     constructor(vararg fields: FormParameter) : this(fields.toList())

  7.     operator fun plus(element: FormParameter): FormParameters =
  8.         copy(httpFields = httpFields + (element.name to element))

  9.     operator fun plus(element: FormParameters): FormParameters =
  10.         copy(httpFields = httpFields + element.httpFields)

  11.     operator fun minus(name: String): FormParameters =
  12.         copy(httpFields = httpFields - name)
  13. }