SCCollection
SCCollection
Класс для работы с коллекциями приложения
- SCCollection- init(id, name)
- .create(callback)
- .save(callback)
- .delete(callback)
- .clone(name,callback)
- .load(callback)
- .createIndex(indexName,fieldName,order,callback)
- .deleteIndex(indexName,callback)
- .createField(fieldName,fieldType,targetCollectionName,callback)
- .deleteField(fieldName,callback)
- .saveTriggers(callback)
 
init(id, name)
Инициализация SCСollection
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| id | String | Необязательный | id коллекции | "98bc4bacb5edea727cfb8fae25f71b59" | 
| name | String | Обязательный | Имя коллекции | "Books" | 
Пример
let collection = SCCollection(name: "Books").create(callback)
Метод для создания новой коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализуем коллекцию
let collection = SCCollection(name: "Books")
// Дадим права на удаление записей коллекции двум пользователям с id = axCBar6eJI и 2lk8PTaVjH
collection.useDocsACL = true
collection.acl.remove = SCArray(stringArray: ["axCBar6eJI", "2lk8PTaVjH"])
collection.create() {
    (success, error, result) in
    print(result)
}.save(callback)
Метод сохранения параметров коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализируем коллекцию
let collection = SCCollection(name: "books")
// Загрузим параметры существующей коллекции
collection.load {
    (success, error, result) in
    if error == nil {
        // дополним список пользователей, которым разрешено удалять записи коллекции, пользователем с id = snvrEKS1hs
        collection.acl.remove.append("snvrEKS1hs")
        // сохраним параметры коллекции
        collection.save {
            (success, error, result) in
            print(result)
        }
    }
}.delete(callback)
Метод для удаления коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализируем коллекцию
let collection = SCCollection(name: "books")
// Удалим коллекцию
collection.delete(callback: { (success, error, result) in
    print(result)
}).clone(name, callback)
Метод для создания копии существующей коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| name | String | Обязательный | Имя новой коллекции | "BooksCopy" | 
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализируем коллекцию
let collection = SCCollection(name: "books")
// Зададим настройки коллекции
collection.acl.remove = ["3TB1tL5v7m", "HCP8lrIAsV"]
collection.useDocsACL = true
// Создадим коллекцию
collection.create {(success, error, result) in
    if error == nil {
        // Если коллекция создалась успешно, то создадим копию коллекции с новым именем "books_copy"
        collection.clone(name: "books_copy", callback: { (success, error, result) in
            print(result)
        })
    }
}.load(callback)
Загрузка триггеров и настроек конкретной коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализируем коллекцию
let collection = SCCollection(name: "books")
// Загрузим настройки и триггеры коллекции
collection.load { (success, error, result) in
    if error == nil {
        print(collection.acl.remove)
        print(collection.triggers.afterUpdate.code)
    }
}.createIndex(indexName,fieldName,order,callback)
Создание индекса коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| indexName | String | Обязательный | Название индекса | "UserNameIndex" | 
| fieldName | String | Обязательный | Имя поля коллекции | "Name" | 
| order | IndexSortOrder | Обязательный | Сортировка | .descending | 
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализируем коллекцию
let collection = SCCollection(name: "users")
// Создадим индекс с именем "UserNameIndex" для поля "name" с сортировкой по убыванию
collection.createIndex(indexName: "UserNameIndex", fieldName: "name", order: .descending) {
    (success, error, result) in
    print(result)
}.deleteIndex(indexName,callback)
Удаление индекса коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| indexName | String | Обязательный | Название индекса | "UserNameIndex" | 
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализируем коллекцию
let collection = SCCollection(name: "users")
// Удалим индекс "UserNameIndex"
collection.deleteIndex(indexName: "UserNameIndex") {
    (succes, error, result) in
    print(result)
}.createField(fieldName,fieldType,targetCollectionName,callback)
Создание поля коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| fieldName | String | Обязательный | Имя поля | "town" | 
| fieldType | FieldType | Обязательный | Тип Поля | .Pointer | 
| targetCollectionName | String | Обязательный для полей с типом .Pointer или .Relation | Имя целевой коллекции | "towns" | 
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализируем коллекцию
let collection = SCCollection(name: "users")
// добавим пользователям поле "town" и свяжем это поле с коллекцией "towns"
collection.createField(fieldName: "town", fieldType: .Pointer, targetCollectionName: "towns") { (success, error, result) in
    print(result)
}.deleteField(fieldName,callback)
Удаление поля коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| fieldName | String | Обязательный | Имя поля | "town" | 
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализируем коллекцию
let collection = SCCollection(name: "users")
// Удалим поле "town"
collection.deleteField(fieldName: "town") { (success, error, result) in
    print(result)
}.saveTriggers(callback)
Сохранение триггеров коллекции
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| callback | (Bool, SCError?, [String: AnyObject]?) -> Void | Коллбэк для выполняемого запроса. | 
Пример
// Инициализируем коллекцию
let collection = SCCollection(name: "users")
// Загрузим триггеры коллекции
collection.load { (success, error, result) in
    if error == nil {
        // если все ок, то изменим некоторые триггеры
        collection.triggers.afterUpdate.isActive = true
        collection.triggers.afterUpdate.code = "console.log(\"after update trigger\")"
        let isActive = collection.triggers.beforeRemove.isActive
        collection.triggers.beforeRemove.isActive = !isActive
        // запишем изменения
        collection.saveTriggers(callback: { (success, error, result) in
            print(result)
        })
    }
}