Skip to content

Commit d8b00e3

Browse files
committed
Refactor google drive trashed filter to use api parameter
Now use the api `trashed` parameter to filter out trashed docs instead of doing our own filtering. Test Plan: -Set up Google Drive -Create the following: -Valid file at root -Valid folder containing valid file -Trashed file formerly at root -Trashed folder containing a file -Verify that the trashed items are not displayed, but valid items are Closes CNVS-25959 Change-Id: I9054d48910f6b8cbd5ebcecf15d35bf98d6fe3d0 Reviewed-on: https://gerrit.instructure.com/68740 Tested-by: Jenkins Reviewed-by: Matthew Wheeler <mwheeler@instructure.com> QA-Review: Heath Hales <hhales@instructure.com> Product-Review: Gentry Beckmann <gbeckmann@instructure.com>
1 parent b5f593a commit d8b00e3

3 files changed

Lines changed: 22 additions & 7 deletions

File tree

gems/google_docs/lib/google_docs/drive_connection.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ def self.config
185185
def list(extensions)
186186
client_params = {
187187
api_method: drive.files.list,
188-
parameters: { maxResults: 0 }
188+
parameters: { maxResults: 0, q: 'trashed=false' }
189189
}
190190
list_data = client_execute!(client_params).data.to_hash
191191
folderize_list(list_data, extensions)
@@ -216,7 +216,7 @@ def folderize_list(documents, extensions)
216216
root = root.select { |e| extensions.include?(e.extension) }
217217
end
218218

219-
root.select { |e| !e.in_trash? }
219+
root
220220
end
221221

222222
def get_folder_name_by_id(entries, folder_id)

gems/google_docs/lib/google_docs/drive_entry.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,6 @@ def download_url
4848
get_file_data[:url]
4949
end
5050

51-
def in_trash?
52-
@entry['labels']['trashed']
53-
end
54-
5551
def to_hash
5652
{
5753
:name => display_name,

gems/google_docs/spec/google_docs/drive_connection_spec.rb

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
fake_client = Class.new do
2727
attr_reader :token
2828
attr_writer :responses
29+
attr_accessor :inputs
2930

3031
def initialize(input=nil)
3132
@input = input
@@ -62,7 +63,12 @@ def get
6263
"/api_method"
6364
end
6465

65-
def execute!(*_args)
66+
def list
67+
"/api_method"
68+
end
69+
70+
def execute!(*args)
71+
@inputs = args
6672
response = @responses[@calls]
6773
@calls += 1
6874
response
@@ -164,6 +170,19 @@ def execute(*args)
164170
connection.send(:set_api_client, client)
165171
end
166172

173+
describe "#list_with_extension_filter" do
174+
before do
175+
client.responses = [
176+
stub(status: 200, data: { "items" => [] })
177+
]
178+
end
179+
180+
it "should submit `trashed = false` parameter" do
181+
connection.list_with_extension_filter('.txt')
182+
expect(client.inputs.last[:parameters][:q]).to eql 'trashed=false'
183+
end
184+
end
185+
167186
describe "#download" do
168187
before do
169188
client.responses = [

0 commit comments

Comments
 (0)