Source code for q2_sdk.hq.db.third_party_data

from argparse import _SubParsersAction
from functools import partial

from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)

from .db_object import DbObject


[docs] class ThirdPartyData(DbObject):
[docs] def add_arguments(self, parser: _SubParsersAction): subparser = parser.add_parser("get_third_party_data") subparser.set_defaults(parser="get_third_party_data") subparser.set_defaults(func=partial(self.get, serialize_for_cli=True)) subparser.add_argument("user_id", help="Q2_User.UserID") subparser.add_argument("vendor_name", help="Q2_Vendors.VendorName") subparser = parser.add_parser("add_third_party_data") subparser.set_defaults(parser="add_third_party_data") subparser.set_defaults(func=partial(self.create)) subparser.add_argument("user_id", help="Q2_User.UserID") subparser.add_argument("vendor_name", help="Q2_Vendors.VendorName") subparser.add_argument("data_name", help="Q2_ThirdPartyDataElements.Name") subparser.add_argument("data_value", help="Q2_ThirdPartyData.DataValue") subparser = parser.add_parser("add_or_update_third_party_data") subparser.set_defaults(parser="add_or_update_third_party_data") subparser.set_defaults(func=partial(self.add_or_update)) subparser.add_argument("user_id", help="Q2_User.UserID") subparser.add_argument("vendor_name", help="Q2_Vendors.VendorName") subparser.add_argument("data_name", help="Q2_ThirdPartyDataElements.Name") subparser.add_argument("data_value", help="Q2_ThirdPartyData.DataValue")
[docs] async def get(self, user_id: int, vendor_name: str, serialize_for_cli=False): response = await self.call_hq( "sdk_GetThirdPartyData", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "userID", user_id ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "vendorName", vendor_name, ), ]), ) if serialize_for_cli: response = self.serialize_for_cli( response, ["VendorID", "UserID", "DataID", "DataValue", "VendorName"] ) return response
[docs] async def create(self, user_id, vendor_name, data_name, data_value): return await self.call_hq( "sdk_AddThirdPartyData", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "userID", user_id ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "vendorName", vendor_name, ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "dataName", data_name ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "dataValue", data_value ), ]), )
[docs] async def add_or_update(self, user_id, vendor_name, data_name, data_value): """ Upserts third-party data, factoring in Q2_ThirdPartyDataShared and Q2_VendorGroupMembers. """ return await self.call_hq( "Q2_AddUpdateThirdPartyData", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "UserID", user_id ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "VendorName", vendor_name, ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "DataName", data_name ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "DataValue", data_value ), ]), )
[docs] async def update(self, user_id, vendor_name, data_name, data_value): return await self.call_hq( "sdk_UpdateThirdPartyData", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "userID", user_id ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "vendorName", vendor_name, ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "dataName", data_name ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "dataValue", data_value ), ]), )
[docs] async def delete(self, user_id: int, vendor_name: str, data_name: str): return await self.call_hq( "sdk_RemoveThirdPartyData", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "userID", user_id ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "vendorName", vendor_name, ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "dataName", data_name ), ]), )
[docs] async def delete_all_for_vendor(self, vendor_name: str): return await self.call_hq( "sdk_RemoveAllVendorThirdPartyData", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "vendorName", vendor_name, ), ]), )