Skip to content
This repository was archived by the owner on Sep 29, 2023. It is now read-only.

Commit 410b215

Browse files
Merge pull request #120 from appwrite/feat-code-examples
Feat-code-examples
2 parents f34c301 + a244883 commit 410b215

File tree

2 files changed

+496
-21
lines changed

2 files changed

+496
-21
lines changed

app/views/docs/database.phtml

+271-15
Original file line numberDiff line numberDiff line change
@@ -99,19 +99,101 @@ The terms collections and documents are used because the Appwrite JSON REST API
9999
<p>
100100
Navigate to the <b>Documents</b> tab of your collection and click the <b>Add Document</b> button, or add a document programmatically:
101101
</p>
102-
<div class="ide" data-lang="javascript" data-lang-label="Web SDK">
103-
<pre class="line-numbers"><code class="prism language-javascript" data-prism>import { Appwrite } from "appwrite";
102+
<ul class="phases clear" data-ui-phases>
103+
<li>
104+
<h3>Web</h3>
105+
<div class="ide" data-lang="javascript" data-lang-label="Web SDK">
106+
<pre class="line-numbers"><code class="prism language-javascript" data-prism>import { Appwrite } from "appwrite";
104107

105108
const sdk = new Appwrite();
106-
const promise = sdk.database.createDocument('[COLLECTION_ID]', {});
109+
const promise = sdk.database.createDocument('[COLLECTION_ID]', 'unique()', {});
107110

