Apollo Upload Issue using Combine

Hi everyone.

I am trying to use Apollo Upload functionality but it still doesnt work and i am getting errors - “string is not an Upload”

This is a function in our NetworkService.swift call

    func addCertificatesToCompany(companyId: String, files: [GraphQLFile]) -> AnyPublisher<[AddCertificatesToCompanyMutation.Data.AddCertificatesToCompany]?, Error> {
        let uploadArray: [Upload?] = files.map { $0.asGraphQLUpload() }
        let mutation = AddCertificatesToCompanyMutation(companyId: companyId, files: .some(uploadArray))
        
        return Future<[AddCertificatesToCompanyMutation.Data.AddCertificatesToCompany]?, Error> { [unowned self] promise in
            apolloClient.upload(operation: mutation, files: files) { result in
                switch result {
                case .success(let operationResult):
                    if let data = operationResult.data?.addCertificatesToCompany {
                        promise(.success(data))
                    } else if let errors = operationResult.errors {
                        promise(.failure(NetworkServiceError.graphqlErrors(errors)))
                    } else {
                        promise(.failure(NetworkServiceError.genericError))
                    }
                case .failure(let error):
                    promise(.failure(error))
                }
            }
        }
        .eraseToAnyPublisher()
    }

ProjectManager.swift

    func addCertificatesToCompany(companyId: String, files: [GraphQLFile]) -> AnyPublisher<[AddCertificatesToCompanyMutation.Data.AddCertificatesToCompany]?, Error> {
        return networkService.addCertificatesToCompany(companyId: companyId, files: files)
    }

This is our ViewModel call to append images.

    private func addCertificateToCompany(companyID: String) {
        guard let photoIDCertificateModel = self.photoIDCertificateModel, let proofDocumentCertificateModel = self.proofDocumentCertificateModel else {
            return
        }

        let files: [GraphQLFile] = [
            GraphQLFile(fieldName: "photoIDCertificate", originalName: photoIDCertificateModel.fileNameWithExt, mimeType: photoIDCertificateModel.mimeType, data: photoIDCertificateModel.data ?? Data()),
            GraphQLFile(fieldName: "proofDocumentCertificate", originalName: proofDocumentCertificateModel.fileNameWithExt, mimeType: proofDocumentCertificateModel.mimeType, data: proofDocumentCertificateModel.data ?? Data())
        ]

        ProjectManager.shared.addCertificatesToCompany(companyId: companyID, files: files)
            .sink { result in
                switch result {
                case .finished:
                    break
                case .failure(let error):
                    print("Error adding certificates to company: \(error)")
                }
            } receiveValue: { data in
                if let data = data {
                    print(data)
                }
            }
            .store(in: &cancellables)
    }

Extension for GraphQLFile

extension GraphQLFile {
    func asGraphQLUpload() -> Upload? {
        return self.data?.base64EncodedString()
    }
}

Upload.swift

// @generated
// This file was automatically generated and can be edited to
// implement advanced custom scalar functionality.
//
// Any changes to this file will not be overwritten by future
// code generation execution.

import ApolloAPI

public typealias Upload = String

type or paste code here