Skip to content

Commit

Permalink
[spaceship] Move endpoint version from hostname to path (#21900)
Browse files Browse the repository at this point in the history
* Move endpoint version v1 from hostname to path to define it per request - the same way as in open api specs

* Fix client tests

* Fix middleware tests and change services order in array to first match longer url with services-account

* Remove a comma after running rubocop
  • Loading branch information
lucgrabowski committed May 3, 2024
1 parent df12128 commit 3c3a937
Show file tree
Hide file tree
Showing 15 changed files with 250 additions and 232 deletions.
2 changes: 1 addition & 1 deletion spaceship/lib/spaceship/connect_api/api_client.rb
Expand Up @@ -69,7 +69,7 @@ def initialize(cookie: nil, current_team_id: nil, token: nil, csrf_tokens: nil,
# Forwarding to class level if using web session.
def hostname
if @token
return "https://api.appstoreconnect.apple.com/v1/"
return "https://api.appstoreconnect.apple.com/"
end
return self.class.hostname
end
Expand Down
2 changes: 1 addition & 1 deletion spaceship/lib/spaceship/connect_api/provisioning/client.rb
Expand Up @@ -16,7 +16,7 @@ def initialize(cookie: nil, current_team_id: nil, token: nil, another_client: ni
end

def self.hostname
'https://developer.apple.com/services-account/v1/'
'https://developer.apple.com/services-account/'
end

#
Expand Down
46 changes: 25 additions & 21 deletions spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb
Expand Up @@ -4,6 +4,10 @@ module Spaceship
class ConnectAPI
module Provisioning
module API
module Version
V1 = "v1"
end

def provisioning_request_client=(provisioning_request_client)
@provisioning_request_client = provisioning_request_client
end
Expand All @@ -19,12 +23,12 @@ def provisioning_request_client

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)
provisioning_request_client.get("#{Version::V1}/bundleIds", params)
end

def get_bundle_id(bundle_id_id: {}, includes: nil)
params = provisioning_request_client.build_params(filter: nil, includes: includes, limit: nil, sort: nil)
provisioning_request_client.get("bundleIds/#{bundle_id_id}", params)
provisioning_request_client.get("#{Version::V1}/bundleIds/#{bundle_id_id}", params)
end

def post_bundle_id(name:, platform:, identifier:, seed_id:)
Expand All @@ -42,7 +46,7 @@ def post_bundle_id(name:, platform:, identifier:, seed_id:)
}
}

provisioning_request_client.post("bundleIds", body)
provisioning_request_client.post("#{Version::V1}/bundleIds", body)
end

#
Expand All @@ -51,12 +55,12 @@ def post_bundle_id(name:, platform:, identifier:, seed_id:)

def get_bundle_id_capabilities(bundle_id_id:, includes: nil, limit: nil, sort: nil)
params = provisioning_request_client.build_params(filter: nil, includes: includes, limit: limit, sort: sort)
provisioning_request_client.get("bundleIds/#{bundle_id_id}/bundleIdCapabilities", params)
provisioning_request_client.get("#{Version::V1}/bundleIds/#{bundle_id_id}/bundleIdCapabilities", params)
end

def get_available_bundle_id_capabilities(bundle_id_id:)
params = provisioning_request_client.build_params(filter: { bundleId: bundle_id_id })
provisioning_request_client.get("capabilities", params)
provisioning_request_client.get("#{Version::V1}/capabilities", params)
end

def post_bundle_id_capability(bundle_id_id:, capability_type:, settings: [])
Expand All @@ -83,7 +87,7 @@ def post_bundle_id_capability(bundle_id_id:, capability_type:, settings: [])
}
}
}
provisioning_request_client.post("bundleIdCapabilities", body)
provisioning_request_client.post("#{Version::V1}/bundleIdCapabilities", body)
end

def patch_bundle_id_capability(bundle_id_id:, seed_id:, enabled: false, capability_type:, settings: [])
Expand Down Expand Up @@ -118,11 +122,11 @@ def patch_bundle_id_capability(bundle_id_id:, seed_id:, enabled: false, capabili
}
}

