avito

module
v0.0.0-...-c6cc573 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2023 License: GPL-3.0

README

AvitoTest

Это сервис на языке Golang, хранящий пользователей и сегменты, в которых они состоят (создание, изменение, удаление сегментов, а также добавление и удаление пользователей в сегмент)

Требования

  • Golang
  • PostgreSQL
  • Docker

Установка и настройка

  1. Склонируйте репозиторий:

    git clone https://github.com/poggerr/avito.git
    
    
  2. Установите зависимости:

    go mod download
    
    

Запуск сервиса

  1. Запустите базу данных PostgreSQL и сервис с помощью Docker:
    docker-compose up --build
    
    

Использование

REST API Запросы
  1. Создание сегмента:

    POST localhost:8080/api/segment/create
    Content-Type: application/json
    
    {
       "segment": "AVITO_VOICE_MESSAGES"
    }
    
    
  2. Добавление пользователя в сегмент:

    POST localhost:8080/api/user/segment
    Content-Type: application/json
    
    {
      "add" : ["AVITO_VOICE_MESSAGES"],
      "delete" : [],
      "user" : "2376e110-e40d-41d0-85ba-22db804c4f51"
    }
    
    
  3. Удаление сегмента

    POST localhost:8080/api/segment/delete
    Content-Type: application/json
    
    {
       "segment": "AVITO_VOICE_MESSAGES"
    }
    
    
  4. Удаление пользователя из сегмента

    POST localhost:8080/api/user/segment
    Content-Type: application/json
    
    {
       "add" : [],
       "delete" : ["AVITO_VOICE_MESSAGES"],
       "user" : "2376e110-e40d-41d0-85ba-22db804c4f51"
    }
    
    
  5. Вывод сегментов пользователя

    GET localhost:8080/api/segment/2376e110-e40d-41d0-85ba-22db804c4f51
    Content-Type: text/plain
    
    
  6. Создание отчета в формате CSV пользовательских сегментов

    POST localhost:8080/api/segment/csv/2376e110-e40d-41d0-85ba-22db804c4f51
    Content-Type: application/json
    
    {
       "period": "30-2023"
    }
    
    

Тестирование

Вы можете запустить unit-тесты с помощью следующей команды:

go test

Вклад

Если вы нашли ошибку или хотите внести улучшения, пожалуйста, создайте issue или отправьте pull request.

Лицензия

Этот проект лицензирован под MIT License - подробности см. в файле LICENSE.

Directories

Path Synopsis
cmd
internal
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL