Slide 41
Slide 41 text
✨
VIEWS
class CreateUserView(APIView):
def post(self, request):
user_dto, errors = CreateUserSerializer().load(request.data)
if errors:
return Response(errors, status=status.HTTP_400_BAD_REQUEST)
use_case = build_create_user_use_case()
try:
user = use_case.execute(user_dto)
except (UsernameAlreadyExistsError) as e:
return Response(str(e), status=status.HTTP_422_UNPROCESSABLE_ENTITY)
except PermissionsInsuficientException as e:
return Response(str(e), status=status.HTTP_403_FORBIDDEN)
else:
return Response(UserSerializer().dump(user).data, status=status.HTTP_201_CREATED)