Skip to content

Commit

Permalink
Rename exception
Browse files Browse the repository at this point in the history
  • Loading branch information
UnknownNPC committed Aug 29, 2019
1 parent ff75ba0 commit 70e46d9
Show file tree
Hide file tree
Showing 15 changed files with 35 additions and 35 deletions.
Expand Up @@ -11,5 +11,5 @@ class ExternalAPICallException(message: String = "External request error", cause
extends APIException(message, cause)

final case
class ExternalAPIPayloadParseException(message: String = "Unable to parse payload", cause: Throwable)
class APIParseException(message: String = "Unable to parse payload", cause: Throwable)
extends APIException(message, cause)
Expand Up @@ -2,8 +2,8 @@ package com.github.unknownnpc.psw.api

trait Serializer[IN, OUT, REQ, RES] {

def toReq(obj: IN): Either[ExternalAPIPayloadParseException, REQ]
def toReq(obj: IN): Either[APIParseException, REQ]

def fromRes(out: RES): Either[ExternalAPIPayloadParseException, OUT]
def fromRes(out: RES): Either[APIParseException, OUT]

}
4 changes: 2 additions & 2 deletions api/src/main/scala/com/github/unknownnpc/psw/api/Utils.scala
Expand Up @@ -2,9 +2,9 @@ package com.github.unknownnpc.psw.api

object Utils {

def safeParse[T](fn: => T): Either[ExternalAPIPayloadParseException, T] = {
def safeParse[T](fn: => T): Either[APIParseException, T] = {
import scala.util.control.Exception.allCatch
allCatch.either(fn).left.map(e => ExternalAPIPayloadParseException(cause = e))
allCatch.either(fn).left.map(e => APIParseException(cause = e))
}

}
@@ -1,7 +1,7 @@
package com.github.unknownnpc.psw.p24.serializer

import com.github.unknownnpc.psw.api.Utils.safeParse
import com.github.unknownnpc.psw.api.{ExternalAPIPayloadParseException, Serializer}
import com.github.unknownnpc.psw.api.{APIParseException, Serializer}
import com.github.unknownnpc.psw.p24.model._
import org.apache.http.client.methods.HttpPost
import org.apache.http.entity.{ContentType, StringEntity}
Expand All @@ -12,7 +12,7 @@ private[serializer] class CardBalanceReqResSerializer extends Serializer[Request

private val urlTarget: String = "https://api.privatbank.ua/p24api/balance"

override def toReq(obj: Request): Either[ExternalAPIPayloadParseException, HttpPost] = {
override def toReq(obj: Request): Either[APIParseException, HttpPost] = {
safeParse {
def formHttpPostReq(payload: String): HttpPost = {
val httpPost = new HttpPost(urlTarget)
Expand All @@ -26,7 +26,7 @@ private[serializer] class CardBalanceReqResSerializer extends Serializer[Request
}
}

override def fromRes(out: String): Either[ExternalAPIPayloadParseException, CardBalanceResponse] = {
override def fromRes(out: String): Either[APIParseException, CardBalanceResponse] = {
safeParse {
val responseXml = XML.loadString(unPrettyOut(out))

Expand Down
@@ -1,7 +1,7 @@
package com.github.unknownnpc.psw.p24.serializer

import com.github.unknownnpc.psw.api.Utils.safeParse
import com.github.unknownnpc.psw.api.{ExternalAPIPayloadParseException, Serializer}
import com.github.unknownnpc.psw.api.{APIParseException, Serializer}
import com.github.unknownnpc.psw.p24.model._
import org.apache.http.client.methods.HttpPost
import org.apache.http.entity.{ContentType, StringEntity}
Expand All @@ -22,7 +22,7 @@ private[serializer] class WalletHistoryReqResSerializer extends Serializer[Reque
* @param walletHistoryReq the request entity.
* @return the p24 request on the xml format.
*/
override def toReq(req: Request): Either[ExternalAPIPayloadParseException, HttpPost] = {
override def toReq(req: Request): Either[APIParseException, HttpPost] = {
safeParse {
def formHttpPostReq(payload: String): HttpPost = {
val httpPost = new HttpPost(urlTarget)
Expand All @@ -36,7 +36,7 @@ private[serializer] class WalletHistoryReqResSerializer extends Serializer[Reque
}
}

override def fromRes(out: String): Either[ExternalAPIPayloadParseException, WalletHistoryResponse] = {
override def fromRes(out: String): Either[APIParseException, WalletHistoryResponse] = {
safeParse {
val responseXml = XML.loadString(unPrettyOut(out))

Expand Down
@@ -1,6 +1,6 @@
package com.github.unknownnpc.psw.p24.serializer

import com.github.unknownnpc.psw.api.ExternalAPIPayloadParseException
import com.github.unknownnpc.psw.api.APIParseException
import com.github.unknownnpc.psw.p24.model._
import org.apache.http.util.EntityUtils
import org.scalatest.{FunSpec, Matchers}
Expand Down Expand Up @@ -94,7 +94,7 @@ class CardBalanceReqResSerializerTest extends FunSpec with Matchers {

it("should return error when response is invalid") {
val result = P24Serializer.cardBalanceReqResSerializer.fromRes("asdasda").left.get
result shouldBe a[ExternalAPIPayloadParseException]
result shouldBe a[APIParseException]
}

}
@@ -1,6 +1,6 @@
package com.github.unknownnpc.psw.p24.serializer

import com.github.unknownnpc.psw.api.ExternalAPIPayloadParseException
import com.github.unknownnpc.psw.api.APIParseException
import com.github.unknownnpc.psw.p24.model._
import org.apache.http.util.EntityUtils
import org.scalatest.{FunSpec, Matchers}
Expand Down Expand Up @@ -107,7 +107,7 @@ class WalletHistoryReqResSerializerTest extends FunSpec with Matchers {

it("should return error when response is invalid") {
val result = P24Serializer.walletHistoryReqResSerializer.fromRes("asdasda").left.get
result shouldBe a[ExternalAPIPayloadParseException]
result shouldBe a[APIParseException]
}

}
@@ -1,15 +1,15 @@
package com.github.unknownnpc.psw.qiwi.serializer

import com.github.unknownnpc.psw.api.Utils.safeParse
import com.github.unknownnpc.psw.api.{ExternalAPIPayloadParseException, Serializer}
import com.github.unknownnpc.psw.api.{APIParseException, Serializer}
import com.github.unknownnpc.psw.qiwi.model.{AccountBalanceRequest, AccountBalanceResponse}
import org.apache.http.client.methods.HttpGet

private[serializer] class AccountBalanceReqResSerializer extends Serializer[AccountBalanceRequest, AccountBalanceResponse, HttpGet, String] {

private val urlTarget: String = "https://edge.qiwi.com/funding-sources/v2/persons/%s/accounts"

override def toReq(req: AccountBalanceRequest): Either[ExternalAPIPayloadParseException, HttpGet] = {
override def toReq(req: AccountBalanceRequest): Either[APIParseException, HttpGet] = {
safeParse {
val fullRequestUrl = String.format(urlTarget, req.wallet)
val httpGet = new HttpGet(fullRequestUrl)
Expand All @@ -20,7 +20,7 @@ private[serializer] class AccountBalanceReqResSerializer extends Serializer[Acco
}
}

override def fromRes(out: String): Either[ExternalAPIPayloadParseException, AccountBalanceResponse] = {
override def fromRes(out: String): Either[APIParseException, AccountBalanceResponse] = {
import org.json4s._
import org.json4s.native.Serialization
import org.json4s.native.Serialization.read
Expand Down
Expand Up @@ -4,7 +4,7 @@ import java.text.SimpleDateFormat
import java.util.{Date, TimeZone}

import com.github.unknownnpc.psw.api.Utils.safeParse
import com.github.unknownnpc.psw.api.{ExternalAPIPayloadParseException, Serializer}
import com.github.unknownnpc.psw.api.{APIParseException, Serializer}
import com.github.unknownnpc.psw.qiwi.model.{ResStatus, WalletHistoryRequest, WalletHistoryResponse}
import org.apache.http.client.methods.HttpGet
import org.json4s.CustomSerializer
Expand All @@ -25,7 +25,7 @@ private[serializer] class WalletHistoryReqResSerializer extends Serializer[Walle
setTimeZone(TimeZone.getTimeZone("GMT"))
}

override def toReq(req: WalletHistoryRequest): Either[ExternalAPIPayloadParseException, HttpGet] = {
override def toReq(req: WalletHistoryRequest): Either[APIParseException, HttpGet] = {
safeParse {
def queryParam(name: String, value: String): String = s"$name=$value"

Expand Down Expand Up @@ -53,7 +53,7 @@ private[serializer] class WalletHistoryReqResSerializer extends Serializer[Walle
}
}

override def fromRes(out: String): Either[ExternalAPIPayloadParseException, WalletHistoryResponse] = {
override def fromRes(out: String): Either[APIParseException, WalletHistoryResponse] = {
import org.json4s._
import org.json4s.native.Serialization
import org.json4s.native.Serialization.read
Expand Down
@@ -1,6 +1,6 @@
package com.github.unknownnpc.psw.qiwi.serializer

import com.github.unknownnpc.psw.api.ExternalAPIPayloadParseException
import com.github.unknownnpc.psw.api.APIParseException
import com.github.unknownnpc.psw.qiwi.model.AccountBalanceRequest
import org.scalatest.{FunSpec, Matchers}

Expand Down Expand Up @@ -64,7 +64,7 @@ class AccountBalanceReqResSerializerTest extends FunSpec with Matchers {

it("should return error when response is invalid") {
val result = QiwiSerializer.accountBalanceReqResSerializer.fromRes("asdasda").left.get
result shouldBe a[ExternalAPIPayloadParseException]
result shouldBe a[APIParseException]
}

}
Expand Up @@ -2,7 +2,7 @@ package com.github.unknownnpc.psw.qiwi.serializer

import java.util.Date

import com.github.unknownnpc.psw.api.ExternalAPIPayloadParseException
import com.github.unknownnpc.psw.api.APIParseException
import com.github.unknownnpc.psw.qiwi.model.{ReqSources, ReqTransferType, ResStatus, WalletHistoryRequest}
import org.scalatest.{FunSpec, Matchers}

Expand Down Expand Up @@ -135,7 +135,7 @@ class WalletHistoryReqResSerializerTest extends FunSpec with Matchers {

it("should return error when response is invalid") {
val result = QiwiSerializer.walletHistoryReqResSerializer.fromRes("asdasda").left.get
result shouldBe a[ExternalAPIPayloadParseException]
result shouldBe a[APIParseException]
}

}
@@ -1,7 +1,7 @@
package com.github.unknownnpc.psw.wm.serializer

import com.github.unknownnpc.psw.api.Utils.safeParse
import com.github.unknownnpc.psw.api.{ExternalAPIPayloadParseException, Serializer}
import com.github.unknownnpc.psw.api.{APIParseException, Serializer}
import com.github.unknownnpc.psw.wm.model._
import org.apache.http.client.methods.HttpPost

Expand All @@ -11,7 +11,7 @@ private[serializer] class X3ReqResSerializer extends Serializer[X3Request, X3Res

private val urlTarget: String = "https://w3s.webmoney.ru/asp/XMLOperations.asp"

override def toReq(obj: X3Request): Either[ExternalAPIPayloadParseException, HttpPost] = {
override def toReq(obj: X3Request): Either[APIParseException, HttpPost] = {

def operation(op: X3RequestOperation): Elem = {
scala.xml.XML.loadString(s"<${op.name}>${op.value}</${op.name}>")
Expand All @@ -37,7 +37,7 @@ private[serializer] class X3ReqResSerializer extends Serializer[X3Request, X3Res
}
}

override def fromRes(out: String): Either[ExternalAPIPayloadParseException, X3Response] = {
override def fromRes(out: String): Either[APIParseException, X3Response] = {
safeParse {
val unPrettyOut = out.replaceAll(">\\s+<", "><")
val responseXml = XML.loadString(unPrettyOut)
Expand Down
@@ -1,7 +1,7 @@
package com.github.unknownnpc.psw.wm.serializer

import com.github.unknownnpc.psw.api.Utils.safeParse
import com.github.unknownnpc.psw.api.{ExternalAPIPayloadParseException, Serializer}
import com.github.unknownnpc.psw.api.{APIParseException, Serializer}
import com.github.unknownnpc.psw.wm.model._
import org.apache.http.client.methods.HttpPost

Expand All @@ -11,7 +11,7 @@ private[serializer] class X9ReqResSerializer extends Serializer[X9Request, X9Res

private val urlTarget: String = "https://w3s.webmoney.ru/asp/XMLPurses.asp"

override def toReq(obj: X9Request): Either[ExternalAPIPayloadParseException, HttpPost] = {
override def toReq(obj: X9Request): Either[APIParseException, HttpPost] = {

def xmlReq(obj: X9Request): Elem = {
<w3s.request>
Expand All @@ -29,7 +29,7 @@ private[serializer] class X9ReqResSerializer extends Serializer[X9Request, X9Res
}
}

override def fromRes(out: String): Either[ExternalAPIPayloadParseException, X9Response] = {
override def fromRes(out: String): Either[APIParseException, X9Response] = {
safeParse {
val unPrettyOut = out.replaceAll(">\\s+<", "><")
val responseXml = XML.loadString(unPrettyOut)
Expand Down
Expand Up @@ -2,7 +2,7 @@ package com.github.unknownnpc.psw.wm.serializer

import java.util.Date

import com.github.unknownnpc.psw.api.ExternalAPIPayloadParseException
import com.github.unknownnpc.psw.api.APIParseException
import com.github.unknownnpc.psw.wm.Utils.WMDateFormatter
import com.github.unknownnpc.psw.wm.model.{RetVal, X3Request, X3RequestOperation, X3ResponseOperationType}
import org.apache.http.util.EntityUtils
Expand Down Expand Up @@ -91,7 +91,7 @@ class X3ReqResSerializerTest extends FunSpec with Matchers {

it("should return error when response is invalid") {
val result = WebMoneySerializer.x3ReqResSerializer.fromRes("asdasda").left.get
result shouldBe a[ExternalAPIPayloadParseException]
result shouldBe a[APIParseException]
}

}
Expand Up @@ -2,7 +2,7 @@ package com.github.unknownnpc.psw.wm.serializer

import java.util.Date

import com.github.unknownnpc.psw.api.ExternalAPIPayloadParseException
import com.github.unknownnpc.psw.api.APIParseException
import com.github.unknownnpc.psw.wm.model.{RetVal, X9Request}
import org.apache.http.util.EntityUtils
import org.scalatest.{FunSpec, Matchers}
Expand Down Expand Up @@ -66,7 +66,7 @@ class X9ReqResSerializerTest extends FunSpec with Matchers {

it("should return error when response is invalid") {
val result = WebMoneySerializer.x9ReqResSerializer.fromRes("asdasda").left.get
result shouldBe a[ExternalAPIPayloadParseException]
result shouldBe a[APIParseException]
}

}

0 comments on commit 70e46d9

Please sign in to comment.