Skip to content

Commit

Permalink
Merge pull request #21 from appwrite/feat-dart-starter-template
Browse files Browse the repository at this point in the history
feat: Dart starter
  • Loading branch information
Meldiron authored Jul 21, 2023
2 parents 968cc30 + 20e2229 commit 836660d
Show file tree
Hide file tree
Showing 5 changed files with 121 additions and 0 deletions.
27 changes: 27 additions & 0 deletions dart/starter-template/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# See https://www.dartlang.org/guides/libraries/private-files

# Files and directories created by pub
.dart_tool/
.packages
build/
# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock

# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/

# dotenv environment variables file
.env*

# Avoid committing generated Javascript files:
*.dart.js
*.info.json # Produced by the --dump-info flag.
*.js # When generated by dart2js. Don't specify *.js if your
# project includes source files written in JavaScript.
*.js_
*.js.deps
*.js.map

.flutter-plugins
.flutter-plugins-dependencies
48 changes: 48 additions & 0 deletions dart/starter-template/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# ⚡ Dart Starter Function

A simple starter function. Edit `lib/main.dart` to get started and create something awesome! 🚀

## 🧰 Usage

### `GET`

- Returns a "Hello, World!" message.

**Response**

Sample `200` Response:

```text
Hello, World! 🌎
```

### `POST`, `PUT`, `PATCH`, `DELETE`

- Returns a "Learn More" JSON response.

**Response**

Sample `200` Response:

```json
{
"motto": "Build Fast. Scale Big. All in One Place.",
"learn": "https://appwrite.io/docs",
"connect": "https://appwrite.io/discord",
"getInspired": "https://builtwith.appwrite.io"
}
```

## ⚙️ Configuration

| Setting | Value |
|-------------------|-----------------|
| Runtime | Dart (3.0) |
| Entrypoint | `lib/main.dart` |
| Build Commands | `dart pub get` |
| Permissions | `any` |
| Timeout (Seconds) | 15 |

## 🔒 Environment Variables

No environment variables required.
1 change: 1 addition & 0 deletions dart/starter-template/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include: package:lints/recommended.yaml
34 changes: 34 additions & 0 deletions dart/starter-template/lib/main.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import 'dart:async';
import 'package:dart_appwrite/dart_appwrite.dart';

// This is your Appwrite function
// It's executed each time we get a request
Future<dynamic> main(final context) async {
// Why not try the Appwrite SDK?
//
// final client = Client()
// .setEndpoint('https://cloud.appwrite.io/v1')
// .setProject(process.env.APPWRITE_PROJECT_ID)
// .setKey(process.env.APPWRITE_API_KEY);

// You can log messages to the console
context.log('Hello, Logs! 👋');

// If something goes wrong, log an error
context.error('Hello, Errors! ⛔');

// The `req` object contains the request data
if (context.req.method == 'GET') {
// Send a response with the res object helpers
// `res.send()` dispatches a string back to the client
return context.res.send('Hello, World! 🌎');
}

// `res.json()` is a handy helper for sending JSON
return context.res.json({
'motto': 'Build Fast. Scale Big. All in One Place.',
'learn': 'https://appwrite.io/docs',
'connect': 'https://appwrite.io/discord',
'getInspired': 'https://builtwith.appwrite.io',
});
}
11 changes: 11 additions & 0 deletions dart/starter-template/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: starter_template
version: 1.0.0

environment:
sdk: ^3.1.0-edge.3daa47b54e5f39241c44858e0d66ce51723040bf

dependencies:
dart_appwrite: ^8.0.1

dev_dependencies:
lints: ^2.0.0

0 comments on commit 836660d

Please sign in to comment.