Sha256: 99bc5f50e665f83048ca736e684f04434642983801d6421c6d2130206922ec54

Contents?: true

Size: 1.96 KB

Versions: 31

Compression:

Stored size: 1.96 KB

Contents

require_relative '../model'
require_relative '../file_uploader'
require 'digest/md5'

module Spaceship
  class ConnectAPI
    class AppStoreReviewAttachment
      include Spaceship::ConnectAPI::Model

      attr_accessor :file_name
      attr_accessor :source_file_checksum
      attr_accessor :upload_operations
      attr_accessor :asset_delivery_state
      attr_accessor :uploaded

      attr_mapping({
        "fileName" => "file_name",
        "sourceFileChecksum" => "source_file_checksum",
        "uploadOperations" => "upload_operations",
        "assetDeliveryState" => "asset_delivery_state",
        "uploaded" => "uploaded"
      })

      def self.type
        return "appStoreReviewAttachments"
      end

      #
      # API
      #

      def self.create(app_store_review_detail_id: nil, path: nil)
        require 'faraday'

        filename = File.basename(path)
        filesize = File.size(path)
        bytes = File.binread(path)

        post_attributes = {
          fileSize: filesize,
          fileName: filename
        }

        # Create placeholder
        attachment = Spaceship::ConnectAPI.post_app_store_review_attachment(
          app_store_review_detail_id: app_store_review_detail_id,
          attributes: post_attributes
        ).to_models.first

        # Upload the file
        upload_operations = attachment.upload_operations
        Spaceship::ConnectAPI::FileUploader.upload(upload_operations, bytes)

        # Update file uploading complete
        patch_attributes = {
          uploaded: true,
          sourceFileChecksum: Digest::MD5.hexdigest(bytes)
        }

        Spaceship::ConnectAPI.patch_app_store_review_attachment(
          app_store_review_attachment_id: attachment.id,
          attributes: patch_attributes
        ).to_models.first
      end

      def delete!(filter: {}, includes: nil, limit: nil, sort: nil)
        Spaceship::ConnectAPI.delete_app_store_review_attachment(app_store_review_attachment_id: id)
      end
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
fastlane-2.167.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.166.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.165.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.164.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.163.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.162.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.161.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.160.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.159.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.158.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.157.4 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.157.3 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.157.2 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.157.1 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.157.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.156.1 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.156.0 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.155.3 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.155.2 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb
fastlane-2.155.1 spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb