Skip to content

Commit

Permalink
docs: use async/await in examples and documentation (#55)
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelahojna committed Sep 15, 2022
1 parent a8ce9a2 commit 4e723a9
Show file tree
Hide file tree
Showing 40 changed files with 1,453 additions and 905 deletions.
28 changes: 20 additions & 8 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
parameters:
swift-image:
type: string
default: &default-swift-image "swift:5.3"
default: &default-swift-image "swift:5.7"
influxdb-image:
type: string
default: &default-influxdb-image "influxdb:latest"
Expand Down Expand Up @@ -126,7 +126,7 @@ jobs:
parameters:
xcode-version:
type: string
default: &default-xcode "12.5.1"
default: &default-xcode "13.4.1"
influxdb-package-version:
type: string
default: "2.0.4"
Expand Down Expand Up @@ -181,7 +181,7 @@ jobs:

check-code-style:
docker:
- image: *default-swift-image
- image: swift:5.5
steps:
- checkout
- swiftlint-install
Expand Down Expand Up @@ -217,7 +217,7 @@ jobs:
- restore_cache:
name: Restoring Cache
keys:
- &generate-sources-cache-key gs-cache-v1-swift:5.3
- &generate-sources-cache-key gs-cache-v1-swift:5.7
- run:
name: Install Maven & Curl
command: |
Expand Down Expand Up @@ -246,18 +246,22 @@ jobs:
- restore_cache:
name: Restoring Example Cache
keys:
- &cache-example-key example-cache-v3-{{ checksum "Examples/CreateNewBucket/Package.swift" }}-{{ checksum "Examples/WriteData/Package.swift" }}-{{ checksum "Examples/QueryCpu/Package.swift" }}-{{ checksum "Examples/DeleteData/Package.swift" }
- &cache-example-key example-cache-v3-{{ checksum "Examples/CreateNewBucket/Package.swift" }}-{{ checksum "Examples/WriteData/Package.swift" }}-{{ checksum "Examples/QueryCpu/Package.swift" }}-{{ checksum "Examples/QueryCpuData/Package.swift" }}-{{ checksum "Examples/DeleteData/Package.swift" }}-{{ checksum "Examples/ParameterizedQuery/Package.swift" }}
- example-cache-v3-
- check-example:
directory: CreateNewBucket
- check-example:
directory: WriteData
- check-example:
directory: QueryCpu
- check-example:
directory: QueryCpuData
- check-example:
directory: DeleteData
- check-example:
directory: InfluxDBStatus
- check-example:
directory: ParameterizedQuery
- save_cache:
name: Saving Example Cache
key: *cache-example-key
Expand All @@ -268,10 +272,14 @@ jobs:
- Examples/WriteData/.build/repositories
- Examples/QueryCpu/Package.resolved
- Examples/QueryCpu/.build/repositories
- Examples/QueryCpuData/Package.resolved
- Examples/QueryCpuData/.build/repositories
- Examples/DeleteData/Package.resolved
- Examples/DeleteData/.build/repositories
- Examples/InfluxDBStatus/Package.resolved
- Examples/InfluxDBStatus/.build/repositories
- Examples/ParameterizedQuery/Package.resolved
- Examples/ParameterizedQuery/.build/repositories

check-examples-macOS:
macos:
Expand All @@ -285,8 +293,8 @@ jobs:
- restore_cache:
name: Restoring Example Cache
keys:
- &cache-example-key example-macOS-cache-v0-{{ checksum "Examples/WriteDataInBatches/Package.swift" }}
- example-macOS-cache-v0-
- &cache-example-key example-macOS-cache-v1-{{ checksum "Examples/WriteDataInBatches/Package.swift" }}
- example-macOS-cache-v1-
- run: |
HOMEBREW_NO_AUTO_UPDATE=1
brew install swiftlint
Expand All @@ -307,7 +315,9 @@ workflows:
- check-documentation
- check-examples
- check-examples-macOS
- tests-linux
- tests-linux:
name: tests-linux-5.3
swift-image: "swift:5.3"
- tests-linux:
name: tests-linux-5.4
swift-image: "swift:5.4"
Expand All @@ -317,6 +327,8 @@ workflows:
- tests-linux:
name: tests-linux-5.6
swift-image: "swift:5.6"
- tests-linux:
name: tests-linux-5.7
- tests-macOS
nightly:
triggers:
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
## 1.4.0 [unreleased]

### CI
1. [#55](https://github.com/influxdata/influxdb-client-swift/pull/55): Add Swift 5.7 to CI and update XCode

### Documentation
1. [#55](https://github.com/influxdata/influxdb-client-swift/pull/55): Updated examples in `README`, code comments and `Examples` to async/await

## 1.3.0 [2022-07-29]

### Features
Expand Down
2 changes: 1 addition & 1 deletion Examples/AsyncAwait/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ This is an example how to use `async/await` with the InfluxDB client.
--tty \
--volume $PWD/../..:/client \
--workdir /client/Examples/AsyncAwait \
swift:5.6 /bin/bash
swift:5.7 /bin/bash
```
1. Use `async/await` with `WriteAPI`, `QueryAPI` and `BucketsAPI`:
```bash
Expand Down
9 changes: 6 additions & 3 deletions Examples/CreateNewBucket/Package.swift
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
// swift-tools-version:5.3
// swift-tools-version:5.5

import PackageDescription

let package = Package(
name: "CreateNewBucket",
platforms: [
.macOS(.v11)
],
products: [
.executable(name: "create-new-bucket", targets: ["CreateNewBucket"])
],
dependencies: [
.package(name: "influxdb-client-swift", path: "../../"),
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.0.0")
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.1.2")
],
targets: [
.target(name: "CreateNewBucket", dependencies: [
.executableTarget(name: "CreateNewBucket", dependencies: [
.product(name: "InfluxDBSwiftApis", package: "influxdb-client-swift"),
.product(name: "ArgumentParser", package: "swift-argument-parser")
])
Expand Down
10 changes: 3 additions & 7 deletions Examples/CreateNewBucket/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This is an example how to create new bucket with permission to write.

## Sources:
- [Package.swift](/Examples/CreateNewBucket/Package.swift)
- [main.swift](/Examples/CreateNewBucket/Sources/CreateNewBucket/main.swift)
- [CreateNewBucket.swift](/Examples/CreateNewBucket/Sources/CreateNewBucket/CreateNewBucket.swift)


## How to test:
Expand All @@ -32,9 +32,6 @@ This is an example how to create new bucket with permission to write.
-H 'accept: application/json' \
-d '{"username": "my-user", "password": "my-password", "org": "my-org", "bucket": "my-bucket", "token": "my-token"}'
```
1. Navigate to http://localhost:8086/ and find the id of your organization:
- Username: `my-user`, Password: `my-password`
- https://docs.influxdata.com/influxdb/latest/organizations/view-orgs/
1. Start SwiftCLI by:
```bash
docker run --rm \
Expand All @@ -44,12 +41,11 @@ This is an example how to create new bucket with permission to write.
--tty \
--volume $PWD/../..:/client \
--workdir /client/Examples/CreateNewBucket \
swift:5.3 /bin/bash
swift:5.7 /bin/bash
```
1. Create a new Bucket by:
```bash
export orgId=your-org-id
swift run create-new-bucket --name new-bucket --org-id $orgId --token my-token --url http://influxdb_v2:8086
swift run create-new-bucket --name new-bucket --org my-org --token my-token --url http://influxdb_v2:8086
```
## Expected output

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
//
// Created by Jakub Bednář on 05/11/2020.
//

import ArgumentParser
import Foundation
import InfluxDBSwift
import InfluxDBSwiftApis

@main
struct CreateNewBucket: AsyncParsableCommand {
@Option(name: .shortAndLong, help: "New bucket name.")
private var name: String

@Option(name: .shortAndLong, help: "Duration bucket will retain data.")
private var retention: Int64 = 3600

@Option(name: .shortAndLong, help: "Specifies the organization name.")
private var org: String

@Option(name: .shortAndLong, help: "Authentication token.")
private var token: String

@Option(name: .shortAndLong, help: "HTTP address of InfluxDB.")
private var url: String
}

extension CreateNewBucket {
mutating func run() async throws {
// Initialize Client and API
let client = InfluxDBClient(url: url, token: token)
let api = InfluxDB2API(client: client)

let orgId = (try await api.organizationsAPI.getOrgs(org: org)!).orgs?.first?.id

// Bucket configuration
let request = PostBucketRequest(
orgID: orgId!,
name: name,
retentionRules: [RetentionRule(type: RetentionRule.ModelType.expire, everySeconds: retention)])

// Create Bucket
let bucket = try await api.bucketsAPI.postBuckets(postBucketRequest: request)!

// Create Authorization with permission to read/write created bucket
let bucketResource = Resource(
type: Resource.ModelType.buckets,
id: bucket.id,
orgID: orgId
)

// Authorization configuration
let authorizationRequest = AuthorizationPostRequest(
description: "Authorization to read/write bucket: \(name)",
orgID: orgId!,
permissions: [
Permission(action: Permission.Action.read, resource: bucketResource),
Permission(action: Permission.Action.write, resource: bucketResource)
])

// Create Authorization
let authorization =
try await api.authorizationsAPI.postAuthorizations(authorizationPostRequest: authorizationRequest)!

print("The bucket: '\(bucket.name)' is successfully created.")
print("The following token could be use to read/write:")
print("\t\(authorization.token!)")

client.close()
}
}
91 changes: 0 additions & 91 deletions Examples/CreateNewBucket/Sources/CreateNewBucket/main.swift

This file was deleted.

11 changes: 7 additions & 4 deletions Examples/DeleteData/Package.swift
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
// swift-tools-version:5.3
// swift-tools-version:5.5

import PackageDescription

let package = Package(
name: "DeleteData",
platforms: [
.macOS(.v10_15)
],
products: [
.executable(name: "delete-data", targets: ["DeleteData"])
],
dependencies: [
.package(name: "influxdb-client-swift", path: "../../"),
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.0.0")
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.1.2")
],
targets: [
.target(name: "DeleteData", dependencies: [
.product(name: "InfluxDBSwift", package: "influxdb-client-swift"),
.executableTarget(name: "DeleteData", dependencies: [
.product(name: "InfluxDBSwiftApis", package: "influxdb-client-swift"),
.product(name: "ArgumentParser", package: "swift-argument-parser")
])
]
Expand Down
4 changes: 2 additions & 2 deletions Examples/DeleteData/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ See delete predicate syntax in InfluxDB docs - [delete-predicate](https://docs.i

## Sources:
- [Package.swift](/Examples/DeleteData/Package.swift)
- [main.swift](/Examples/DeleteData/Sources/DeleteData/main.swift)
- [DeleteData.swift](/Examples/DeleteData/Sources/DeleteData/DeleteData.swift)

## How to test:
1. Start InfluxDB:
Expand Down Expand Up @@ -52,7 +52,7 @@ See delete predicate syntax in InfluxDB docs - [delete-predicate](https://docs.i
--tty \
--volume $PWD/../..:/client \
--workdir /client/Examples/DeleteData \
swift:5.3 /bin/bash
swift:5.7 /bin/bash
```
1. Delete date where tag `production` is `no`:
```bash
Expand Down

0 comments on commit 4e723a9

Please sign in to comment.