evernote_oauth 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +27 -0
- data/README.md +58 -0
- data/evernote_oauth.gemspec +32 -0
- data/lib/evernote_oauth.rb +34 -0
- data/lib/evernote_oauth/client.rb +65 -0
- data/lib/evernote_oauth/note_store.rb +23 -0
- data/lib/evernote_oauth/user_store.rb +29 -0
- data/lib/evernote_oauth/version.rb +3 -0
- data/spec/evernote_oauth/client_spec.rb +55 -0
- data/spec/evernote_oauth/note_store_spec.rb +18 -0
- data/spec/evernote_oauth/user_store_spec.rb +24 -0
- data/spec/spec_helper.rb +6 -0
- data/vendor/evernote.rb +12 -0
- data/vendor/evernote/edam/errors_constants.rb +14 -0
- data/vendor/evernote/edam/errors_types.rb +128 -0
- data/vendor/evernote/edam/limits_constants.rb +240 -0
- data/vendor/evernote/edam/limits_types.rb +13 -0
- data/vendor/evernote/edam/note_store.rb +5487 -0
- data/vendor/evernote/edam/note_store_constants.rb +14 -0
- data/vendor/evernote/edam/note_store_types.rb +1012 -0
- data/vendor/evernote/edam/types_constants.rb +20 -0
- data/vendor/evernote/edam/types_types.rb +1792 -0
- data/vendor/evernote/edam/user_store.rb +549 -0
- data/vendor/evernote/edam/user_store_constants.rb +18 -0
- data/vendor/evernote/edam/user_store_types.rb +415 -0
- metadata +120 -0
data/LICENSE
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (c) 2007-2012 by Evernote Corporation, All rights reserved.
|
3
|
+
*
|
4
|
+
* Use of the source code and binary libraries included in this package
|
5
|
+
* is permitted under the following terms:
|
6
|
+
*
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
8
|
+
* modification, are permitted provided that the following conditions
|
9
|
+
* are met:
|
10
|
+
*
|
11
|
+
* 1. Redistributions of source code must retain the above copyright
|
12
|
+
* notice, this list of conditions and the following disclaimer.
|
13
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
14
|
+
* notice, this list of conditions and the following disclaimer in the
|
15
|
+
* documentation and/or other materials provided with the distribution.
|
16
|
+
*
|
17
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
18
|
+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
19
|
+
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
20
|
+
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
21
|
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
22
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
26
|
+
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
*/
|
data/README.md
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
Evernote OAuth / Thrift API client library for Ruby
|
2
|
+
===================================================
|
3
|
+
Evernote OAuth version 0.01
|
4
|
+
Evernote API version 1.21
|
5
|
+
|
6
|
+
Install the gem
|
7
|
+
---------------
|
8
|
+
gem install evernote_oauth
|
9
|
+
|
10
|
+
Prerequisites
|
11
|
+
-------------
|
12
|
+
In order to use the code in this SDK, you need to obtain an API key from http://dev.evernote.com/documentation/cloud. You'll also find full API documentation on that page.
|
13
|
+
|
14
|
+
In order to run the sample code, you need a user account on the sandbox service where you will do your development. Sign up for an account at https://sandbox.evernote.com/Registration.action
|
15
|
+
|
16
|
+
In order to run the client client sample code, you need a developer token. Get one at https://sandbox.evernote.com/api/DeveloperToken.action
|
17
|
+
|
18
|
+
Setup
|
19
|
+
-----
|
20
|
+
Put your API keys in the config/evernote.yml
|
21
|
+
```ruby
|
22
|
+
development:
|
23
|
+
consumer_key: YOUR CONSUMER KEY
|
24
|
+
consumer_secret: YOUR CONSUMER SECRET
|
25
|
+
sandbox: [true or false]
|
26
|
+
```
|
27
|
+
Or you can just pass those information when you create an instance of the client
|
28
|
+
```ruby
|
29
|
+
client = EvernoteOAuth::Client.new(
|
30
|
+
consumer_key: YOUR CONSUMER KEY
|
31
|
+
consumer_secret: YOUR CONSUMER SECRET
|
32
|
+
sandbox: [true or false]
|
33
|
+
)
|
34
|
+
```
|
35
|
+
|
36
|
+
Usage
|
37
|
+
-----
|
38
|
+
```ruby
|
39
|
+
client = EvernoteOAuth::Client.new
|
40
|
+
request_token = client.request_token(:oauth_callback => 'YOUR CALLBACK URL')
|
41
|
+
request_token.authorize_url
|
42
|
+
=> https://sandbox.evernote.com/OAuth.action?oauth_token=OAUTH_TOKEN
|
43
|
+
```
|
44
|
+
To obtain the access token
|
45
|
+
```ruby
|
46
|
+
access_token = request_token.get_access_token(oauth_verifier: params[:oauth_verifier])
|
47
|
+
```
|
48
|
+
Now you can make other API calls
|
49
|
+
```ruby
|
50
|
+
client = EvernoteOAuth::Client.new(token: access_token.token)
|
51
|
+
note_store = client.note_store
|
52
|
+
notebooks = note_store.listNotebooks(access_token.token)
|
53
|
+
```
|
54
|
+
|
55
|
+
References
|
56
|
+
----------
|
57
|
+
- Evernote Developers: http://dev.evernote.com/
|
58
|
+
- API Document: http://dev.evernote.com/documentation/reference/
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib/', __FILE__)
|
3
|
+
$LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
|
4
|
+
|
5
|
+
require 'evernote_oauth/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = %q{evernote_oauth}
|
9
|
+
s.version = EvernoteOAuth::VERSION
|
10
|
+
|
11
|
+
s.authors = ["Kentaro Suzuki"]
|
12
|
+
s.date = %q{2012-08-14}
|
13
|
+
s.description = %q{evernote_oauth is a Ruby client for the Evernote API using OAuth and Thrift.}
|
14
|
+
s.email = %q{ksuzuki@gmail.com}
|
15
|
+
s.files = ["LICENSE", "README.md", "evernote_oauth.gemspec"] + Dir.glob('{lib,spec,vendor}/**/*')
|
16
|
+
s.has_rdoc = false
|
17
|
+
s.homepage = %q{http://github.com/rekotan/evernote_oauth}
|
18
|
+
s.rdoc_options = ["--inline-source", "--charset=UTF-8"]
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.rubyforge_project = %q{evernote_oauth}
|
21
|
+
s.rubygems_version = %q{0.0.1}
|
22
|
+
s.summary = %q{evernote_oauth is a Ruby client for the Evernote API using OAuth and Thrift.}
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
26
|
+
s.specification_version = 2
|
27
|
+
|
28
|
+
s.add_dependency 'oauth', '>= 0.4.1'
|
29
|
+
s.add_dependency 'thrift_client', '>= 0.8.1'
|
30
|
+
s.add_development_dependency 'rspec'
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'thrift_client'
|
3
|
+
require 'oauth'
|
4
|
+
require 'yaml'
|
5
|
+
|
6
|
+
vendor_path = File.expand_path(File.dirname(__FILE__) + "/../vendor")
|
7
|
+
$LOAD_PATH.unshift "#{vendor_path}/evernote/edam"
|
8
|
+
|
9
|
+
require "#{vendor_path}/evernote"
|
10
|
+
|
11
|
+
require 'evernote_oauth/client'
|
12
|
+
require 'evernote_oauth/user_store'
|
13
|
+
require 'evernote_oauth/note_store'
|
14
|
+
require 'evernote_oauth/version'
|
15
|
+
|
16
|
+
# Path Thrift 0.8.0 Gem for Ruby 1.9.3 compatibility
|
17
|
+
# See: http://discussion.evernote.com/topic/15321-evernote-ruby-thrift-client-error/
|
18
|
+
#
|
19
|
+
if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('1.9.3') &&
|
20
|
+
Gem.loaded_specs['thrift'].version == Gem::Version.new('0.8.0')
|
21
|
+
module Thrift
|
22
|
+
class HTTPClientTransport < BaseTransport
|
23
|
+
|
24
|
+
def flush
|
25
|
+
http = Net::HTTP.new @url.host, @url.port
|
26
|
+
http.use_ssl = @url.scheme == "https"
|
27
|
+
resp, data = http.post(@url.request_uri, @outbuf, @headers)
|
28
|
+
# Was: @inbuf = StringIO.new data
|
29
|
+
@inbuf = StringIO.new resp.body
|
30
|
+
@outbuf = ""
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module EvernoteOAuth
|
2
|
+
class Client
|
3
|
+
|
4
|
+
def initialize(options={})
|
5
|
+
config_file = "config/evernote.yml"
|
6
|
+
if File.exist?(config_file)
|
7
|
+
config = YAML.load(ERB.new(File.read(config_file)).result)[Rails.env]
|
8
|
+
@consumer_key = config['consumer_key']
|
9
|
+
@consumer_secret = config['consumer_secret']
|
10
|
+
@sandbox = config['sandbox'] ? true : false
|
11
|
+
end
|
12
|
+
|
13
|
+
@consumer_key ||= options[:consumer_key]
|
14
|
+
@consumer_secret ||= options[:consumer_secret]
|
15
|
+
@sandbox ||= (options[:sandbox] == nil ? true : options[:sandbox])
|
16
|
+
@token = options[:token]
|
17
|
+
@secret = options[:secret]
|
18
|
+
end
|
19
|
+
|
20
|
+
def authorize(token, secret, options={})
|
21
|
+
request_token = OAuth::RequestToken.new(consumer, token, secret)
|
22
|
+
@access_token = request_token.get_access_token(options)
|
23
|
+
@token = @access_token.token
|
24
|
+
@secret = @access_token.secret
|
25
|
+
@access_token
|
26
|
+
end
|
27
|
+
|
28
|
+
def request_token(options={})
|
29
|
+
consumer.get_request_token(options)
|
30
|
+
end
|
31
|
+
|
32
|
+
def authentication_request_token(options={})
|
33
|
+
consumer.options[:authorize_path] = '/OAuth.action'
|
34
|
+
request_token(options)
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
def consumer
|
39
|
+
@consumer ||= OAuth::Consumer.new(
|
40
|
+
@consumer_key,
|
41
|
+
@consumer_secret,
|
42
|
+
{site: endpoint,
|
43
|
+
request_token_path: "/oauth",
|
44
|
+
access_token_path: "/oauth"}
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
48
|
+
def endpoint(path=nil)
|
49
|
+
url = @sandbox ? "https://sandbox.evernote.com" : "https://www.evernote.com"
|
50
|
+
url += "/#{path}" if path
|
51
|
+
url
|
52
|
+
end
|
53
|
+
|
54
|
+
def access_token
|
55
|
+
@access_token ||= OAuth::AccessToken.new(consumer, @token, @secret)
|
56
|
+
end
|
57
|
+
|
58
|
+
def thrift_client(client_class, url, options={})
|
59
|
+
@thrift_client = ThriftClient.new(client_class, url, options.merge(
|
60
|
+
transport: Thrift::HTTPClientTransport))
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module EvernoteOAuth
|
2
|
+
|
3
|
+
class Client
|
4
|
+
def note_store(options={})
|
5
|
+
@note_store = EvernoteOAuth::NoteStore.new(
|
6
|
+
client: thrift_client(::Evernote::EDAM::NoteStore::NoteStore::Client,
|
7
|
+
user_store(options).getNoteStoreUrl(@token),
|
8
|
+
options)
|
9
|
+
)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class NoteStore
|
14
|
+
def initialize(options={})
|
15
|
+
@client = options[:client]
|
16
|
+
end
|
17
|
+
|
18
|
+
def method_missing(name, *args, &block)
|
19
|
+
@client.send(name, *args, &block)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module EvernoteOAuth
|
2
|
+
|
3
|
+
class Client
|
4
|
+
def user_store(options={})
|
5
|
+
@user_store = EvernoteOAuth::UserStore.new(
|
6
|
+
client: thrift_client(::Evernote::EDAM::UserStore::UserStore::Client,
|
7
|
+
endpoint('edam/user'), options)
|
8
|
+
)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class UserStore
|
13
|
+
def initialize(options={})
|
14
|
+
@client = options[:client]
|
15
|
+
raise 'API version is not up to date' unless version_valid?
|
16
|
+
end
|
17
|
+
|
18
|
+
def method_missing(name, *args, &block)
|
19
|
+
@client.send(name, *args, &block)
|
20
|
+
end
|
21
|
+
|
22
|
+
def version_valid?
|
23
|
+
checkVersion("EDAMTest",
|
24
|
+
::Evernote::EDAM::UserStore::EDAM_VERSION_MAJOR,
|
25
|
+
::Evernote::EDAM::UserStore::EDAM_VERSION_MINOR)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "/../spec_helper")
|
2
|
+
|
3
|
+
describe "EvernoteOAuth::Client" do
|
4
|
+
before :each do
|
5
|
+
@client = EvernoteOAuth::Client.new(
|
6
|
+
consumer_key: 'consumer_key',
|
7
|
+
consumer_secret: 'consumer_secret',
|
8
|
+
sandbox: false,
|
9
|
+
token: 'token',
|
10
|
+
secret: 'secret'
|
11
|
+
)
|
12
|
+
end
|
13
|
+
context "#initialize" do
|
14
|
+
it "assigns instance variables" do
|
15
|
+
@client.instance_variable_get(:@consumer_key).should == 'consumer_key'
|
16
|
+
@client.instance_variable_get(:@consumer_secret).should == 'consumer_secret'
|
17
|
+
@client.instance_variable_get(:@sandbox).should == false
|
18
|
+
@client.instance_variable_get(:@token).should == 'token'
|
19
|
+
@client.instance_variable_get(:@secret).should == 'secret'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
context "#authorize" do
|
23
|
+
it "assigns returns access token" do
|
24
|
+
mock_access_token = mock(OAuth::AccessToken)
|
25
|
+
mock_access_token.should_receive(:token).and_return('token')
|
26
|
+
mock_access_token.should_receive(:secret).and_return('secret')
|
27
|
+
mock_request_token = mock(OAuth::RequestToken)
|
28
|
+
mock_request_token.should_receive(:get_access_token).and_return(mock_access_token)
|
29
|
+
OAuth::RequestToken.stub(:new){mock_request_token}
|
30
|
+
|
31
|
+
@client.authorize('token', 'secret').should == mock_access_token
|
32
|
+
end
|
33
|
+
end
|
34
|
+
context "#request_token" do
|
35
|
+
it "calls OAuth::Consumer#get_request_token" do
|
36
|
+
mock_request_token = mock(OAuth::RequestToken)
|
37
|
+
mock_consumer = mock(OAuth::Consumer)
|
38
|
+
mock_consumer.should_receive(:get_request_token).and_return(mock_request_token)
|
39
|
+
@client.should_receive(:consumer).and_return(mock_consumer)
|
40
|
+
@client.request_token.should == mock_request_token
|
41
|
+
end
|
42
|
+
end
|
43
|
+
context "#authentication_request_token" do
|
44
|
+
it "calls request_token with 'authorize_path' options" do
|
45
|
+
option = {}
|
46
|
+
mock_request_token = mock(OAuth::RequestToken)
|
47
|
+
mock_consumer = mock(OAuth::Consumer)
|
48
|
+
mock_consumer.should_receive(:options).and_return(option)
|
49
|
+
@client.should_receive(:consumer).and_return(mock_consumer)
|
50
|
+
@client.should_receive(:request_token).and_return(mock_request_token)
|
51
|
+
@client.authentication_request_token.should == mock_request_token
|
52
|
+
option[:authorize_path].should == '/OAuth.action'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "/../spec_helper")
|
2
|
+
|
3
|
+
describe "EvernoteOAuth::NoteStore" do
|
4
|
+
context "#initialize" do
|
5
|
+
it "assigns instance variables and checks version" do
|
6
|
+
note_store = EvernoteOAuth::NoteStore.new(client: 'client')
|
7
|
+
note_store.instance_variable_get(:@client).should == 'client'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
context "#method_missing" do
|
11
|
+
it "dispatches method" do
|
12
|
+
mock_client = mock(Object)
|
13
|
+
mock_client.should_receive(:send).with(:call_method, 'args')
|
14
|
+
note_store = EvernoteOAuth::NoteStore.new(client: mock_client)
|
15
|
+
note_store.call_method('args')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "/../spec_helper")
|
2
|
+
|
3
|
+
describe "EvernoteOAuth::UserStore" do
|
4
|
+
context "#initialize" do
|
5
|
+
it "assigns instance variables and checks version" do
|
6
|
+
EvernoteOAuth::UserStore.any_instance.stub(:version_valid?){true}
|
7
|
+
user_store = EvernoteOAuth::UserStore.new(client: 'client')
|
8
|
+
user_store.instance_variable_get(:@client).should == 'client'
|
9
|
+
end
|
10
|
+
it "raises error when version is not valid" do
|
11
|
+
EvernoteOAuth::UserStore.any_instance.stub(:version_valid?){false}
|
12
|
+
lambda{EvernoteOAuth::UserStore.new(client: 'client')}.should raise_error
|
13
|
+
end
|
14
|
+
end
|
15
|
+
context "#method_missing" do
|
16
|
+
it "dispatches method" do
|
17
|
+
mock_client = mock(Object)
|
18
|
+
mock_client.should_receive(:send).with(:call_method, 'args')
|
19
|
+
EvernoteOAuth::UserStore.any_instance.stub(:version_valid?){true}
|
20
|
+
user_store = EvernoteOAuth::UserStore.new(client: mock_client)
|
21
|
+
user_store.call_method('args')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/vendor/evernote.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'set'
|
2
|
+
require 'errors_types'
|
3
|
+
require 'limits_constants'
|
4
|
+
require 'limits_types'
|
5
|
+
require 'note_store'
|
6
|
+
require 'note_store_constants'
|
7
|
+
require 'note_store_types'
|
8
|
+
require 'types_constants'
|
9
|
+
require 'types_types'
|
10
|
+
require 'user_store'
|
11
|
+
require 'user_store_constants'
|
12
|
+
require 'user_store_types'
|
@@ -0,0 +1,128 @@
|
|
1
|
+
#
|
2
|
+
# Autogenerated by Thrift Compiler (0.8.0)
|
3
|
+
#
|
4
|
+
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
5
|
+
#
|
6
|
+
|
7
|
+
|
8
|
+
module Evernote
|
9
|
+
module EDAM
|
10
|
+
module Error
|
11
|
+
module EDAMErrorCode
|
12
|
+
UNKNOWN = 1
|
13
|
+
BAD_DATA_FORMAT = 2
|
14
|
+
PERMISSION_DENIED = 3
|
15
|
+
INTERNAL_ERROR = 4
|
16
|
+
DATA_REQUIRED = 5
|
17
|
+
LIMIT_REACHED = 6
|
18
|
+
QUOTA_REACHED = 7
|
19
|
+
INVALID_AUTH = 8
|
20
|
+
AUTH_EXPIRED = 9
|
21
|
+
DATA_CONFLICT = 10
|
22
|
+
ENML_VALIDATION = 11
|
23
|
+
SHARD_UNAVAILABLE = 12
|
24
|
+
LEN_TOO_SHORT = 13
|
25
|
+
LEN_TOO_LONG = 14
|
26
|
+
TOO_FEW = 15
|
27
|
+
TOO_MANY = 16
|
28
|
+
UNSUPPORTED_OPERATION = 17
|
29
|
+
VALUE_MAP = {1 => "UNKNOWN", 2 => "BAD_DATA_FORMAT", 3 => "PERMISSION_DENIED", 4 => "INTERNAL_ERROR", 5 => "DATA_REQUIRED", 6 => "LIMIT_REACHED", 7 => "QUOTA_REACHED", 8 => "INVALID_AUTH", 9 => "AUTH_EXPIRED", 10 => "DATA_CONFLICT", 11 => "ENML_VALIDATION", 12 => "SHARD_UNAVAILABLE", 13 => "LEN_TOO_SHORT", 14 => "LEN_TOO_LONG", 15 => "TOO_FEW", 16 => "TOO_MANY", 17 => "UNSUPPORTED_OPERATION"}
|
30
|
+
VALID_VALUES = Set.new([UNKNOWN, BAD_DATA_FORMAT, PERMISSION_DENIED, INTERNAL_ERROR, DATA_REQUIRED, LIMIT_REACHED, QUOTA_REACHED, INVALID_AUTH, AUTH_EXPIRED, DATA_CONFLICT, ENML_VALIDATION, SHARD_UNAVAILABLE, LEN_TOO_SHORT, LEN_TOO_LONG, TOO_FEW, TOO_MANY, UNSUPPORTED_OPERATION]).freeze
|
31
|
+
end
|
32
|
+
|
33
|
+
# This exception is thrown by EDAM procedures when a call fails as a result of
|
34
|
+
# a problem that a user may be able to resolve. For example, if the user
|
35
|
+
# attempts to add a note to their account which would exceed their storage
|
36
|
+
# quota, this type of exception may be thrown to indicate the source of the
|
37
|
+
# error so that they can choose an alternate action.
|
38
|
+
#
|
39
|
+
# This exception would not be used for internal system errors that do not
|
40
|
+
# reflect user actions, but rather reflect a problem within the service that
|
41
|
+
# the user cannot resolve.
|
42
|
+
#
|
43
|
+
# errorCode: The numeric code indicating the type of error that occurred.
|
44
|
+
# must be one of the values of EDAMErrorCode.
|
45
|
+
#
|
46
|
+
# parameter: If the error applied to a particular input parameter, this will
|
47
|
+
# indicate which parameter.
|
48
|
+
class EDAMUserException < ::Thrift::Exception
|
49
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
50
|
+
ERRORCODE = 1
|
51
|
+
PARAMETER = 2
|
52
|
+
|
53
|
+
FIELDS = {
|
54
|
+
ERRORCODE => {:type => ::Thrift::Types::I32, :name => 'errorCode', :enum_class => Evernote::EDAM::Error::EDAMErrorCode},
|
55
|
+
PARAMETER => {:type => ::Thrift::Types::STRING, :name => 'parameter', :optional => true}
|
56
|
+
}
|
57
|
+
|
58
|
+
def struct_fields; FIELDS; end
|
59
|
+
|
60
|
+
def validate
|
61
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field errorCode is unset!') unless @errorCode
|
62
|
+
unless @errorCode.nil? || Evernote::EDAM::Error::EDAMErrorCode::VALID_VALUES.include?(@errorCode)
|
63
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field errorCode!')
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
::Thrift::Struct.generate_accessors self
|
68
|
+
end
|
69
|
+
|
70
|
+
# This exception is thrown by EDAM procedures when a call fails as a result of
|
71
|
+
# an a problem in the service that could not be changed through user action.
|
72
|
+
#
|
73
|
+
# errorCode: The numeric code indicating the type of error that occurred.
|
74
|
+
# must be one of the values of EDAMErrorCode.
|
75
|
+
#
|
76
|
+
# message: This may contain additional information about the error
|
77
|
+
class EDAMSystemException < ::Thrift::Exception
|
78
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
79
|
+
ERRORCODE = 1
|
80
|
+
MESSAGE = 2
|
81
|
+
|
82
|
+
FIELDS = {
|
83
|
+
ERRORCODE => {:type => ::Thrift::Types::I32, :name => 'errorCode', :enum_class => Evernote::EDAM::Error::EDAMErrorCode},
|
84
|
+
MESSAGE => {:type => ::Thrift::Types::STRING, :name => 'message', :optional => true}
|
85
|
+
}
|
86
|
+
|
87
|
+
def struct_fields; FIELDS; end
|
88
|
+
|
89
|
+
def validate
|
90
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field errorCode is unset!') unless @errorCode
|
91
|
+
unless @errorCode.nil? || Evernote::EDAM::Error::EDAMErrorCode::VALID_VALUES.include?(@errorCode)
|
92
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field errorCode!')
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
::Thrift::Struct.generate_accessors self
|
97
|
+
end
|
98
|
+
|
99
|
+
# This exception is thrown by EDAM procedures when a caller asks to perform
|
100
|
+
# an operation that does not exist. This may be thrown based on an invalid
|
101
|
+
# primary identifier (e.g. a bad GUID), or when the caller refers to an object
|
102
|
+
# by another unique identifier (e.g. a User's email address).
|
103
|
+
#
|
104
|
+
# identifier: the object identifier that was not found on the server.
|
105
|
+
#
|
106
|
+
# key: the value passed from the client in the identifier, which was not
|
107
|
+
# found. E.g. the GUID of an object that was not found.
|
108
|
+
class EDAMNotFoundException < ::Thrift::Exception
|
109
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
110
|
+
IDENTIFIER = 1
|
111
|
+
KEY = 2
|
112
|
+
|
113
|
+
FIELDS = {
|
114
|
+
IDENTIFIER => {:type => ::Thrift::Types::STRING, :name => 'identifier', :optional => true},
|
115
|
+
KEY => {:type => ::Thrift::Types::STRING, :name => 'key', :optional => true}
|
116
|
+
}
|
117
|
+
|
118
|
+
def struct_fields; FIELDS; end
|
119
|
+
|
120
|
+
def validate
|
121
|
+
end
|
122
|
+
|
123
|
+
::Thrift::Struct.generate_accessors self
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|