Skip to content
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion Docs/GenerateGithubWebhook.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -85,4 +87,6 @@ func handle(context: AWSLambdaRuntimeCore.LambdaContext, event: AWSLambdaEvents.
return APIGatewayV2Response(with: error, statusCode: .badRequest)
}
}
...

```
13 changes: 7 additions & 6 deletions Docs/GenerateLambdaAPI.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -42,7 +42,7 @@ struct Item: Codable {

extension Item: BreezeCodable { }

BreezeLambdaAPI<Item>.main()
try await BreezeLambdaAPI<Item>().run()
```

It's required the `Codable` struct or class to conform to the `BreezeCodable` protocol:
Expand Down Expand Up @@ -77,22 +77,23 @@ 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),
],
products: [
.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"),
]
)
]
Expand Down
24 changes: 20 additions & 4 deletions Docs/GenerateWebhook.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,21 @@ 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

required init(handlerContext: HandlerContext) {
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 {
Expand Down Expand Up @@ -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

Expand All @@ -109,15 +125,15 @@ struct PostWebHookRequest: Codable {
}
}

class PostWebHook: BreezeLambdaWebHookHandler {
final class PostWebHook: BreezeLambdaWebHookHandler {

let handlerContext: HandlerContext

required init(handlerContext: HandlerContext) {
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()
Expand Down
4 changes: 2 additions & 2 deletions Examples/GitHubWebhook/BreezeGitHubWebHook/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
4 changes: 2 additions & 2 deletions Examples/ItemAPI/BreezeItemAPI/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
4 changes: 2 additions & 2 deletions Examples/Webhook/BreezeWebHook/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down