Skip to content

Commit

Permalink
Revert "adds external connector protocol"
Browse files Browse the repository at this point in the history
  • Loading branch information
stthanos authored Jan 30, 2024
1 parent 83fa9c4 commit 276b1ae
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 88 deletions.
34 changes: 3 additions & 31 deletions snapi-frontend/src/main/scala/raw/creds/api/Credentials.scala
Original file line number Diff line number Diff line change
Expand Up @@ -146,44 +146,16 @@ final case class SnowflakeCredential(
val port = None
}

case class ExternalConnectorCredentialId(name: String, connectorType: AbstractConnectorType)

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "repr")
@JsonSubTypes(
Array(
new JsonType(value = classOf[SalesforceConnectorType], name = "SALESFORCE")
)
)
trait AbstractConnectorType {
def repr: String
}
case class SalesforceConnectorType() extends AbstractConnectorType {
override def repr: String = "SALESFORCE"
}

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "connectorType")
@JsonSubTypes(
Array(
new JsonType(value = classOf[ExternalConnectorSalesforceCredential], name = "SALESFORCE")
)
)
sealed trait ExternalConnectorCredential extends Credential {
def connectorType: AbstractConnectorType
def sensitiveFields: List[String]
}

final case class ExternalConnectorSalesforceCredential(
final case class SalesforceCredential(
url: String,
username: String,
password: String,
securityToken: String,
clientId: String,
apiVersion: String,
customObjects: Seq[String],
override val sensitiveFields: List[String] = List("password", "securityToken")
) extends ExternalConnectorCredential {
override def connectorType: AbstractConnectorType = SalesforceConnectorType()
}
options: Map[String, String]
) extends Credential

