Ei kuvausta

Nikita Chursin 4e34545c85 fixed docker-compose 2 vuotta sitten
api 56dee455f9 added interfaces 3 vuotta sitten
config c32b84e792 fixed typo 3 vuotta sitten
redis b23381743c .env 3 vuotta sitten
structs 42ff6f405f fixed typo on подробности 3 vuotta sitten
telegram 56dee455f9 added interfaces 3 vuotta sitten
.gitignore b23381743c .env 3 vuotta sitten
Dockerfile be38c247ee minor fixes to the makefile and gitignore 3 vuotta sitten
Makefile b97006e06a readme and updates to config 3 vuotta sitten
README.md 5821b987dd added form script 3 vuotta sitten
docker-compose.yml 4e34545c85 fixed docker-compose 2 vuotta sitten
go.mod ca86aec98c godotenv dependency 3 vuotta sitten
go.sum ca86aec98c godotenv dependency 3 vuotta sitten
server.go 9d985cfde6 everything works 3 vuotta sitten

README.md

Salesforce RU Careers Control Bot

This is the bot, that converts Salesforce RU Careers from Google Form responses to Telegram posts.

Configuration

  1. Create a new bot
  2. Add bot to your chat/channel. Bot has to be an admin to post message to channel.
  3. Create .env file: BOT_TOKEN=<yout bot token> CHANNEL=@<your channel>
  4. Make docker image
  5. Update docker-compose to use correct image
  6. Add the following script to your Google Form: ```javascript const BOT_URL = "";
  7. const fieldMaps = {

    // <question text>: <field name in code>
    // e.g.:
    "Кого ищете?": "position",
    "Компания": "company",
    "Город": "city",
    "Зарплата": "salary"
    

    } function onSubmit(e) {

    const form = FormApp.getActiveForm();
    const formId = form.getId();
    const allResponses = form.getResponses();
    const latestResponse = allResponses[allResponses.length - 1];
    const responseId = latestResponse.getId();
    const response = latestResponse.getItemResponses();
    const payload = {};
    for (let i = 0; i < response.length; i++) {
        const question = fieldMaps[response[i].getItem().getTitle()];
        const answer = response[i].getResponse();
        payload[question] = answer;
    }
    payload.formId = formId;
    payload.responseId = String(allResponses.length - 1);
    payload.editUrl = latestResponse.getEditResponseUrl();
    
    var options = {
        "method": "post",
        "contentType": "application/json",
        "payload": JSON.stringify(payload)
    };
    UrlFetchApp.fetch(BOT_URL, options);
    

    }; ```

    NB: This instruction is not perfect for sure for multiple reasons. Feel free to contribute to the repo!