def merge_slides()

in genai-for-marketing/backend_apis/app/utils_workspace.py [0:0]


def merge_slides(
        credentials,
        presentation_id: str, 
        spreadsheet_id: str,
        spreadsheet_template_id: str,
        slide_page_id_list: list):
    emu4m = {
        'magnitude': 4000000,
        'unit': 'EMU'
    }
    sheets_service = build('sheets', 'v4', credentials=credentials)
    slides_service = build('slides', 'v1', credentials=credentials)
    sheet_chart_id_list = get_chart_id(sheets_service,
        spreadsheet_template_id)

    today = date.today()
    requests = [
            {
                'replaceAllText': {
                    'containsText': {
                        'text': '{{date}}',
                        'matchCase': True
                    },
                    'replaceText': str(today)
                }
            }
        ]

    for chart_id,page_id in zip(sheet_chart_id_list , slide_page_id_list):
        presentation_chart_id = str(uuid.uuid4())
        requests.append({
        'createSheetsChart': {
            'objectId': presentation_chart_id,
            'spreadsheetId': spreadsheet_id,
            'chartId': chart_id,
            'linkingMode': 'LINKED',
            'elementProperties': {
                'pageObjectId': page_id,
                'size': {
                    'height': emu4m,
                    'width': emu4m
                },
                'transform': {
                    'scaleX': 1,
                    'scaleY': 1,
                    'translateX': 100000,
                    'translateY': 100000,
                    'unit': 'EMU'
                }
            }
        }
        })

    body = {
        'requests': requests
    }
    slides_service.presentations().batchUpdate(
        presentationId=presentation_id, body=body).execute(num_retries=20)