final case class Secret(name: String, value: String) extends Credential

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,22 +100,22 @@ trait CredentialsService extends RawService {

def unregisterDropboxToken(user: AuthenticatedUser): Boolean

/** ExternalConnector */
/** Salesforce */

def registerExternalConnectorCredential(
def registerSalesforceCredential(
user: AuthenticatedUser,
name: String,
credential: ExternalConnectorCredential
salesforceCredential: SalesforceCredential
): Boolean

def getExternalConnectorCredential(user: AuthenticatedUser, name: String): Option[ExternalConnectorCredential]
def getSalesforceCredential(user: AuthenticatedUser, name: String): Option[SalesforceCredential]

def existsExternalConnectorCredential(user: AuthenticatedUser, name: String): Boolean =
getExternalConnectorCredential(user, name).isDefined
def existsSalesforceCredential(user: AuthenticatedUser, name: String): Boolean =
getSalesforceCredential(user, name).isDefined

def listExternalConnectorCredentials(user: AuthenticatedUser): List[ExternalConnectorCredentialId]
def listSalesforceCredentials(user: AuthenticatedUser): List[String]

def unregisterExternalConnectorCredential(user: AuthenticatedUser, name: String): Boolean
def unregisterSalesforceCredential(user: AuthenticatedUser, name: String): Boolean

/** Http Credentials */

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,54 +109,46 @@ class ClientCredentials(serverAddress: URI)(implicit settings: RawSettings) exte

/** Salesforce */

def registerExternalConnectorCredential(
def registerSalesforceCredential(
user: AuthenticatedUser,
name: String,
externalConnectorCredential: ExternalConnectorCredential
salesforceCredential: SalesforceCredential
): Boolean = {
try {
restClient.doJsonPostWithEmptyResponse(
"2/connector/register",
RegisterExternalConnectorCredential(user, name, externalConnectorCredential),
"2/salesforce/register",
RegisterSalesforceCredential(user, name, salesforceCredential),
withAuth = false
)
true
} catch {
case ex: ClientAPIException if ex.errorCode == "externalConnectorCredentialAlreadyExists" => false
case ex: ClientAPIException if ex.errorCode == "salesforceCredentialAlreadyExists" => false
}
}

def getExternalConnectorCredential(user: AuthenticatedUser, name: String): Option[ExternalConnectorCredential] = {
def getSalesforceCredential(user: AuthenticatedUser, name: String): Option[SalesforceCredential] = {
try {
Some(
restClient
.doJsonPost[ExternalConnectorCredential](
"2/connector/get",
GetExternalConnectorCredential(user, name),
withAuth = false
)
.doJsonPost[SalesforceCredential]("2/salesforce/get", GetSalesforceCredential(user, name), withAuth = false)
)
} catch {
case ex: ClientAPIException if ex.errorCode == "externalConnectorCredentialNotFound" => None
case ex: ClientAPIException if ex.errorCode == "salesforceCredentialNotFound" => None
}
}

def existsExternalConnectorCredential(user: AuthenticatedUser, name: String): Boolean =
getExternalConnectorCredential(user, name).isDefined
def existsSalesforceCredential(user: AuthenticatedUser, name: String): Boolean =
getSalesforceCredential(user, name).isDefined

def listExternalConnectorCredentials(user: AuthenticatedUser): List[ExternalConnectorCredentialId] = {
restClient.doJsonPost[List[ExternalConnectorCredentialId]](
"2/connector/list",
ListExternalConnectorCredential(user),
withAuth = false
)
def listSalesforceCredentials(user: AuthenticatedUser): List[String] = {
restClient.doJsonPost[List[String]]("2/salesforce/list", ListSalesforceCredentials(user), withAuth = false)
}

def unregisterExternalConnectorCredential(user: AuthenticatedUser, name: String): Boolean = {
def unregisterSalesforceCredential(user: AuthenticatedUser, name: String): Boolean = {
try {
restClient.doJsonPostWithEmptyResponse(
"2/connector/unregister",
UnregisterExternalConnectorCredential(user, name),
"2/salesforce/unregister",
UnregisterSalesforceCredential(user, name),
HttpStatus.SC_NO_CONTENT,
withAuth = false
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,42 +85,39 @@ class ClientCredentialsService(implicit settings: RawSettings) extends Credentia
}
}

/** ExternalConnector */
/** Salesforce */

override def registerExternalConnectorCredential(
override def registerSalesforceCredential(
user: AuthenticatedUser,
name: String,
externalConnectorCredential: ExternalConnectorCredential
salesforceCredential: SalesforceCredential
): Boolean = {
try {
client.registerExternalConnectorCredential(user, name, externalConnectorCredential)
client.registerSalesforceCredential(user, name, salesforceCredential)
} catch {
case ex: APIException => throw new ClientCredentialsException(ex.getMessage, ex)
}
}

override def getExternalConnectorCredential(
user: AuthenticatedUser,
name: String
): Option[ExternalConnectorCredential] = {
override def getSalesforceCredential(user: AuthenticatedUser, name: String): Option[SalesforceCredential] = {
try {
client.getExternalConnectorCredential(user, name)
client.getSalesforceCredential(user, name)
} catch {
case ex: APIException => throw new ClientCredentialsException(ex.getMessage, ex)
}
}

override def listExternalConnectorCredentials(user: AuthenticatedUser): List[ExternalConnectorCredentialId] = {
override def listSalesforceCredentials(user: AuthenticatedUser): List[String] = {
try {
client.listExternalConnectorCredentials(user)
client.listSalesforceCredentials(user)
} catch {
case ex: APIException => throw new ClientCredentialsException(ex.getMessage, ex)
}
}

override def unregisterExternalConnectorCredential(user: AuthenticatedUser, name: String): Boolean = {
override def unregisterSalesforceCredential(user: AuthenticatedUser, name: String): Boolean = {
try {
client.unregisterExternalConnectorCredential(user, name)
client.unregisterSalesforceCredential(user, name)
} catch {
case ex: APIException => throw new ClientCredentialsException(ex.getMessage, ex)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,26 +45,23 @@ class LocalCredentialsService extends CredentialsService {
false
}

override def registerExternalConnectorCredential(
override def registerSalesforceCredential(
user: AuthenticatedUser,
name: String,
credential: ExternalConnectorCredential
salesforceCredential: SalesforceCredential
): Boolean = {
false
}

override def getExternalConnectorCredential(
user: AuthenticatedUser,
name: String
): Option[ExternalConnectorCredential] = {
override def getSalesforceCredential(user: AuthenticatedUser, name: String): Option[SalesforceCredential] = {
None
}

override def listExternalConnectorCredentials(user: AuthenticatedUser): List[ExternalConnectorCredentialId] = {
override def listSalesforceCredentials(user: AuthenticatedUser): List[String] = {
List.empty
}

override def unregisterExternalConnectorCredential(user: AuthenticatedUser, name: String): Boolean = {
override def unregisterSalesforceCredential(user: AuthenticatedUser, name: String): Boolean = {
false
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,15 @@ final case class RegisterDropboxCredential(user: AuthenticatedUser, token: Dropb
final case class GetDropboxCredential(user: AuthenticatedUser)
final case class UnregisterDropboxCredential(user: AuthenticatedUser)

final case class RegisterExternalConnectorCredential(
final case class RegisterSalesforceCredential(
user: AuthenticatedUser,
name: String,
externalConnectorCredentialProtocol: ExternalConnectorCredential
salesforceCredential: SalesforceCredential
)
final case class GetExternalConnectorCredential(user: AuthenticatedUser, name: String)
final case class ListExternalConnectorCredential(user: AuthenticatedUser)
final case class UnregisterExternalConnectorCredential(user: AuthenticatedUser, name: String)
final case class GetSalesforceCredential(user: AuthenticatedUser, name: String)
final case class ListSalesforceCredentials(user: AuthenticatedUser)

final case class UnregisterSalesforceCredential(user: AuthenticatedUser, name: String)

final case class RegisterHttpCredential(user: AuthenticatedUser, credential: HttpCredential)
final case class ListHttpCredentials(user: AuthenticatedUser)
Expand Down

0 comments on commit 276b1ae

Please sign in to comment.