diff --git a/Docs/GenerateGithubWebhook.md b/Docs/GenerateGithubWebhook.md index e2168fb..d2e34a7 100644 --- a/Docs/GenerateGithubWebhook.md +++ b/Docs/GenerateGithubWebhook.md @@ -71,7 +71,9 @@ The `sha256` secret can be securely stored on AWS using `System Manager` -> `Par Open the generated code, decode the GitHub payload and implement your custom business logic. ```swift -func handle(context: AWSLambdaRuntimeCore.LambdaContext, event: AWSLambdaEvents.APIGatewayV2Request) async -> AWSLambdaEvents.APIGatewayV2Response { +... + + func handle(_ event: APIGatewayV2Request, context: LambdaContext) async -> APIGatewayV2Response { do { context.logger.info("event: \(event)") let payload = try validateGitHubSignature(context: context, event: event) @@ -85,4 +87,6 @@ func handle(context: AWSLambdaRuntimeCore.LambdaContext, event: AWSLambdaEvents. return APIGatewayV2Response(with: error, statusCode: .badRequest) } } +... + ``` \ No newline at end of file diff --git a/Docs/GenerateLambdaAPI.md b/Docs/GenerateLambdaAPI.md index d25d497..fde0125 100644 --- a/Docs/GenerateLambdaAPI.md +++ b/Docs/GenerateLambdaAPI.md @@ -32,7 +32,7 @@ struct Item: Codable { public var updatedAt: String? enum CodingKeys: String, CodingKey { - case key + case key = "itemKey" case name case description case createdAt @@ -42,7 +42,7 @@ struct Item: Codable { extension Item: BreezeCodable { } -BreezeLambdaAPI.main() +try await BreezeLambdaAPI().run() ``` It's required the `Codable` struct or class to conform to the `BreezeCodable` protocol: @@ -77,7 +77,7 @@ To package the Lambda is required to create a Swift Package using the following import PackageDescription let package = Package( - name: "swift-breeze-item-api", + name: "BreezeItemAPI", platforms: [ .macOS(.v15), ], @@ -85,14 +85,15 @@ let package = Package( .executable(name: "ItemAPI", targets: ["ItemAPI"]), ], dependencies: [ - .package(url: "https://github.com/swift-serverless/Breeze.git", from: "0.2.0"), + .package(url: "https://github.com/swift-serverless/BreezeLambdaDynamoDBAPI.git", from: "1.0.0"), + .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0") ], targets: [ .executableTarget( name: "ItemAPI", dependencies: [ - .product(name: "BreezeLambdaAPI", package: "Breeze"), - .product(name: "BreezeDynamoDBService", package: "Breeze"), + .product(name: "BreezeLambdaAPI", package: "BreezeLambdaDynamoDBAPI"), + .product(name: "BreezeDynamoDBService", package: "BreezeLambdaDynamoDBAPI"), ] ) ] diff --git a/Docs/GenerateWebhook.md b/Docs/GenerateWebhook.md index 34af850..ed25bea 100644 --- a/Docs/GenerateWebhook.md +++ b/Docs/GenerateWebhook.md @@ -65,7 +65,13 @@ Open the generated code, and implement your custom business logic by changing th If the parameter `github-user` is present in the URL query string, the value is extracted and used to get the content from GitHub, the content is returned to the response payload. ```swift -class GetWebHook: BreezeLambdaWebHookHandler { +import Foundation +import BreezeLambdaWebHook +import AsyncHTTPClient +import AWSLambdaEvents +import AWSLambdaRuntime + +final class GetWebHook: BreezeLambdaWebHookHandler { let handlerContext: HandlerContext @@ -73,7 +79,7 @@ class GetWebHook: BreezeLambdaWebHookHandler { self.handlerContext = handlerContext } - func handle(context: AWSLambdaRuntimeCore.LambdaContext, event: AWSLambdaEvents.APIGatewayV2Request) async -> AWSLambdaEvents.APIGatewayV2Response { + func handle(_ event: APIGatewayV2Request, context: LambdaContext) async -> APIGatewayV2Response { do { context.logger.info("event: \(event)") guard let params = event.queryStringParameters else { @@ -101,6 +107,16 @@ class GetWebHook: BreezeLambdaWebHookHandler { If the parameter `github-user` is present in the JSON payload, the value is extracted and used to get the content from GitHub, the content is returned to the response payload. ```swift +import Foundation +import AsyncHTTPClient +import AWSLambdaEvents +import AWSLambdaRuntime +import BreezeLambdaWebHook + +enum PostWebHookError: Error { + case invalidBody +} + struct PostWebHookRequest: Codable { let githubUser: String @@ -109,7 +125,7 @@ struct PostWebHookRequest: Codable { } } -class PostWebHook: BreezeLambdaWebHookHandler { +final class PostWebHook: BreezeLambdaWebHookHandler { let handlerContext: HandlerContext @@ -117,7 +133,7 @@ class PostWebHook: BreezeLambdaWebHookHandler { self.handlerContext = handlerContext } - func handle(context: AWSLambdaRuntimeCore.LambdaContext, event: AWSLambdaEvents.APIGatewayV2Request) async -> AWSLambdaEvents.APIGatewayV2Response { + func handle(_ event: APIGatewayV2Request, context: LambdaContext) async -> APIGatewayV2Response { do { context.logger.info("event: \(event)") let incomingRequest: PostWebHookRequest = try event.bodyObject() diff --git a/Examples/GitHubWebhook/BreezeGitHubWebHook/Package.swift b/Examples/GitHubWebhook/BreezeGitHubWebHook/Package.swift index e631ac8..358c8ab 100644 --- a/Examples/GitHubWebhook/BreezeGitHubWebHook/Package.swift +++ b/Examples/GitHubWebhook/BreezeGitHubWebHook/Package.swift @@ -13,8 +13,8 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/apple/swift-crypto.git", from: "1.0.0"), - .package(url: "https://github.com/swift-serverless/BreezeLambdaWebHook.git", from: "1.0.0-rc.1"), - .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0-rc.1") + .package(url: "https://github.com/swift-serverless/BreezeLambdaWebHook.git", from: "1.0.0"), + .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0") ], targets: [ .executableTarget( diff --git a/Examples/ItemAPI/BreezeItemAPI/Package.swift b/Examples/ItemAPI/BreezeItemAPI/Package.swift index eb90747..510f7b0 100644 --- a/Examples/ItemAPI/BreezeItemAPI/Package.swift +++ b/Examples/ItemAPI/BreezeItemAPI/Package.swift @@ -12,8 +12,8 @@ let package = Package( .executable(name: "ItemAPI", targets: ["ItemAPI"]), ], dependencies: [ - .package(url: "https://github.com/swift-serverless/BreezeLambdaDynamoDBAPI.git", from: "1.0.0-rc.1"), - .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0-rc.1") + .package(url: "https://github.com/swift-serverless/BreezeLambdaDynamoDBAPI.git", from: "1.0.0"), + .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0") ], targets: [ .executableTarget( diff --git a/Examples/Webhook/BreezeWebHook/Package.swift b/Examples/Webhook/BreezeWebHook/Package.swift index 74e00d3..1985e83 100644 --- a/Examples/Webhook/BreezeWebHook/Package.swift +++ b/Examples/Webhook/BreezeWebHook/Package.swift @@ -12,8 +12,8 @@ let package = Package( .executable(name: "WebHook", targets: ["WebHook"]), ], dependencies: [ - .package(url: "https://github.com/swift-serverless/BreezeLambdaWebHook.git", from: "1.0.0-rc.1"), - .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0-rc.1") + .package(url: "https://github.com/swift-serverless/BreezeLambdaWebHook.git", from: "1.0.0"), + .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0") ], targets: [ .executableTarget( diff --git a/Sources/BreezeCommand/Resources/BreezeGithubWebhook/Template/SwiftPackage/Package.swift.stencil b/Sources/BreezeCommand/Resources/BreezeGithubWebhook/Template/SwiftPackage/Package.swift.stencil index 951e5bf..1ac5158 100644 --- a/Sources/BreezeCommand/Resources/BreezeGithubWebhook/Template/SwiftPackage/Package.swift.stencil +++ b/Sources/BreezeCommand/Resources/BreezeGithubWebhook/Template/SwiftPackage/Package.swift.stencil @@ -13,8 +13,8 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/apple/swift-crypto.git", from: "1.0.0"), - .package(url: "https://github.com/swift-serverless/BreezeLambdaWebHook.git", from: "1.0.0-rc.1"), - .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0-rc.1") + .package(url: "https://github.com/swift-serverless/BreezeLambdaWebHook.git", from: "1.0.0"), + .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0") ], targets: [ .executableTarget( diff --git a/Sources/BreezeCommand/Resources/BreezeLambdaAPI/Template/SwiftPackage/Package.swift.stencil b/Sources/BreezeCommand/Resources/BreezeLambdaAPI/Template/SwiftPackage/Package.swift.stencil index 8a582f1..600f3cb 100644 --- a/Sources/BreezeCommand/Resources/BreezeLambdaAPI/Template/SwiftPackage/Package.swift.stencil +++ b/Sources/BreezeCommand/Resources/BreezeLambdaAPI/Template/SwiftPackage/Package.swift.stencil @@ -12,8 +12,8 @@ let package = Package( .executable(name: "{{ params.targetName }}", targets: ["{{ params.targetName }}"]), ], dependencies: [ - .package(url: "https://github.com/swift-serverless/BreezeLambdaDynamoDBAPI.git", from: "1.0.0-rc.1"), - .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0-rc.1") + .package(url: "https://github.com/swift-serverless/BreezeLambdaDynamoDBAPI.git", from: "1.0.0"), + .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0") ], targets: [ .executableTarget( diff --git a/Sources/BreezeCommand/Resources/BreezeWebhook/Template/SwiftPackage/Package.swift.stencil b/Sources/BreezeCommand/Resources/BreezeWebhook/Template/SwiftPackage/Package.swift.stencil index 4f20087..f832086 100644 --- a/Sources/BreezeCommand/Resources/BreezeWebhook/Template/SwiftPackage/Package.swift.stencil +++ b/Sources/BreezeCommand/Resources/BreezeWebhook/Template/SwiftPackage/Package.swift.stencil @@ -12,8 +12,8 @@ let package = Package( .executable(name: "{{ params.targetName }}", targets: ["{{ params.targetName }}"]), ], dependencies: [ - .package(url: "https://github.com/swift-serverless/BreezeLambdaWebHook.git", from: "1.0.0-rc.1"), - .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0-rc.1") + .package(url: "https://github.com/swift-serverless/BreezeLambdaWebHook.git", from: "1.0.0"), + .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "2.0.0") ], targets: [ .executableTarget(