lib/evertils/common/entity/notes.rb in evertils-common-0.2.8.2 vs lib/evertils/common/entity/notes.rb in evertils-common-0.2.9
- old
+ new
@@ -25,9 +25,85 @@
response = @evernote.call(:findNotesMetadata, filter, nil, 1, spec)
response.notes
end
+ def find_by_tag(tag_name)
+ filter = ::Evernote::EDAM::NoteStore::NoteFilter.new
+ filter.words = "tag:#{tag_name}"
+
+ spec = ::Evernote::EDAM::NoteStore::NotesMetadataResultSpec.new
+ spec.includeTitle = true
+
+ response = @evernote.call(:findNotesMetadata, filter, nil, 300, spec)
+ response.notes
+ end
+
+ #
+ # @since 0.2.9
+ def find_by_date_range(start, finish = DateTime.now, period = :created)
+ filter = ::Evernote::EDAM::NoteStore::NoteFilter.new
+ filter.words = "#{period}:year-#{year_diff(start.year)}"
+ filter.order = 1
+
+ spec = ::Evernote::EDAM::NoteStore::NotesMetadataResultSpec.new
+ spec.includeTitle = true
+ spec.includeUpdated = true
+ spec.includeCreated = true
+
+ pool = @evernote.call(:findNotesMetadata, filter, 0, 300, spec)
+ notes_by_date = []
+
+ pool.notes.each do |note|
+ note_datetime = note_date(note, period)
+
+ notes_by_date << note if note_datetime.strftime('%m-%d-%Y') < finish.strftime('%m-%d-%Y') && note_datetime.strftime('%m-%d-%Y') > start.strftime('%m-%d-%Y')
+ end
+
+ notes_by_date
+ end
+
+ #
+ # @since 0.2.9
+ def find_by_date(date, period = :created)
+ filter = ::Evernote::EDAM::NoteStore::NoteFilter.new
+ filter.words = "#{period}:year-#{year_diff(date.year)}"
+ filter.order = 1
+
+ spec = ::Evernote::EDAM::NoteStore::NotesMetadataResultSpec.new
+ spec.includeTitle = true
+ spec.includeUpdated = true
+ spec.includeCreated = true
+
+ pool = @evernote.call(:findNotesMetadata, filter, 0, 300, spec)
+ notes_by_date = []
+
+ pool.notes.each do |note|
+ note_datetime = note_date(note, period)
+
+ notes_by_date << note if note_datetime.strftime('%m-%d-%Y') == date.strftime('%m-%d-%Y')
+ end
+
+ notes_by_date
+ end
+
+ private
+
+ #
+ # @since 0.2.9
+ def year_diff(start_year)
+ curr_year = DateTime.now.year
+ diff = curr_year - start_year
+
+ return 1 if diff == 0 || start_year > curr_year
+
+ diff
+ end
+
+ def note_date(note, period)
+ DateTime.strptime(note.send(period).to_s[0...-3], '%s')
+ end
+
end
end
end
end
\ No newline at end of file