All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.codacy.client.bitbucket.util.Implicits.scala Maven / Gradle / Ivy

There is a newer version: 19.0.7
Show newest version
package com.codacy.client.bitbucket.util

import com.codacy.client.bitbucket.client.JsResultHelper

import java.net.URI
import play.api.libs.json.{Json, Reads, Writes}

import scala.language.implicitConversions

object Implicits {

  implicit def enumWrites[E <: Enumeration#Value]: Writes[E] = Writes((e: E) => Json.toJson(e.toString))

  implicit def enumReads[E <: Enumeration](e: E): Reads[e.Value] = {
    Reads.StringReads
      .map { value =>
        e.values.find(_.toString == value)
      }
      .collect(JsResultHelper.error("Invalid enumeration value")) { case Some(v) => v }
  }

  implicit class URIQueryParam(uri: URI) {

    def addQuery(q: String): URI = {
      val newQuery = if (Option.apply(uri.getQuery).isEmpty) {
        q
      } else {
        uri.getQuery + "&" + q
      }

      new URI(uri.getScheme, uri.getAuthority, uri.getPath, newQuery, uri.getFragment)
    }
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy