GetCourse

Добавление пользователя#

Этот подпоток добавляет пользователя в GetCourse. Если пользователь уже существует, тогда он будет просто добавлен в указанные группы в GetCourse.

Подпоток добавления пользователя в GetCourse

JSON-код подпотока для копирования#

[
{
"id": "754de3aa.f0615c",
"type": "subflow",
"name": "Добав польз GetCourse",
"info": "# Входные данные\n\n- `msg.addToGC` объект:\n - `first_name` - (строка) имя\n - `last_name` - (строка) фамилия\n - `email` - (строка) емэйл\n - `groups` - (массив строк) группы в ГетКурс",
"category": "",
"in": [
{
"x": 80,
"y": 180,
"wires": [
{
"id": "d07dc97f.61e048"
}
]
}
],
"out": [
{
"x": 760,
"y": 140,
"wires": [
{
"id": "b2e3a459.05af88",
"port": 0
}
]
},
{
"x": 760,
"y": 220,
"wires": [
{
"id": "b2e3a459.05af88",
"port": 1
}
]
}
],
"env": [
{
"name": "ACCOUNT",
"type": "str",
"value": "",
"ui": {
"label": {
"en-US": "Account",
"ru": "Аккаунт"
},
"type": "input",
"opts": {
"types": [
"str"
]
}
}
},
{
"name": "KEY",
"type": "cred",
"ui": {
"label": {
"ru": "Ключ",
"en-US": "Key"
},
"type": "input",
"opts": {
"types": [
"cred"
]
}
}
}
],
"color": "#b6f2ec",
"outputLabels": [
"Успеное добавление",
"Ошибка"
],
"icon": "font-awesome/fa-graduation-cap"
},
{
"id": "d07dc97f.61e048",
"type": "function",
"z": "754de3aa.f0615c",
"name": "Подготов данных",
"func": "const data = {\n user: {\n email: msg.addToGC.email,\n first_name: msg.addToGC.first_name,\n last_name: msg.addToGC.last_name,\n group_name: msg.addToGC.groups\n },\n system: {\n refresh_if_exists: 1\n }\n}\n\nconst jsonData = JSON.stringify(data)\nconst buffData = Buffer.from(jsonData)\nconst base64Data = buffData.toString('base64')\n\nmsg.url = `https://${env.get(\"ACCOUNT\")}.getcourse.ru/pl/api/users`;\nmsg.headers = { 'content-type': 'application/x-www-form-urlencoded' };\nmsg.payload = `action=add&key=${env.get(\"KEY\")}&params=${base64Data}`;\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 310,
"y": 160,
"wires": [
[
"419943ab.f4725c"
]
]
},
{
"id": "419943ab.f4725c",
"type": "http request",
"z": "754de3aa.f0615c",
"name": "",
"method": "POST",
"ret": "obj",
"paytoqs": "ignore",
"url": "",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"x": 320,
"y": 200,
"wires": [
[
"b2e3a459.05af88"
]
]
},
{
"id": "b2e3a459.05af88",
"type": "function",
"z": "754de3aa.f0615c",
"name": "Обработка данных",
"func": "const jsonResp = msg.payload;\ndelete msg.payload;\n\nlet err;\n\nif (!jsonResp.success) {\n err = 'Ошибка ГетКурс запроса';\n} else if (!jsonResp.result.success) {\n err = 'Ошибка добавления в ГетКурс: ' + jsonResp.result.error_message;\n}\n\nif (err) {\n msg.gcRes = {\n err: err\n }\n return [null, msg];\n} else {\n msg.gcRes = {\n user_id: jsonResp.result.user_id,\n user_status: jsonResp.result.user_status\n }\n return [msg];\n}",
"outputs": 2,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 570,
"y": 180,
"wires": [
[],
[]
]
},
{
"id": "c2d53f2a.eb709",
"type": "subflow:754de3aa.f0615c",
"z": "e0bb642a.901348",
"name": "",
"x": 880,
"y": 340,
"wires": [
[],
[]
]
}
]

Настройка узла#

  1. Импортируйте подпоток и вставьте узел туда, где вы будете с ним работать
  2. Дважды кликните по узлу, чтобы открыть его настройки
  3. В другой вкладке браузера перейдите на страницу настройки API вашего GetCourse аккаунта по адресу https://ВАШ_АККАУНТ.getcourse.ru/saas/account/api (заменив ВАШ_АККАУНТ вашим аккаунтом)
  4. Сгенерируйте ключ и скопируйте его
  5. Вернитесь в настройки узла в Ботодроме
  6. Вставьте скопированный ключ в поле Ключ
  7. А в поле Аккаунт вставьте ВАШ_АККАУНТ из вашего GetCourse домена ВАШ_АККАУНТ.getcourse.ru
  8. Нажмите Готово и Развернуть

Входные данные узла#

На входе принимает msg.addToGC объект с данными:

  • email - емэйл пользователя. Например: "[email protected]"
  • first_name - имя пользователя. Например: "Иван"
  • last_name - фамилия пользователя. Например: "Иванов"
  • groups - массив групп в GetCourse, в которые добавить пользователя. Например: ["Группа1", "Группа2"]

Выходные данные узла#

После успешного добавления пользователя вызывает исполнение узлов, подключенных к нему через первый порт, передавая им сообщение с ответом от GetCourse в объекте msg.gcRes:

  • user_id - id пользователя
  • user_status - статус пользователя

При получении ответа с ошибкой от GetCourse вызывает исполнение узлов, подключенных к нему через второй порт, передавая им сообщение с подробностями ошибки в объекте msg.gcRes:

  • err - подробности ошибки