108111
promise.then(function (response) {
109112
console.log(response); // Success
110113
}, function (error) {
111114
console.log(error); // Failure
112115
});
113-
</code></pre>
114-
</div>
116+
</code></pre>
117+
</div>
118+
</li>
119+
<li>
120+
<h3>Flutter</h3>
121+
<div class="ide" data-lang="dart" data-lang-label="Flutter SDK">
122+
<pre class="line-numbers"><code class="prism language-dart" data-prism>import 'package:appwrite/appwrite.dart';
123+
void main() async {
124+
final client = Client();
125+
final database = Database(client);
126+
try {
127+
final doc = database.createDocument(collectionId: '[COLLECTION_ID]', documentId: 'unique()', data: {});
128+
print(doc.toMap());
129+
} on AppwriteException catch(e) {
130+
print(e);
131+
}
132+
}
133+
</code></pre>
134+
</div>
135+
</li>
136+
<li>
137+
<h3>Android</h3>
138+
<div class="ide" data-lang="kotlin" data-lang-label="Android SDK">
139+
<pre class="line-numbers"><code class="prism language-kotlin" data-prism>import androidx.appcompat.app.AppCompatActivity
140+
import android.os.Bundle
141+
import kotlinx.coroutines.GlobalScope
142+
import kotlinx.coroutines.launch
143+
import io.appwrite.Client
144+
import io.appwrite.services.Database
145+
146+
class MainActivity : AppCompatActivity() {
147+
override fun onCreate(savedInstanceState: Bundle?) {
148+
super.onCreate(savedInstanceState)
149+
setContentView(R.layout.activity_main)
150+
151+
val client = Client(applicationContext)
152+
.setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
153+
.setProject("5df5acd0d48c2") // Your project ID
154+
155+
val database = Database(client)
156+
157+
GlobalScope.launch {
158+
val response = database.createDocument(
159+
collectionId = "[COLLECTION_ID]",
160+
documentId = "unique()",
161+
data = mapOf( "a" to "b" ),
162+
)
163+
val json = response.body?.string()
164+
}
165+
}
166+
}</code></pre>
167+
</div>
168+
</li>
169+
<li>
170+
<h3>iOS</h3>
171+
<div class="ide" data-lang="swift" data-lang-label="Apple SDK">
172+
<pre class="line-numbers"><code class="prism language-swift" data-prism>import Appwrite
173+
174+
func main() {
175+
let client = Client()
176+
.setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
177+
.setProject("my_project") // Your project ID
178+
179+
let database = Database(client)
180+
database.createDocument(
181+
collectionId: "[COLLECTION_ID]",
182+
documentId: "unique()",
183+
data: [:]
184+
) { result in
185+
switch result {
186+
case .failure(let error):
187+
print(error.message)
188+
case .success(let document):
189+
print(String(describing: document)
190+
}
191+
}
192+
}</code></pre>
193+
</div>
194+
</li>
195+
</ul>
196+
115197

116198
<h3><a href="/docs/database#querying-documents" id="querying-documents">Querying Documents</a></h3>
117199

@@ -122,14 +204,97 @@ promise.then(function (response) {
122204
<p>
123205
To find specific documents in a collection, pass an array of query strings as a parameter to the <a href="/docs/server/database#databaseListDocuments">listDocuments</a> endpoint. The SDKs provide a <b>Query</b> class to make query building simpler:
124206
</p>
125-
<div class="ide" data-lang="javascript" data-lang-label="Web SDK">
126-
<pre class="line-numbers"><code class="prism language-javascript" data-prism>import { Query } from "appwrite";
207+
<ul class="phases clear" data-ui-phases>
208+
<li>
209+
<h3>Web</h3>
210+
<div class="ide" data-lang="javascript" data-lang-label="Web SDK">
211+
<pre class="line-numbers"><code class="prism language-javascript" data-prism>import { Query } from "appwrite";
127212

128213
sdk.database.listDocuments('movies', [
129214
Query.equal('title', 'Avatar')
130215
]);
131216
</code></pre>
132-
</div>
217+
</div>
218+
</li>
219+
<li>
220+
<h3>Flutter</h3>
221+
<div class="ide" data-lang="javascript" data-lang-label="Flutter SDK">
222+
<pre class="line-numbers"><code class="prism language-dart" data-prism>import 'package:appwrite/appwrite.dart';
223+
224+
void main() async {
225+
final client = Client();
226+
final database = Database(client);
227+
try {
228+
final docs = await database.listDocuments(
229+
collectionId: 'movies',
230+
queries: [Query.equal('title', 'Avatar')]);
231+
print(docs.toMap());
232+
} on AppwriteException catch(e) {
233+
print(e);
234+
}
235+
}
236+
</code></pre>
237+
</div>
238+
</li>
239+
<li>
240+
<h3>Android</h3>
241+
<div class="ide" data-lang="kotlin" data-lang-label="Android SDK">
242+
<pre class="line-numbers"><code class="prism language-kotlin" data-prism>import androidx.appcompat.app.AppCompatActivity
243+
import android.os.Bundle
244+
import kotlinx.coroutines.GlobalScope
245+
import kotlinx.coroutines.launch
246+
import io.appwrite.Client
247+
import io.appwrite.services.Database
248+
import io.appwrite.Query
249+
250+
class MainActivity : AppCompatActivity() {
251+
override fun onCreate(savedInstanceState: Bundle?) {
252+
super.onCreate(savedInstanceState)
253+
setContentView(R.layout.activity_main)
254+
255+
val client = Client(applicationContext)
256+
.setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
257+
.setProject("5df5acd0d48c2") // Your project ID
258+
259+
val database = Database(client)
260+
261+
GlobalScope.launch {
262+
val response = database.listDocuments(
263+
collectionId = "[COLLECTION_ID]",
264+
queries = [Query.equal('title', 'Avatar')],
265+
)
266+
val json = response.body?.string()
267+
}
268+
}
269+
}</code></pre>
270+
</div>
271+
</li>
272+
<li>
273+
<h3>iOS</h3>
274+
<div class="ide" data-lang="swift" data-lang-label="Apple SDK">
275+
<pre class="line-numbers"><code class="prism language-swift" data-prism>import Appwrite
276+
277+
func main() {
278+
let client = Client()
279+
.setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
280+
.setProject("my_project") // Your project ID
281+
282+
let database = Database(client)
283+
database.listDocuments(
284+
collectionId: "[COLLECTION_ID]",
285+
queries: [Query.equal('title', 'Avatar')]
286+
) { result in
287+
switch result {
288+
case .failure(let error):
289+
print(error.message)
290+
case .success(let document):
291+
print(String(describing: document)
292+
}
293+
}
294+
}</code></pre>
295+
</div>
296+
</li>
297+
</ul>
133298

134299
<p>The following operators are currently supported:</p>
135300
<table cellspacing="0" cellpadding="0" border="0" class="full margin-bottom-large">
@@ -168,13 +333,104 @@ sdk.database.listDocuments('movies', [
168333
</table>
169334

170335
<p>Each query string is logically separated via AND. For OR logic, pass multiple values, separated by commas:</p>
171-
<div class="ide" data-lang="javascript" data-lang-label="Web SDK">
172-
<pre class="line-numbers"><code class="prism language-javascript" data-prism>sdk.database.listDocuments('movies', [
173-
Query.equal('title', 'Avatar', 'Lord of the Rings'),
174-
Query.greater('year', 1999)
175-
]);
176-
</code></pre>
177-
</div>
336+
<ul class="phases clear" data-ui-phases>
337+
<li>
338+
<h3>Web</h3>
339+
<div class="ide" data-lang="javascript" data-lang-label="Web SDK">
340+
<pre class="line-numbers"><code class="prism language-javascript" data-prism>sdk.database.listDocuments('movies', [
341+
Query.equal('title', 'Avatar', 'Lord of the Rings'),
342+
Query.greater('year', 1999)
343+
]);
344+
</code></pre>
345+
</div>
346+
</li>
347+
<li>
348+
<h3>Flutter</h3>
349+
<div class="ide" data-lang="javascript" data-lang-label="Flutter SDK">
350+
<pre class="line-numbers"><code class="prism language-dart" data-prism>import 'package:appwrite/appwrite.dart';
351+
352+
void main() async {
353+
final client = Client();
354+
final database = Database(client);
355+
try {
356+
final docs = await database.listDocuments(
357+
collectionId: 'movies',
358+
queries: [
359+
Query.equal('title', ['Avatar', 'Lord of the Rings']),
360+
Query.greater('year', 1999),
361+
]);
362+
print(docs.toMap());
363+
} on AppwriteException catch(e) {
364+
print(e);
365+
}
366+
}</code></pre>
367+
</div>
368+
</li>
369+
<li>
370+
<h3>Android</h3>
371+
<div class="ide" data-lang="kotlin" data-lang-label="Android SDK">
372+
<pre class="line-numbers"><code class="prism language-kotlin" data-prism>import androidx.appcompat.app.AppCompatActivity
373+
import android.os.Bundle
374+
import kotlinx.coroutines.GlobalScope
375+
import kotlinx.coroutines.launch
376+
import io.appwrite.Client
377+
import io.appwrite.services.Database
378+
import io.appwrite.Query
379+
380+
class MainActivity : AppCompatActivity() {
381+
override fun onCreate(savedInstanceState: Bundle?) {
382+
super.onCreate(savedInstanceState)
383+
setContentView(R.layout.activity_main)
384+
385+
val client = Client(applicationContext)
386+
.setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
387+
.setProject("5df5acd0d48c2") // Your project ID
388+
389+
val database = Database(client)
390+
391+
GlobalScope.launch {
392+
val response = database.listDocuments(
393+
collectionId = "[COLLECTION_ID]",
394+
queries = [
395+
Query.equal('title', ['Avatar', 'Lord of the Rings']),
396+
Query.greater('year', 1999),
397+
],
398+
)
399+
val json = response.body?.string()
400+
}
401+
}
402+
}</code></pre>
403+
</div>
404+
</li>
405+
<li>
406+
<h3>iOS</h3>
407+
<div class="ide" data-lang="swift" data-lang-label="Apple SDK">
408+
<pre class="line-numbers"><code class="prism language-swift" data-prism>import Appwrite
409+
410+
func main() {
411+
let client = Client()
412+
.setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
413+
.setProject("my_project") // Your project ID
414+
415+
let database = Database(client)
416+
database.listDocuments(
417+
collectionId: "[COLLECTION_ID]",
418+
queries: [
419+
Query.equal('title', ['Avatar', 'Lord of the Rings']),
420+
Query.greater('year', 1999)
421+
]
422+
) { result in
423+
switch result {
424+
case .failure(let error):
425+
print(error.message)
426+
case .success(let document):
427+
print(String(describing: document)
428+
}
429+
}
430+
}</code></pre>
431+
</div>
432+
</li>
433+
</ul>
178434

179435
<h2><a href="/docs/database#indexes" id="indexes">Indexes</a></h2>
180436
<p>

0 commit comments

Comments
 (0)