provisioning_request_client.patch("bundleIds/#{bundle_id_id}", body)
provisioning_request_client.patch("#{Version::V1}/bundleIds/#{bundle_id_id}", body)
end

def delete_bundle_id_capability(bundle_id_capability_id:)
provisioning_request_client.delete("bundleIdCapabilities/#{bundle_id_capability_id}")
provisioning_request_client.delete("#{Version::V1}/bundleIdCapabilities/#{bundle_id_capability_id}")
end

#
Expand All @@ -132,15 +136,15 @@ def delete_bundle_id_capability(bundle_id_capability_id:)
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)
provisioning_request_client.get("#{Version::V1}/certificates", params)
else
provisioning_request_client.get("profiles/#{profile_id}/certificates", params)
provisioning_request_client.get("#{Version::V1}/profiles/#{profile_id}/certificates", params)
end
end

def get_certificate(certificate_id: nil, includes: nil)
params = provisioning_request_client.build_params(filter: nil, includes: includes, limit: nil, sort: nil)
provisioning_request_client.get("certificates/#{certificate_id}", params)
provisioning_request_client.get("#{Version::V1}/certificates/#{certificate_id}", params)
end

def post_certificate(attributes: {})
Expand All @@ -151,13 +155,13 @@ def post_certificate(attributes: {})
}
}

provisioning_request_client.post("certificates", body)
provisioning_request_client.post("#{Version::V1}/certificates", body)
end

def delete_certificate(certificate_id: nil)
raise "Certificate id is nil" if certificate_id.nil?

provisioning_request_client.delete("certificates/#{certificate_id}")
provisioning_request_client.delete("#{Version::V1}/certificates/#{certificate_id}")
end

#
Expand All @@ -167,9 +171,9 @@ def delete_certificate(certificate_id: nil)
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)
provisioning_request_client.get("#{Version::V1}/devices", params)
else
provisioning_request_client.get("profiles/#{profile_id}/devices", params)
provisioning_request_client.get("#{Version::V1}/profiles/#{profile_id}/devices", params)
end
end

Expand All @@ -187,7 +191,7 @@ def post_device(name: nil, platform: nil, udid: nil)
}
}

provisioning_request_client.post("devices", body)
provisioning_request_client.post("#{Version::V1}/devices", body)
end

def patch_device(id: nil, status: nil, new_name: nil)
Expand All @@ -206,7 +210,7 @@ def patch_device(id: nil, status: nil, new_name: nil)
}
}

provisioning_request_client.patch("devices/#{id}", body)
provisioning_request_client.patch("#{Version::V1}/devices/#{id}", body)
end

#
Expand All @@ -215,7 +219,7 @@ def patch_device(id: nil, status: nil, new_name: nil)

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)
provisioning_request_client.get("#{Version::V1}/profiles", params)
end

def post_profiles(bundle_id_id: nil, certificates: nil, devices: nil, attributes: {})
Expand Down Expand Up @@ -250,19 +254,19 @@ def post_profiles(bundle_id_id: nil, certificates: nil, devices: nil, attributes
}
}

provisioning_request_client.post("profiles", body)
provisioning_request_client.post("#{Version::V1}/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")
provisioning_request_client.get("#{Version::V1}/profiles/#{profile_id}/bundleId")
end

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

provisioning_request_client.delete("profiles/#{profile_id}")
provisioning_request_client.delete("#{Version::V1}/profiles/#{profile_id}")
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion spaceship/lib/spaceship/connect_api/testflight/client.rb
Expand Up @@ -19,7 +19,7 @@ def initialize(cookie: nil, current_team_id: nil, token: nil, another_client: ni
end

def self.hostname
'https://appstoreconnect.apple.com/iris/v1/'
'https://appstoreconnect.apple.com/iris/'
end
end
end
Expand Down

0 comments on commit 3c3a937

Please sign in to comment.