Skip to main content

Python library designed to be a utility for OMS microservices

Project description

Saas MS Library

Saas MS Library is a Python library designed to be a utility for OMS microservices. This library provides an easy-to-use and highly customizable solution for reusing application utilities and clients, allowing developers to focus on creating the most efficient and scalable microservice.

With Saas MS Library, you will be able to handle AWS databases and clients. Our library is compatible with Python 3.10 and later versions, and is under constant development to improve its performance and extend its functionality.

Features

  1. Database Handler (MongoDB, Redis, PostgreSQL, etc.)
  2. AWS Client Handler (Cognito, S3, etc.)
  3. Decorators

Installation

To install saas-ms-library, simply run the following command:

pip install saas-ms-library

Examples of use

Here are some examples of how to use saas-ms-library in your projects:

Create environment variables

GRPC_PORT=50051
GRPC_MAX_WORKERS=10
SERVICE_ID=saas-ms-user
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0

Use

from protos.v1.users import user_pb2, user_pb2_grpc
from omni.pro.decorators import resources_decorator
from omni.pro.util import HTTPStatus, Resource, deep_search, nested


class  UserService(user_pb2_grpc.UsersServiceServicer):
    @resources_decorator([Resource.AWS_COGNITO, Resource.MONGODB])
    def  UserCreate(
        self, request: user_pb2.UserCreateRequest, context
        ) -> user_pb2.UserCreateResponse:
            response = context.cognito_client.create_user(
                username=data["username"],
                password=data["password"],
                name=data["name"],
                email=data["email"],
                tenant=data["tenant"],
                language_code=data["language"]["code"],
                timezone_code=data["timezone"]["code"],
            )
            att_list = nested(response, "User.Attributes") or  nested(response, "UserAttributes", default=[])
            sub_dict = deep_search(att_list, key, value)
            user = context.db_manager.get_document(
                context.db_name, UserDocument, sub=sub_dict.get("Value")
            )
            return  user_pb2.UserCreateResponse(
                response_standard=base_pb2.ResponseStandard(
                    success=True,
                    message="User created",
                    status_code=HTTPStatus.CREATED
                ),
                user=user.to_proto(),
            )

License

Saas MS Library is licensed under the modified MIT License.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omni-pro-0.1.228.tar.gz (255.9 kB view details)

Uploaded Source

Built Distribution

omni_pro-0.1.228-py3-none-any.whl (559.5 kB view details)

Uploaded Python 3

File details

Details for the file omni-pro-0.1.228.tar.gz.

File metadata

  • Download URL: omni-pro-0.1.228.tar.gz
  • Upload date:
  • Size: 255.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for omni-pro-0.1.228.tar.gz
Algorithm Hash digest
SHA256 35a9e630760511b52cae38b66003c5e0a120470ae10f198152128e6cb9bc688d
MD5 d81f1de2f3c4ee34e4801643bedc0606
BLAKE2b-256 ae815084ac3dd4f7a0a272b8d1624065d0eff6ec015b94bb4f353bd8246545d6

See more details on using hashes here.

File details

Details for the file omni_pro-0.1.228-py3-none-any.whl.

File metadata

  • Download URL: omni_pro-0.1.228-py3-none-any.whl
  • Upload date:
  • Size: 559.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for omni_pro-0.1.228-py3-none-any.whl
Algorithm Hash digest
SHA256 c8c40ab25ed567df2e2585a81c50f73aff8b026d32786756eddf69d1905dbbac
MD5 8033de711b644abce90bed8f243dbe6a
BLAKE2b-256 dccd662ea8429e9e0e3861a4e834d8aea8ecfc6736d5fc21708ef860a1789377

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page