SCCollection

SCCollection

Класс для работы с коллекциями приложения


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)
        })
    }
}