Sha256: fc4fe24a303ad976b9709e050a906d87ff06210bce0f88b63180515c7a6789e5

Contents?: true

Size: 1.3 KB

Versions: 1

Compression:

Stored size: 1.3 KB

Contents

module Videojuicer
  class Seed
    include Videojuicer::Resource
    include Videojuicer::Exceptions
   
    property :name, String
    property :provider_name, String
    property :provider_url, String
    property :google_analytics_id, String
   
    # Returns the currently-configured seed
    def self.current
      proxy = Videojuicer::OAuth::RequestProxy.new
      jobj = JSON.parse(proxy.get("/seeds/current.json").body)
      new(jobj)
    end
    
    def self.create(user, attributes)
      seed = new(attributes)
      proxy = seed.proxy_for(seed.config)

      user.errors = { }

      seed_param_key = seed.class.parameter_name
      user_param_key = user.class.parameter_name

      response = proxy.put('/seeds/create.json',
                           seed_param_key=>seed.returnable_attributes,
                           user_param_key=>user.returnable_attributes)

      result = response.body.is_a?(Hash) ? response.body : JSON.parse(response.body) rescue raise(JSON::ParserError, "Could not parse #{response}: \n\n #{response.body}")

      if !result["seed"].nil?
        seed.validate_committed_response(result["seed"])
      end

      if !result["user"].nil?
        user.validate_committed_response(result["user"])
      end

      return [ result["token"].deep_symbolize, seed, user ]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vj-sdk-0.8.2 lib/videojuicer/seed.rb