Source code for q2_sdk.hq.db.host_account_meta_data

from argparse import _SubParsersAction
from functools import partial
from typing import List
from lxml.objectify import IntElement, StringElement
from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from q2_sdk.tools.decorators import dev_only
from .db_object import DbObject
from .representation_row_base import RepresentationRowBase


[docs] class HostAccountMetaDataRow(RepresentationRowBase): # object name: type hinting = "column name in the db response" rowID: IntElement = "rowID" HostAccountID: IntElement = "HostAccountID" CreateDate: IntElement = "CreateDate" HostAccountMetaDataValue: StringElement = "HostAccountMetaDataValue" DataID: IntElement = "DataID" ShortName: StringElement = "ShortName"
[docs] class HostAccountMetaData(DbObject): NAME = "HostAccountMetaData" REPRESENTATION_ROW_CLASS = HostAccountMetaDataRow
[docs] def add_arguments(self, parser: _SubParsersAction): subparser = parser.add_parser("get_host_account_meta_data") subparser.set_defaults(parser="get") subparser.set_defaults(func=partial(self.get, serialize_for_cli=True)) subparser.add_argument( "data_element", help="Q2_HostAccountMetaDataElement.ShortName" ) subparser.add_argument( "host_account_id", help="Q2_HostAccountMetaDataElement.HostAccountID" ) subparser = parser.add_parser("add_host_account_meta_data") subparser.set_defaults(parser="add") subparser.set_defaults(func=partial(self.create)) subparser.add_argument( "data_element", help="Q2_HostAccountMetaDataElement.ShortName" ) subparser.add_argument( "host_account_id", help="Q2_HostAccountMetaDataElement.HostAccountID" ) subparser.add_argument( "data_value", help="Q2_HostAccountMetaData.HostAccountMetaDataValue" ) subparser = parser.add_parser("remove_host_account_meta_data") subparser.set_defaults(parser="delete") subparser.set_defaults(func=partial(self.delete)) subparser.add_argument("data_id", help="Q2_HostAccountMetaData.DataID") subparser.add_argument( "host_account_id", help="Q2_HostAccountMetaData.HostAccountID" )
[docs] async def get( self, data_element: str, host_account_id: int, serialize_for_cli=False ) -> List[HostAccountMetaDataRow]: response = await self.call_hq( "Q2_GetHostAccountMetaData", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "dataElement", data_element, ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "HostAccountID", host_account_id, ), ]), ) if serialize_for_cli: columns = ["DataID", "HostAccountID", "HostAccountMetaDataValue"] response = self.serialize_for_cli( response, columns, fields_to_truncate=["HostAccountMetaDataValue"] ) return response
[docs] async def create( self, data_element: str, host_account_id: int, data_value: str ) -> HostAccountMetaDataRow: response = await self.call_hq( "Q2_AddUpdateHostAccountMetaData", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "dataElement", data_element, ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "HostAccountID", host_account_id, ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "data", data_value ), ]), ) return response
[docs] @dev_only async def delete(self, data_id: int, host_account_id: int): """Note: this only works in the dev environment""" response = await self.call_hq( "sdk_DeleteHostAccountMetaData", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "DataID", data_id ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "HostAccountID", host_account_id, ), ]), ) return response