SCScript
SCScript
SCScript
Класс для работы с серверными скриптами приложения
.init(id, path)
Инициализация скрипта
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| id | String | Обязательный, если не задан path | Идентификатор серверного скрипта | "57484fb91c5666544db25675" | 
| path | String | Обязательный, если не задан id | Полный путь до скрипта вместе с именем | "/newScript.js" | 
Пример
let script = SCScript(path: "/newScript.js")
let script2 = SCScript(id: "57484fb91c5666544db25675").run(scriptID, pool, callback)
Метод для запуска серверного скрипта
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| scriptID | String | Обязательный | Идентификатор серверного скрипта | "57484fb91c5666544db25675" | 
| pool | [String: AnyObject] | Пул данных, которые будут переданы серверному скрипту | ["data": {"array": [0,1,2,3,"строка"], "logic": false}, "weekday": "friday"] | |
| callback | (Bool, SCError?) -> Void | Коллбэк для выполняемого запроса | 
Пример
SCScript.run("57484fb91c5666544db25675", ["collname": "items", "key": "relToQuests", "val": ["CF4Gk9WP6L", "MwORD9llTM", "Jw4INX328A"]]) {
    success, error in
}.create(callback)
Метод для создания серверного скрипта
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| callback | (Bool, SCError?,[String:Any]?) -> Void | Коллбэк для выполняемого запроса | 
Пример
// инициализируем скрит
let script = SCScript(path: "/newScript.js")
// Дадим права на запуск пользователю с id = HCP8lrIAsV
script.ACL = ["HCP8lrIAsV"]
// Запишем код скрипта
script.code = "console.log(\"test\")"
// Добавим описание
script.description = "test script"
// Вкл или Откл запуск по расписанию
script.isActiveJob = true
// дата запуска
let dateString = "21 Oct 2017 07:45"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy hh:mm"
dateFormatter.timeZone = TimeZone.current
let date = dateFormatter.date(from: dateString)
script.jobStartAt = SCDate(date!)
// Запускать ежедневно
script.jobType = .daily
// в 10 часов 45 минут
script.repeatTimer.daily.hours = 10
script.repeatTimer.daily.minutes = 45
// По понедельникам и средам
script.repeatTimer.daily.on = [1,3]
// Создадим скрипт на сервере
script.create { (success, error, result) in
    print(result)
}.load(callback)
Метод для загрузки настроек серверного скрипта
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| callback | (Bool, SCError?,[String:Any]?) -> Void | Коллбэк для выполняемого запроса | 
Пример
let script = SCScript(id: "5909ac0176e5e712788c9b66")
script.load { (success, error, result) in
    print(script.code)
}.save(callback)
Метод для сохранения настроек серверного скрипта
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| callback | (Bool, SCError?,[String:Any]?) -> Void | Коллбэк для выполняемого запроса | 
Пример
// Инициализируем существующий скрипт
let script = SCScript(id: "5909ac0176e5e712788c9b66")
// Загрузим настройки скрипта
script.load { (success, error, result) in
    if error == nil {
        // Если все ок, добавим права на запуск пользователю с id = HCP8lrIAsV
        script.ACL.append("HCP8lrIAsV")
        // Изменим код срипта
        script.code = "console.log(\"this is new code\")"
        // Сохраним изменения на сервер
        script.save(callback: { (success, error, result) in
            print(result)
        })
    }
}.delete(callback)
Метод для удаления серверного скрипта
| Параметр | Тип | Свойства | Описание | Пример значения | 
|---|---|---|---|---|
| callback | (Bool, SCError?,[String:Any]?) -> Void | Коллбэк для выполняемого запроса | 
Пример
let script = SCScript(id: "5909ac0176e5e712788c9b66")
script.delete { (success, error, result) in
    if error == nil {
        print("Скрипт удален")
    }
}