from square.client import Client

from configs.firebase import SERVER_TIMESTAMP
from functions.Response import API_Error
from functions.Shops import saveShop


def getSquareMerchants(data):
    currentUser = data.get('currentUser')
    uid = currentUser.get('uid')
    enterpriseId = currentUser.get('enterpriseId')
    access_token = data.get("access_token")
    client = Client(access_token=access_token)
    result = client.merchants.retrieve_merchant(
        merchant_id = "me"
        )
    if result.is_success():
        merchant = result.body.get('merchant')
        shop = saveShop(
            uid=uid,
            name=merchant.get('business_name'),
            appId="4"+enterpriseId,
            enterpriseId=enterpriseId,
            createdAt=SERVER_TIMESTAMP,
            platformId="4",
            platformName="Square",
            platformShopId=merchant.get('id'),
            updatedAt=SERVER_TIMESTAMP,
            url=merchant.get('business_url'),
            accessToken = access_token,
            refreshToken= data.get('refresh_token'),
        )
        return shop
    elif result.is_error():
        raise API_Error(result.errors, 500)