Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[spaceship] allow to specify fetched fields #21528

Merged
merged 1 commit into from Oct 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 2 additions & 1 deletion spaceship/lib/spaceship/connect_api/api_client.rb
Expand Up @@ -87,13 +87,14 @@ def web_session?
return @token.nil?
end

def build_params(filter: nil, includes: nil, limit: nil, sort: nil, cursor: nil)
def build_params(filter: nil, includes: nil, fields: nil, limit: nil, sort: nil, cursor: nil)
params = {}

filter = filter.delete_if { |k, v| v.nil? } if filter

params[:filter] = filter if filter && !filter.empty?
params[:include] = includes if includes
params[:fields] = fields if fields
params[:limit] = limit if limit
params[:sort] = sort if sort
params[:cursor] = cursor if cursor
Expand Down
8 changes: 4 additions & 4 deletions spaceship/lib/spaceship/connect_api/models/bundle_id.rb
Expand Up @@ -39,15 +39,15 @@ def supports_catalyst?
# API
#

def self.all(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
def self.all(client: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
client ||= Spaceship::ConnectAPI
resps = client.get_bundle_ids(filter: filter, includes: includes).all_pages
resps = client.get_bundle_ids(filter: filter, includes: includes, fields: fields, limit: nil, sort: nil).all_pages
return resps.flat_map(&:to_models)
end

def self.find(identifier, includes: nil, client: nil)
def self.find(identifier, includes: nil, fields: nil, client: nil)
client ||= Spaceship::ConnectAPI
return all(client: client, filter: { identifier: identifier }, includes: includes).find do |app|
return all(client: client, filter: { identifier: identifier }, includes: includes, fields: fields).find do |app|
app.identifier == identifier
end
end
Expand Down
4 changes: 2 additions & 2 deletions spaceship/lib/spaceship/connect_api/models/certificate.rb
Expand Up @@ -79,9 +79,9 @@ def self.create_certificate_signing_request
# API
#

def self.all(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
def self.all(client: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
client ||= Spaceship::ConnectAPI
resps = client.get_certificates(filter: filter, includes: includes).all_pages
resps = client.get_certificates(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort).all_pages
return resps.flat_map(&:to_models)
end

Expand Down
4 changes: 2 additions & 2 deletions spaceship/lib/spaceship/connect_api/models/device.rb
Expand Up @@ -51,9 +51,9 @@ def enabled?
# API
#

def self.all(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
def self.all(client: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
client ||= Spaceship::ConnectAPI
resps = client.get_devices(filter: filter, includes: includes).all_pages
resps = client.get_devices(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort).all_pages
return resps.flat_map(&:to_models)
end

Expand Down
4 changes: 2 additions & 2 deletions spaceship/lib/spaceship/connect_api/models/profile.rb
Expand Up @@ -69,9 +69,9 @@ def valid?
# API
#

def self.all(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
def self.all(client: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
client ||= Spaceship::ConnectAPI
resps = client.get_profiles(filter: filter, includes: includes).all_pages
resps = client.get_profiles(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort).all_pages
return resps.flat_map(&:to_models)
end

Expand Down
22 changes: 14 additions & 8 deletions spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb
Expand Up @@ -17,8 +17,8 @@ def provisioning_request_client
# bundleIds
#

def get_bundle_ids(filter: {}, includes: nil, limit: nil, sort: nil)
params = provisioning_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
def get_bundle_ids(filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
params = provisioning_request_client.build_params(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort)
provisioning_request_client.get("bundleIds", params)
end

Expand Down Expand Up @@ -129,8 +129,8 @@ def delete_bundle_id_capability(bundle_id_capability_id:)
# certificates
#

def get_certificates(profile_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
params = provisioning_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
def get_certificates(profile_id: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
params = provisioning_request_client.build_params(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort)
if profile_id.nil?
provisioning_request_client.get("certificates", params)
else
Expand Down Expand Up @@ -164,8 +164,8 @@ def delete_certificate(certificate_id: nil)
# devices
#

def get_devices(profile_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
params = provisioning_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
def get_devices(profile_id: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
params = provisioning_request_client.build_params(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort)
if profile_id.nil?
provisioning_request_client.get("devices", params)
else
Expand Down Expand Up @@ -213,8 +213,8 @@ def patch_device(id: nil, status: nil, new_name: nil)
# profiles
#

def get_profiles(filter: {}, includes: nil, limit: nil, sort: nil)
params = provisioning_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
def get_profiles(filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
params = provisioning_request_client.build_params(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort)
provisioning_request_client.get("profiles", params)
end

Expand Down Expand Up @@ -253,6 +253,12 @@ def post_profiles(bundle_id_id: nil, certificates: nil, devices: nil, attributes
provisioning_request_client.post("profiles", body)
end

def get_profile_bundle_id(profile_id: nil)
raise "Profile id is nil" if profile_id.nil?

provisioning_request_client.get("profiles/#{profile_id}/bundleId")
end

def delete_profile(profile_id: nil)
raise "Profile id is nil" if profile_id.nil?

Expand Down
13 changes: 11 additions & 2 deletions spaceship/spec/connect_api/api_client_spec.rb
Expand Up @@ -13,6 +13,7 @@
let(:one_filter) { { build: "123" } }
let(:two_filters) { { build: "123", app: "321" } }
let(:includes) { "model.attribute" }
let(:fields) { { a: 'aField', b: 'bField1,bField2' } }
let(:limit) { "30" }
let(:sort) { "asc" }

Expand Down Expand Up @@ -47,6 +48,13 @@
})
end

it 'builds params with fields' do
params = client.build_params(fields: fields)
expect(params).to eq({
fields: fields
})
end

it 'builds params with limit' do
params = client.build_params(limit: limit)
expect(params).to eq({
Expand All @@ -61,11 +69,12 @@
})
end

it 'builds params with one filter, includes, limit, and sort' do
params = client.build_params(filter: one_filter, includes: includes, limit: limit, sort: sort)
it 'builds params with one filter, includes, fields, limit, and sort' do
params = client.build_params(filter: one_filter, includes: includes, fields: fields, limit: limit, sort: sort)
expect(params).to eq({
filter: one_filter,
include: includes,
fields: fields,
limit: limit,
sort: sort
})
Expand Down