update user

This commit is contained in:
2025-07-17 12:25:54 -03:00
parent 893dabe24b
commit b30b158917
4 changed files with 71 additions and 1 deletions

View File

@@ -32,7 +32,7 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
email=new_image['email'],
cpf=new_image.get('cpf', None),
)
except konviva.EmailAlreadyExists as exc:
except konviva.EmailAlreadyExistsError as exc:
logger.exception(exc, email=new_image['email'])
r = konviva.get_users_by_email(new_image['email'])

View File

@@ -0,0 +1,16 @@
from aws_lambda_powertools import Logger
from aws_lambda_powertools.utilities.data_classes import (
EventBridgeEvent,
event_source,
)
from aws_lambda_powertools.utilities.typing import LambdaContext
logger = Logger(__name__)
@event_source(data_class=EventBridgeEvent)
@logger.inject_lambda_context
def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
new_image = event.detail['new_image']
return True

View File

@@ -8,6 +8,7 @@ from layercake.strutils import random_str
from config import KONVIVA_API_URL, KONVIVA_SECRET_KEY
ADM = 1
ALU = 2
GES = 3
@@ -80,6 +81,30 @@ def create_user(
return r.json().get('IDUsuario')
def update_user(id: str, **kwargs) -> dict:
url = urlparse(KONVIVA_API_URL)._replace(
path='/action/api/integrarUsuario',
query='sendMail=false',
)
r = requests.put(
url=url.geturl(),
headers=headers,
json={
'IDUsuario': int(id),
**kwargs,
},
)
r.raise_for_status()
# Because Konviva does not return the proper HTTP status code
if err := glom(r.json(), 'errors', default=None):
err = err[0] if isinstance(err, list) else err
raise KonvivaError(err)
return r.json()
def get_users_by_email(email: str) -> list[dict]:
url = urlparse(KONVIVA_API_URL)._replace(
path='/action/api/getUsuariosByQuery',

View File

@@ -21,3 +21,32 @@ def test_get_users_by_email():
def test_get_users_by_email_notfound():
r = konviva.get_users_by_email('fake@fake.com')
assert r == []
def test_update_user():
r = konviva.update_user(
id='26943',
UnidadesPerfil=[
{
'IDPerfil': konviva.ADM,
'CODPerfil': 'ADM',
'CODUnidade': 'cJtK9SsnJhKPyxESe7g3DG',
},
{
'IDPerfil': konviva.ALU,
'CODPerfil': 'ALU',
'CODUnidade': 'cJtK9SsnJhKPyxESe7g3DG',
},
],
CODPerfilFavorito='ADM',
)
assert r['message'] == 'Usuário atualizado'
with pytest.raises(konviva.KonvivaError) as exc:
r = konviva.update_user(
id='26943',
CODPerfilFavorito='GES',
)
assert str(exc.value) == 'Perfil não encontrado'