Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Есть сайт который работает через свое REST api.

Нужно сделать Ruby библиотеку для удобной работы с REST api этого сайта. Интерфейс библиотеки спроектирован, нужно только реализовать.

Сайт — админка для администрирования антиспама/пользователей антиспама. Есть подробная документация к апи на английском языке, также будет предоставлен доступ к тестовому серверу.

Примерная функциональность которая будет в библиотеке — crud для доменов и их алиасов\мейлсерверов\емейл аккаунтов и их алиасов\ресселеров\контактов\добавление и удаление админов\апдейт настроек политик спама\апдейт нотификаций\добавление удаление черного и белого списка получателей\поиск и фильтрация.

К библиотеки должны быть написаны юнит тесты.

Просьба делать ставки, только если есть достаточно свободного времени, чтобы начать делать библиотеку.

интерфейс библиотеки будет выглядеть так, пример для одного из рест ресурсов. ( код на питоне, аналогично должно будет выглядеть на Ruby с учетом языковых особенностей.)

import apilib

apilib.configure(username="blabla",apikey="blabla")

Reseller resource and common actions/interface.

reseller_list = apilib.Reseller.list() # list

reseller_list = apilib.Reseller.list().limit(20) # list

reseller_list = apilib.Reseller.list().offset(20) # list

reseller = apilib.Reseller.get(id=12) # 1 instance

reseller.name = "newname"

reseller.save()

reseller = apilib.Reseller.get(name="test") # 1 instance

reseller.name # test

reseller.delete()

reseller_list = apilib.Reseller.search("searchstr") # list

reseller_list = apilib.Reseller.filter(name__startswith="begin") # list

reseller_list = apilib.Reseller.filter(name__exact="begin") # list

reseller_list = apilib.Reseller.filter(name="begin") # list

# all list field allow ordering

reseller_list = apilib.Reseller.filter(name="begin").order_by("-name") # list

reseller_list = apilib.Reseller.filter(name="begin").order_by("name") # list

reseller_list = apilib.Reseller.filter(name="begin").order_by("created_at") # list

new_reseller = apilib.Reseller.create(name="newresl")

apilib.Reseller.bulk_create([{'name':"r1"},{"name":"r2"}]) # mass create

apilib.Reseller.delete([reseller1,reseller2]) # mass delete of resellers by instance of list of pk

reseller.customers # list of customers - additional api call , cached

reseller.admins # list of admins - additional api call , cached

reseller.contacts # list of contacts - additional api call , cached

reseller.branding_info # branding info instance for this reseller, api call, cached

reseller.create_admin(email, send_welcome)

reseller.delete_admin(email)

reseller.create_contact(params)

reseller.create_customer(params)

11 лет назад
ShapeRiD
Дмитрий 
36 летБеларусь
11 лет в сервисе
Был
11 лет назад