Skip to content
This repository has been archived by the owner on Jun 30, 2023. It is now read-only.

Commit

Permalink
Merge pull request #127 from mironal/class
Browse files Browse the repository at this point in the history
Remove the API protocol and make it a class instead.
  • Loading branch information
mironal committed Jul 3, 2022
2 parents 5e647ab + 4768f0e commit 89308a3
Show file tree
Hide file tree
Showing 41 changed files with 1,209 additions and 1,293 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/swift.yml
Expand Up @@ -21,6 +21,10 @@ jobs:
- uses: fwal/setup-swift@v1
with:
swift-version: "5.6"
- name: Install Sourcery
run: brew update && brew install sourcery
- name: Check Flat API
run: ./flat-api.sh -c
- name: Build tools & Lint
if: steps.cache-spm.outputs.cache-hit != 'true'
run: swift run -c release --package-path BuildTools swift-format lint -p --strict --recursive ./Sources ./Tests ./scripts
Expand Down
45 changes: 8 additions & 37 deletions Sources/TwitterAPIKit/APIv1/Account/AccountAPIv1.swift
@@ -1,79 +1,50 @@
import Foundation

public protocol AccountAPIv1 {
open class AccountAPIv1: TwitterAPIBase {

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/get-account-settings
func getAccountSetting(
_ request: GetAccountSettingsRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/get-account-verify_credentials
func getAccountVerify(
_ request: GetAccountVerifyCredentialsRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-remove_profile_banner
func postRemoveProfileBanner(
_ request: PostAccountRemoveProfileBannerRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-settings
func postAccountSettings(
_ request: PostAccountSettingsRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile
func postAccountProfile(
_ request: PostAccountUpdateProfileRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_banner
func postProfileBanner(
_ request: PostAccountUpdateProfileBannerRequestV1
) -> TwitterAPISessionDataTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_image
func postProfileImage(
_ request: PostAccountUpdateProfileImageRequestV1
) -> TwitterAPISessionJSONTask
}

extension TwitterAPIClient.TwitterAPIImplV1: AccountAPIv1 {
public func getAccountSetting(
_ request: GetAccountSettingsRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/get-account-verify_credentials
public func getAccountVerify(
_ request: GetAccountVerifyCredentialsRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-remove_profile_banner
public func postRemoveProfileBanner(
_ request: PostAccountRemoveProfileBannerRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-settings
public func postAccountSettings(
_ request: PostAccountSettingsRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile
public func postAccountProfile(
_ request: PostAccountUpdateProfileRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_banner
public func postProfileBanner(
_ request: PostAccountUpdateProfileBannerRequestV1
) -> TwitterAPISessionDataTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_image
public func postProfileImage(
_ request: PostAccountUpdateProfileImageRequestV1
) -> TwitterAPISessionJSONTask {
Expand Down
11 changes: 3 additions & 8 deletions Sources/TwitterAPIKit/APIv1/Application/ApplicationAPIv1.swift
@@ -1,16 +1,11 @@
import Foundation

public protocol ApplicationAPIv1 {
open class ApplicationAPIv1: TwitterAPIBase {

/// https://developer.twitter.com/en/docs/twitter-api/v1/developer-utilities/rate-limit-status/api-reference/get-application-rate_limit_status
func getRateLimit(
public func getRateLimit(
_ request: GetApplicationRateLimitStatusRequestV1
) -> TwitterAPISessionJSONTask

}

extension TwitterAPIClient.TwitterAPIImplV1: ApplicationAPIv1 {
func getRateLimit(_ request: GetApplicationRateLimitStatusRequestV1) -> TwitterAPISessionJSONTask {
) -> TwitterAPISessionJSONTask {
return session.send(request)
}
}
58 changes: 9 additions & 49 deletions Sources/TwitterAPIKit/APIv1/BlockAndMute/BlockAndMuteAPIv1.swift
@@ -1,104 +1,64 @@
import Foundation

public protocol BlockAndMuteAPIv1 {
open class BlockAndMuteAPIv1: TwitterAPIBase {

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/get-blocks-ids
func getBlockIDs(
_ request: GetBlocksIDsRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/get-blocks-list
func getBlockUsers(
_ request: GetBlocksListRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-ids
func getMuteIDs(
_ request: GetMutesUsersIDsRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-list
func getMuteUsers(
_ request: GetMutesUsersListRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-blocks-create
func postBlockUser(
_ request: PostBlocksCreateRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-blocks-destroy
func postUnblockUser(
_ request: PostBlocksDestroyRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-mutes-users-create
func postMuteUser(
_ request: PostMutesUsersCreateRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-mutes-users-destroy
func postUnmuteUser(
_ request: PostMutesUsersDestroyRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-users-report_spam
func postReportSpam(
_ request: PostUsersReportSpamRequestV1
) -> TwitterAPISessionJSONTask

}

extension TwitterAPIClient.TwitterAPIImplV1: BlockAndMuteAPIv1 {

public func getBlockIDs(
_ request: GetBlocksIDsRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/get-blocks-list
public func getBlockUsers(
_ request: GetBlocksListRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-ids
public func getMuteIDs(
_ request: GetMutesUsersIDsRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-list
public func getMuteUsers(
_ request: GetMutesUsersListRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-blocks-create
public func postBlockUser(
_ request: PostBlocksCreateRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-blocks-destroy
public func postUnblockUser(
_ request: PostBlocksDestroyRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-mutes-users-create
public func postMuteUser(
_ request: PostMutesUsersCreateRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-mutes-users-destroy
public func postUnmuteUser(
_ request: PostMutesUsersDestroyRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

/// https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/mute-block-report-users/api-reference/post-users-report_spam
public func postReportSpam(
_ request: PostUsersReportSpamRequestV1
) -> TwitterAPISessionJSONTask {
Expand Down
83 changes: 20 additions & 63 deletions Sources/TwitterAPIKit/APIv1/Collection/CollectionAPIv1.swift
@@ -1,115 +1,72 @@
import Foundation

public protocol CollectionAPIv1 {
open class CollectionAPIv1: TwitterAPIBase {

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/get-collections-entries
func getCollectionEntries(
_ request: GetCollectionsEntriesRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/get-collections-list
func getCollections(
_ request: GetCollectionsListRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/get-collections-show
func getCollection(
_ request: GetCollectionsShowRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-create
func postCreateCollection(
_ request: PostCollectionsCreateRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-destroy
func postDestroyCollection(
_ request: PostCollectionsDestroyRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-entries-add
func postCollectionAddEntry(
_ request: PostCollectionsEntriesAddRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-entries-curate
func postCollectionCurate(
_ request: PostCollectionsEntriesCurateRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-entries-move
func postCollectionMoveEntry(
_ request: PostCollectionsEntriesMoveRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-entries-remove
func postCollectionRemoveEntry(
_ request: PostCollectionsEntriesRemoveRequestV1
) -> TwitterAPISessionJSONTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-update
func postCollectionUpdate(
_ request: PostCollectionsUpdateRequestV1
) -> TwitterAPISessionJSONTask
}

extension TwitterAPIClient.TwitterAPIImplV1: CollectionAPIv1 {

func getCollectionEntries(
public func getCollectionEntries(
_ request: GetCollectionsEntriesRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

func getCollections(
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/get-collections-list
public func getCollections(
_ request: GetCollectionsListRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

func getCollection(
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/get-collections-show
public func getCollection(
_ request: GetCollectionsShowRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

func postCreateCollection(
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-create
public func postCreateCollection(
_ request: PostCollectionsCreateRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

func postDestroyCollection(
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-destroy
public func postDestroyCollection(
_ request: PostCollectionsDestroyRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

func postCollectionAddEntry(
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-entries-add
public func postCollectionAddEntry(
_ request: PostCollectionsEntriesAddRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

func postCollectionCurate(
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-entries-curate
public func postCollectionCurate(
_ request: PostCollectionsEntriesCurateRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

func postCollectionMoveEntry(
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-entries-move
public func postCollectionMoveEntry(
_ request: PostCollectionsEntriesMoveRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

func postCollectionRemoveEntry(
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-entries-remove
public func postCollectionRemoveEntry(
_ request: PostCollectionsEntriesRemoveRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
}

func postCollectionUpdate(
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/curate-a-collection/api-reference/post-collections-update
public func postCollectionUpdate(
_ request: PostCollectionsUpdateRequestV1
) -> TwitterAPISessionJSONTask {
return session.send(request)
Expand Down

0 comments on commit 89308a3

Please sign in to comment.