Skip to content

Commit

Permalink
Common: use sbt-tpolecat (close snowplow/snowplow#4010)
Browse files Browse the repository at this point in the history
  • Loading branch information
BenFradet authored and chuwy committed Jun 13, 2020
1 parent ab06757 commit cbf0da4
Show file tree
Hide file tree
Showing 152 changed files with 1,812 additions and 3,207 deletions.
3 changes: 1 addition & 2 deletions .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
style = default
align = some
align = none
maxColumn = 120
docstrings = JavaDoc
optIn.breakChainOnFirstMethodDot = true
Expand All @@ -12,4 +12,3 @@ rewrite.rules = [
RedundantParens,
PreferCurlyFors
]
align.tokens = ["|", "!", "!!", "||", "=>", "=", "->", "<-", "|@|", "//", "/", "+"]
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
*/
package com.snowplowanalytics.snowplow.enrich.common

// Scalaz
import scalaz._
import Scalaz._

/**
* The parent for our ETL-specific exceptions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,17 @@
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
*/
package com.snowplowanalytics
package snowplow
package enrich
package common
package com.snowplowanalytics.snowplow.enrich.common

// Java
import java.io.{PrintWriter, StringWriter}

// Joda
import org.joda.time.DateTime

// Iglu
import iglu.client.Resolver

// Scala
import scala.util.control.NonFatal

// Scalaz
import com.snowplowanalytics.iglu.client.Resolver
import org.joda.time.DateTime
import scalaz._
import Scalaz._

// This project
import adapters.AdapterRegistry
import enrichments.{EnrichmentManager, EnrichmentRegistry}
import outputs.EnrichedEvent
Expand Down Expand Up @@ -73,9 +62,9 @@ object EtlPipeline {

def flattenToList[A](v: Validated[Option[Validated[NonEmptyList[Validated[A]]]]]): List[Validated[A]] = v match {
case Success(Some(Success(nel))) => nel.toList
case Success(Some(Failure(f))) => List(f.fail)
case Failure(f) => List(f.fail)
case Success(None) => Nil
case Success(Some(Failure(f))) => List(f.fail)
case Failure(f) => List(f.fail)
case Success(None) => Nil
}

try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,16 @@
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
*/
package com.snowplowanalytics
package snowplow
package enrich
package common
package com.snowplowanalytics.snowplow.enrich.common
package adapters

import iglu.client.Resolver

// Scalaz
import com.snowplowanalytics.iglu.client.Resolver
import scalaz._
import Scalaz._

// This project
import loaders.CollectorPayload
import registry.snowplow.{Tp1Adapter => SpTp1Adapter}
import registry.snowplow.{Tp2Adapter => SpTp2Adapter}
import registry.snowplow.{RedirectAdapter => SpRedirectAdapter}
import registry._
import registry.snowplow.{Tp1Adapter => SpTp1Adapter, Tp2Adapter => SpTp2Adapter, RedirectAdapter => SpRedirectAdapter}

/**
* The AdapterRegistry lets us convert a CollectorPayload
Expand Down Expand Up @@ -79,24 +71,56 @@ class AdapterRegistry(remoteAdapters: Map[(String, String), RemoteAdapter] = Map
}

private object Vendor {
val Snowplow = "com.snowplowanalytics.snowplow"
val Redirect = "r"
val Iglu = "com.snowplowanalytics.iglu"
val Callrail = "com.callrail"
val Cloudfront = "com.amazon.aws.cloudfront"
val Snowplow = "com.snowplowanalytics.snowplow"
val Redirect = "r"
val Iglu = "com.snowplowanalytics.iglu"
val Callrail = "com.callrail"
val Cloudfront = "com.amazon.aws.cloudfront"
val GoogleAnalytics = "com.google.analytics"
val Mailchimp = "com.mailchimp"
val Mailgun = "com.mailgun"
val Mandrill = "com.mandrill"
val Olark = "com.olark"
val Pagerduty = "com.pagerduty"
val Pingdom = "com.pingdom"
val Sendgrid = "com.sendgrid"
val StatusGator = "com.statusgator"
val Unbounce = "com.unbounce"
val UrbanAirship = "com.urbanairship.connect"
val Marketo = "com.marketo"
val Vero = "com.getvero"
val HubSpot = "com.hubspot"
val Mailchimp = "com.mailchimp"
val Mailgun = "com.mailgun"
val Mandrill = "com.mandrill"
val Olark = "com.olark"
val Pagerduty = "com.pagerduty"
val Pingdom = "com.pingdom"
val Sendgrid = "com.sendgrid"
val StatusGator = "com.statusgator"
val Unbounce = "com.unbounce"
val UrbanAirship = "com.urbanairship.connect"
val Marketo = "com.marketo"
val Vero = "com.getvero"
val HubSpot = "com.hubspot"
}

/**
* Router to determine which adapter to use
* @param payload The CollectorPayload we are transforming
* @param resolver (implicit) The Iglu resolver used for schema lookup and validation
* @return either a NEL of RawEvents on Success, or a NEL of Strings on Failure
*/
def toRawEvents(payload: CollectorPayload)(implicit resolver: Resolver): ValidatedRawEvents =
(payload.api.vendor, payload.api.version) match {
case (Vendor.Snowplow, "tp1") => SpTp1Adapter.toRawEvents(payload)
case (Vendor.Snowplow, "tp2") => SpTp2Adapter.toRawEvents(payload)
case (Vendor.Redirect, "tp2") => SpRedirectAdapter.toRawEvents(payload)
case (Vendor.Iglu, "v1") => IgluAdapter.toRawEvents(payload)
case (Vendor.Callrail, "v1") => CallrailAdapter.toRawEvents(payload)
case (Vendor.Cloudfront, "wd_access_log") => CloudfrontAccessLogAdapter.WebDistribution.toRawEvents(payload)
case (Vendor.Mailchimp, "v1") => MailchimpAdapter.toRawEvents(payload)
case (Vendor.Mailgun, "v1") => MailgunAdapter.toRawEvents(payload)
case (Vendor.GoogleAnalytics, "v1") => GoogleAnalyticsAdapter.toRawEvents(payload)
case (Vendor.Mandrill, "v1") => MandrillAdapter.toRawEvents(payload)
case (Vendor.Olark, "v1") => OlarkAdapter.toRawEvents(payload)
case (Vendor.Pagerduty, "v1") => PagerdutyAdapter.toRawEvents(payload)
case (Vendor.Pingdom, "v1") => PingdomAdapter.toRawEvents(payload)
case (Vendor.Sendgrid, "v3") => SendgridAdapter.toRawEvents(payload)
case (Vendor.StatusGator, "v1") => StatusGatorAdapter.toRawEvents(payload)
case (Vendor.Unbounce, "v1") => UnbounceAdapter.toRawEvents(payload)
case (Vendor.UrbanAirship, "v1") => UrbanAirshipAdapter.toRawEvents(payload)
case (Vendor.Marketo, "v1") => MarketoAdapter.toRawEvents(payload)
case (Vendor.Vero, "v1") => VeroAdapter.toRawEvents(payload)
case (Vendor.HubSpot, "v1") => HubSpotAdapter.toRawEvents(payload)
case _ =>
s"Payload with vendor ${payload.api.vendor} and version ${payload.api.version} not supported by this version of Scala Common Enrich".failNel
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
package com.snowplowanalytics.snowplow.enrich.common
package adapters

// This project
import loaders.{CollectorApi, CollectorContext, CollectorSource}

/**
Expand Down
Loading

0 comments on commit cbf0da4

Please sign in to comment.