def get_composite_template(server_template_ids, signers, files)
      composite_array = []
      server_template_ids.each_with_index do |template_id, idx|
        server_template_hash = {
            sequence: (idx+1).to_s,
            templateId: template_id,
            templateRoles: get_template_roles(signers),
        }
        templates_hash = {
          serverTemplates: [server_template_hash],
          inlineTemplates: get_inline_signers(signers, (idx+1).to_s)
        }
        if files
          document_hash = {
              documentId: (idx+1).to_s,
              name: "#{files[idx][:name] if files[idx]}"
          }
          templates_hash[:document] = document_hash
        end
        composite_array << templates_hash
      end
      composite_array
    end
def get_composite_template(server_template_ids, signers, files)
      composite_array = []
      server_template_ids.each_with_index do |template_id, idx|
        server_template_hash = {
            sequence: (idx+1).to_s,
            templateId: template_id,
            templateRoles: get_template_roles(signers),
        }
        templates_hash = {
          serverTemplates: [server_template_hash],
          inlineTemplates: get_inline_signers(signers, (idx+1).to_s)
        }
        if files
          document_hash = {
              documentId: (idx+1).to_s,
              name: "#{files[idx][:name] if files[idx]}"
          }
          templates_hash[:document] = document_hash
        end
        composite_array << templates_hash
      end
      composite_array
    end
Internal: takes in an array of server template ids and an array of the signers
 and sets up the composite template

 Takes an optional array of files, which consist of documents to be used instead of templates

 Returns an array of server template hashes