Skip to content

Commit 98a79d6

Browse files
Return uniform 200 response for new and existing API key registrations (#110)
Co-authored-by: Kevin Payravi <kevinpayravi@gmail.com>
1 parent dc4e3b3 commit 98a79d6

3 files changed

Lines changed: 9 additions & 19 deletions

File tree

src/main/scala/dpla/api/Routes.scala

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -410,9 +410,9 @@ class Routes(
410410
case SmrArchiveSuccess =>
411411
complete(smrArchiveSuccessMessage)
412412
case NewApiKey(email) =>
413-
complete(newKeyMessage(email))
413+
complete(apiKeyMessage(email))
414414
case ExistingApiKey(email) =>
415-
complete(existingKeyResponse(email))
415+
complete(apiKeyMessage(email))
416416
case DisabledApiKey(email) =>
417417
complete(disabledKeyResponse(email))
418418
case NotFoundFailure =>
@@ -506,16 +506,6 @@ class Routes(
506506
entity = errorEntity("bad_request", message)
507507
)
508508

509-
private def existingKeyResponse(email: String): HttpResponse =
510-
HttpResponse(
511-
Conflict,
512-
entity = errorEntity(
513-
"existing_key",
514-
s"There is already an API key for $email" +
515-
". We have sent a reminder message to that address."
516-
)
517-
)
518-
519509
private def disabledKeyResponse(email: String): HttpResponse =
520510
HttpResponse(
521511
Conflict,
@@ -527,8 +517,8 @@ class Routes(
527517
)
528518
)
529519

530-
private def newKeyMessage(email: String): String =
531-
s"API key created and sent to $email."
520+
private def apiKeyMessage(email: String): String =
521+
s"Your API key has been sent to $email."
532522

533523
private val smrArchiveSuccessMessage: String =
534524
s"Your request has been received."

src/test/scala/dpla/api/v2/authentication/MockPostgresClientExistingKey.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ object MockPostgresClientExistingKey {
2222
case ValidApiKey(_, _) =>
2323
Behaviors.unhandled
2424

25-
case ValidEmail(_, replyTo) =>
26-
replyTo ! AccountFound(account)
25+
case ValidEmail(email, replyTo) =>
26+
replyTo ! AccountFound(account.copy(email = email))
2727
Behaviors.same
2828

2929
case _ =>

src/test/scala/dpla/api/v2/endToEnd/PostgresErrorTest.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,16 @@ class PostgresErrorTest extends AnyWordSpec with Matchers
4444
}
4545

4646
"/api_key/[email] route" should {
47-
"return Conflict if email has existing api key" in {
47+
"return OK if email has existing api key" in {
4848
lazy val routes: Route =
4949
new Routes(itemRegistry, pssRegistry,
5050
apiKeyRegistryExistingKey, smrRegistry).applicationRoutes
5151

5252
val request = Post("/v2/api_key/email@example.com")
5353

5454
request ~> Route.seal(routes) ~> check {
55-
status shouldEqual StatusCodes.Conflict
56-
contentType should === (ContentTypes.`application/json`)
55+
status shouldEqual StatusCodes.OK
56+
entityAs[String] shouldEqual "Your API key has been sent to email@example.com."
5757
}
5858
}
5959
}

0 commit comments

Comments
 (0)