1:- module(bitrix24_crm, [
    2             lead_add/3,
    3             lead_add/4,
    4             lead_get/3,
    5             lead_get/4,
    6             lead_list/3,
    7             lead_list/4,
    8             lead_update/4,
    9             lead_update/5,
   10             activity_add/3,
   11             activity_add/4,
   12             activity_list/3,
   13             activity_list/4,
   14             contact_add/3,
   15             contact_add/4,
   16             deal_list/3,
   17             deal_list/4,
   18             contact_list/3,
   19             contact_list/4,
   20             duplicate_find_by_comm/3,
   21             duplicate_find_by_comm/4,
   22             lead_contact_add/4,
   23             lead_contact_add/5,
   24             lead_contact_items_get/3,
   25             lead_contact_items_get/4,
   26             lead_productrows_set/4,
   27             lead_productrows_set/5,
   28             product_list/3,
   29             product_list/4
   30         ]).   31
   32:- use_module(bitrix24_rest).   33
   34lead_add(Provider, Params, Result) :-
   35    bitrix24_rest:api_call(Provider, 'crm.lead.add', Params, Result).
   36
   37lead_add(Provider, ContextRef, Params, Result) :-
   38    bitrix24_rest:api_call(Provider, ContextRef, 'crm.lead.add', Params, Result).
   39
   40lead_get(Provider, Params, Result) :-
   41    bitrix24_rest:api_call(Provider, 'crm.lead.get', Params, Result).
   42
   43lead_get(Provider, ContextRef, Params, Result) :-
   44    bitrix24_rest:api_call(Provider, ContextRef, 'crm.lead.get', Params, Result).
   45
   46lead_list(Provider, Params, Result) :-
   47    bitrix24_rest:api_call(Provider, 'crm.lead.list', Params, Result).
   48
   49lead_list(Provider, ContextRef, Params, Result) :-
   50    bitrix24_rest:api_call(Provider, ContextRef, 'crm.lead.list', Params, Result).
   51
   52lead_update(Provider, Id, Fields, Result) :-
   53    bitrix24_rest:api_call(Provider, 'crm.lead.update', [id=Id, fields=Fields], Result).
   54
   55lead_update(Provider, ContextRef, Id, Fields, Result) :-
   56    bitrix24_rest:api_call(Provider, ContextRef, 'crm.lead.update', [id=Id, fields=Fields], Result).
   57
   58activity_add(Provider, Params, Result) :-
   59    bitrix24_rest:api_call(Provider, 'crm.activity.add', Params, Result).
   60
   61activity_add(Provider, ContextRef, Params, Result) :-
   62    bitrix24_rest:api_call(Provider, ContextRef, 'crm.activity.add', Params, Result).
   63
   64activity_list(Provider, Params, Result) :-
   65    bitrix24_rest:api_call(Provider, 'crm.activity.list', Params, Result).
   66
   67activity_list(Provider, ContextRef, Params, Result) :-
   68    bitrix24_rest:api_call(Provider, ContextRef, 'crm.activity.list', Params, Result).
   69
   70contact_add(Provider, Params, Result) :-
   71    bitrix24_rest:api_call(Provider, 'crm.contact.add', Params, Result).
   72
   73contact_add(Provider, ContextRef, Params, Result) :-
   74    bitrix24_rest:api_call(Provider, ContextRef, 'crm.contact.add', Params, Result).
   75
   76deal_list(Provider, Params, Result) :-
   77    bitrix24_rest:api_call(Provider, 'crm.deal.list', Params, Result).
   78
   79deal_list(Provider, ContextRef, Params, Result) :-
   80    bitrix24_rest:api_call(Provider, ContextRef, 'crm.deal.list', Params, Result).
   81
   82contact_list(Provider, Params, Result) :-
   83    bitrix24_rest:api_call(Provider, 'crm.contact.list', Params, Result).
   84
   85contact_list(Provider, ContextRef, Params, Result) :-
   86    bitrix24_rest:api_call(Provider, ContextRef, 'crm.contact.list', Params, Result).
   87
   88duplicate_find_by_comm(Provider, Params, Result) :-
   89    bitrix24_rest:api_call(Provider, 'crm.duplicate.findbycomm', Params, Result).
   90
   91duplicate_find_by_comm(Provider, ContextRef, Params, Result) :-
   92    bitrix24_rest:api_call(Provider, ContextRef, 'crm.duplicate.findbycomm', Params, Result).
   93
   94lead_contact_add(Provider, Id, Fields, Result) :-
   95    bitrix24_rest:api_call(Provider, 'crm.lead.contact.add', [id=Id, fields=Fields], Result).
   96
   97lead_contact_add(Provider, ContextRef, Id, Fields, Result) :-
   98    bitrix24_rest:api_call(Provider, ContextRef, 'crm.lead.contact.add',
   99                           [id=Id, fields=Fields], Result).
  100
  101lead_contact_items_get(Provider, Params, Result) :-
  102    bitrix24_rest:api_call(Provider, 'crm.lead.contact.items.get', Params, Result).
  103
  104lead_contact_items_get(Provider, ContextRef, Params, Result) :-
  105    bitrix24_rest:api_call(Provider, ContextRef, 'crm.lead.contact.items.get', Params, Result).
  106
  107lead_productrows_set(Provider, Id, Rows, Result) :-
  108    bitrix24_rest:api_call(Provider, 'crm.lead.productrows.set', [id=Id, rows=Rows], Result).
  109
  110lead_productrows_set(Provider, ContextRef, Id, Rows, Result) :-
  111    bitrix24_rest:api_call(Provider, ContextRef, 'crm.lead.productrows.set',
  112                           [id=Id, rows=Rows], Result).
  113
  114product_list(Provider, Params, Result) :-
  115    bitrix24_rest:api_call(Provider, 'crm.product.list', Params, Result).
  116
  117product_list(Provider, ContextRef, Params, Result) :-
  118    bitrix24_rest:api_call(Provider, ContextRef, 'crm.product.list', Params, Result)