1
0
Fork 0
mirror of synced 2024-09-09 06:11:09 +12:00
appwrite/app/sdks/client-swift/Sources/Appwrite/Services/Database.swift
2020-08-30 19:23:15 +03:00

183 lines
5.5 KiB
Swift

class Database: Service
{
/**
* List Documents
*
* Get a list of all the user documents. You can use the query params to
* filter your results. On admin mode, this endpoint will return a list of all
* of the project documents. [Learn more about different API
* modes](/docs/admin).
*
* @param String _collectionId
* @param Array<Any> _filters
* @param Int _limit
* @param Int _offset
* @param String _orderField
* @param String _orderType
* @param String _orderCast
* @param String _search
* @throws Exception
* @return array
*/
func listDocuments(_collectionId: String, _filters: Array<Any> = [], _limit: Int = 25, _offset: Int = 0, _orderField: String = "$id", _orderType: String = "ASC", _orderCast: String = "string", _search: String = "") -> Array<Any> {
var path: String = "/database/collections/{collectionId}/documents"
path = path.replacingOccurrences(
of: "{collectionId}",
with: _collectionId
)
var params: [String: Any] = [:]
params["filters"] = _filters
params["limit"] = _limit
params["offset"] = _offset
params["orderField"] = _orderField
params["orderType"] = _orderType
params["orderCast"] = _orderCast
params["search"] = _search
return [self.client.call(method: Client.HTTPMethod.get.rawValue, path: path, headers: [
"content-type": "application/json",
], params: params)];
}
/**
* Create Document
*
* Create a new Document. Before using this route, you should create a new
* collection resource using either a [server
* integration](/docs/server/database?sdk=nodejs#createCollection) API or
* directly from your database console.
*
* @param String _collectionId
* @param object _data
* @param Array<Any> _read
* @param Array<Any> _write
* @throws Exception
* @return array
*/
func createDocument(_collectionId: String, _data: object, _read: Array<Any>, _write: Array<Any>) -> Array<Any> {
var path: String = "/database/collections/{collectionId}/documents"
path = path.replacingOccurrences(
of: "{collectionId}",
with: _collectionId
)
var params: [String: Any] = [:]
params["data"] = _data
params["read"] = _read
params["write"] = _write
return [self.client.call(method: Client.HTTPMethod.post.rawValue, path: path, headers: [
"content-type": "application/json",
], params: params)];
}
/**
* Get Document
*
* Get document by its unique ID. This endpoint response returns a JSON object
* with the document data.
*
* @param String _collectionId
* @param String _documentId
* @throws Exception
* @return array
*/
func getDocument(_collectionId: String, _documentId: String) -> Array<Any> {
var path: String = "/database/collections/{collectionId}/documents/{documentId}"
path = path.replacingOccurrences(
of: "{collectionId}",
with: _collectionId
)
path = path.replacingOccurrences(
of: "{documentId}",
with: _documentId
)
let params: [String: Any] = [:]
return [self.client.call(method: Client.HTTPMethod.get.rawValue, path: path, headers: [
"content-type": "application/json",
], params: params)];
}
/**
* Update Document
*
* @param String _collectionId
* @param String _documentId
* @param object _data
* @param Array<Any> _read
* @param Array<Any> _write
* @throws Exception
* @return array
*/
func updateDocument(_collectionId: String, _documentId: String, _data: object, _read: Array<Any>, _write: Array<Any>) -> Array<Any> {
var path: String = "/database/collections/{collectionId}/documents/{documentId}"
path = path.replacingOccurrences(
of: "{collectionId}",
with: _collectionId
)
path = path.replacingOccurrences(
of: "{documentId}",
with: _documentId
)
var params: [String: Any] = [:]
params["data"] = _data
params["read"] = _read
params["write"] = _write
return [self.client.call(method: Client.HTTPMethod.patch.rawValue, path: path, headers: [
"content-type": "application/json",
], params: params)];
}
/**
* Delete Document
*
* Delete document by its unique ID. This endpoint deletes only the parent
* documents, his attributes and relations to other documents. Child documents
* **will not** be deleted.
*
* @param String _collectionId
* @param String _documentId
* @throws Exception
* @return array
*/
func deleteDocument(_collectionId: String, _documentId: String) -> Array<Any> {
var path: String = "/database/collections/{collectionId}/documents/{documentId}"
path = path.replacingOccurrences(
of: "{collectionId}",
with: _collectionId
)
path = path.replacingOccurrences(
of: "{documentId}",
with: _documentId
)
let params: [String: Any] = [:]
return [self.client.call(method: Client.HTTPMethod.delete.rawValue, path: path, headers: [
"content-type": "application/json",
], params: params)];
}
}