Compare commits

...
Author SHA1 Message Date
shimon 6c65a48368 throwing 409 on duplicate document 2023-12-21 11:00:19 +02:00
3 changed files with 13 additions and 2 deletions
+5
View File
@@ -200,6 +200,11 @@ return [
'description' => 'The identity could not be found. Please sign in with OAuth provider to create identity first.',
'code' => 404,
],
Exception::USER_IDENTITY_ALREADY_EXISTS => [
'name' => Exception::USER_IDENTITY_ALREADY_EXISTS,
'description' => 'The identity already exists.',
'code' => 409,
],
Exception::USER_UNAUTHORIZED => [
'name' => Exception::USER_UNAUTHORIZED,
'description' => 'The current user is not authorized to perform the requested action.',
+7 -2
View File
@@ -4,6 +4,7 @@ use Appwrite\Auth\OAuth2\Github as OAuth2Github;
use Utopia\App;
use Appwrite\Event\Build;
use Appwrite\Event\Delete;
use Utopia\Database\Exception\Duplicate;
use Utopia\Validator\Host;
use Utopia\Database\Database;
use Utopia\Database\Document;
@@ -368,7 +369,8 @@ App::get('/v1/vcs/github/callback')
$dbForConsole->updateDocument('identities', $identity->getId(), $identity);
} else {
$identity = $dbForConsole->createDocument('identities', new Document([
try {
$dbForConsole->createDocument('identities', new Document([
'$id' => ID::unique(),
'$permissions' => [
Permission::read(Role::any()),
@@ -383,7 +385,10 @@ App::get('/v1/vcs/github/callback')
'providerAccessToken' => $accessToken,
'providerRefreshToken' => $refreshToken,
'providerAccessTokenExpiry' => DateTime::addSeconds(new \DateTime(), (int)$accessTokenExpiry),
]));
]));
} catch (Duplicate) {
throw new Exception(Exception::USER_IDENTITY_ALREADY_EXISTS);
}
}
}
+1
View File
@@ -76,6 +76,7 @@ class Exception extends \Exception
public const USER_PASSWORD_MISMATCH = 'user_password_mismatch';
public const USER_SESSION_NOT_FOUND = 'user_session_not_found';
public const USER_IDENTITY_NOT_FOUND = 'user_identity_not_found';
public const USER_IDENTITY_ALREADY_EXISTS = 'user_identity_already_exists';
public const USER_UNAUTHORIZED = 'user_unauthorized';
public const USER_AUTH_METHOD_UNSUPPORTED = 'user_auth_method_unsupported';
public const USER_PHONE_ALREADY_EXISTS = 'user_phone_already_exists';