Packages

TENDER Smart Tender Prozorro Middleware

Current section

Files

Jump to
tender lib app.ex
Raw

lib/app.ex

defmodule TENDER do
require Record
require N2O
use Application
def verify() do
{:ssl, [{:verify, :verify_none}]}
end
def start(_, _) do
:logger.add_handlers(:n2o)
app = Supervisor.start_link([], strategy: :one_for_one, name: TENDER)
pass = :application.get_env(:n2o, :tender_pass, "")
login = :application.get_env(:n2o, :tender_login, "")
:n2o_pi.start(N2O.pi(module: TENDER, table: :tender, sup: TENDER,
state: {"tenderLink", login, pass, 0}, name: "tenderLink"))
app
end
def send(to, doc) do
:gen_server.cast :n2o_pi.pid(:tender, "tenderLink"), {:send, "tenderLink", to, doc}
end
def down(id) do
:gen_server.cast :n2o_pi.pid(:tender, "tenderLink"), {:download, id}
end
def proc(:init, pi) do
{:ok, pi}
end
def proc({:send, from, to, doc}, N2O.pi(state: {_, login, pass, cnt}) = pi) do
TENDER.UP.start(login, pass, from, to, doc, cnt)
{:noreply, pi}
end
def proc({:download, msg_id}, N2O.pi(state: {_, login, pass, _}) = pi) do
TENDER.DOWN.start(login, pass, msg_id)
{:noreply, pi}
end
# helpers
def error(f, x), do: :logger.error(:io_lib.format('TENDER ' ++ f, x))
def warning(f, x), do: :logger.warning(:io_lib.format('TENDER ' ++ f, x))
def debug(f, x), do: :logger.debug(:io_lib.format('TENDER ' ++ f, x))
def info(f, x), do: :logger.info(:io_lib.format('TENDER ' ++ f, x))
# REST/JSON API
def to_list(x) when is_integer(x), do: :erlang.integer_to_list(x)
def to_list(x) when is_binary(x), do: :erlang.binary_to_list(x)
def to_list(x) when is_map(x), do: :maps.to_list(x)
def to_list(x) when is_list(x), do: x
def to_list(x), do: :io_lib.format '~p', [x]
def to_atom(x) when is_integer(x), do: :erlang.list_to_atom(:erlang.integer_to_list(x))
def to_atom(x) when is_binary(x), do: :erlang.list_to_atom(:erlang.binary_to_list(x))
def to_atom(x), do: :io_lib.format '~p', [x]
def decode(""), do: []
def decode(x), do: :jsone.decode(x)
def cancel(doc), do: spawn(fn -> :timer.sleep(2000) ; :n2o_pi.stop(:tender, doc) end)
def convert(list) when is_map(list) do
convert(:maps.to_list(list))
end
def convert(list) when is_list(list) do
case list do
[] -> []
x -> case hd(x) do
%{} -> :lists.map fn map -> convert(map) end, list
_ -> :lists.map fn {k,v} -> {to_atom(k),convert(v)} end, list
end
end
end
def convert(x) do
x
end
def createPlan() do
createPlan(%{"mode" => "test", "scheme" => "ДК021", "id" => "22990000-6",
"method" => "aboveThresholdUA", "currency" => "UAH"})
end
def participationRequest(id) do
json = [
userLogin: "testWebApi@smarttender.biz",
id: id,
lotsIds: [4631597]
]
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ParticipationRequests'
bearer = :application.get_env(:n2o, :tender_bearer, [])
accept = 'application/json'
headers = [{'Authorization',bearer},{'accept',accept}]
{:ok,{{_,status,_},_headers,body}} = :httpc.request(:post, {url, headers, accept, :jsone.encode(json)},
[{:timeout,100000},verify()], [{:body_format,:binary}])
info '~p', [{body}]
case status do
201 ->
case decode(body) do
x when is_map(x) ->
[
status: convert(:maps.get("status", x, [])),
]
_ -> []
end
_ -> info 'ERROR/participationRequest: ~p', [body]
end
end
def downloadFile(tender,file) do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'Tenders/' ++ to_list(tender) ++ '/documents/' ++ to_list(file)
bearer = :application.get_env(:n2o, :tender_bearer, [])
accept = 'text/plain'
headers = [{'Authorization',bearer},{'accept',accept}]
{:ok,{{_,status,_},_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
case status do
200 ->
case decode(body) do
y when is_map(y) ->
[
id: convert(:maps.get("id", y, [])),
title: convert(:maps.get("title", y, [])),
url: convert(:maps.get("url", y, [])),
dateModified: convert(:maps.get("dateModified", y, [])),
]
_ -> []
end
_ -> info 'ERROR/downloadFile: ~p', [status]
end
end
def listFiles(id) do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'Tenders/' ++ to_list(id) ++ '/documents'
bearer = :application.get_env(:n2o, :tender_bearer, [])
accept = 'text/plain'
headers = [{'Authorization',bearer},{'accept',accept}]
{:ok,{{_,status,_},_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
case status do
200 ->
case decode(body) do
x when is_list(x) ->
:lists.map(fn y ->
[
id: convert(:maps.get("id", y, [])),
title: convert(:maps.get("title", y, [])),
url: convert(:maps.get("url", y, [])),
dateModified: convert(:maps.get("dateModified", y, [])),
]
end, x)
_ -> []
end
_ -> info 'ERROR/listFiles: ~p', [status]
end
end
def addFile(id) do
json = [
title: "aile",
description: "Desc",
url: "http://5ht.co/index.html",
format: "html",
]
{_,file} = :file.read_file 'N2O.docx'
url = :application.get_env(:n2o, :tender_upload, []) ++ 'Tenders/' ++ to_list(id) ++ '/documents'
bearer = :application.get_env(:n2o, :tender_bearer, [])
accept = 'application/json'
headers = [{'Authorization',bearer},{'accept',accept}]
{:ok,{{_,status,_},_headers,body}} = :httpc.request(:post, {url, headers, accept, file},
[{:timeout,100000},verify()], [{:body_format,:binary}])
info '~p', [{url,file}]
case status do
201 ->
case decode(body) do
x when is_map(x) ->
[
status: convert(:maps.get("status", x, [])),
]
_ -> []
end
_ -> info 'ERROR/addFile: ~p', [body]
end
end
def createTender() do
json = [
title: "Предмет тендеру ІНФОТЕХ ТЕСТ",
description: "Опис тендеру ІНФОТЕХ ТЕСТ",
mode: "test",
procurementMethodType: "belowThreshold",
mainProcurementCategory: "works",
organizer: [contactPoint: [login: "testOrganizerWebApi@smarttender.biz"]],
enquiryPeriod: [dateEnd: "2022-12-16T00:00:00"],
tenderPeriod: [dateStart: "2022-12-17T00:00:00", dateEnd: "2022-12-21T00:00:00"],
lots: [ [title: "Предмет лоту", description: "Опис", value: [valueAddedTaxIncluded: true, amount: 100000, currency: "UAH"],
minimalStep: 3000, paymentTerms: [
[
type: "prepayment",
event: "deliveryOfGoods",
dayType: "banking",
days: 10,
description: "Опис...",
percentage: 100
] ],
items: [ [ description: "Опис номенклатури",
classification: [scheme: "ДК021", id: "22990000-6"],
additionalClassifications: [ [scheme: "ДКПП", id: "55.90"] ],
unitCode: "H87",
quantity: 346,
deliveryDate: [dateStart: "2022-12-30T00:00:00", dateEnd: "2022-12-31T00:00:00"],
deliveryAddress: [postalCode: "03194", streetAddress: "Лесі Українки, 1"]
] ]
] ]
]
url = :application.get_env(:n2o, :tender_upload, []) ++ 'Tenders'
bearer = :application.get_env(:n2o, :tender_bearer, [])
accept = 'application/json'
headers = [{'Authorization',bearer},{'accept','text/plain'},{'Content-Type',accept}]
{:ok,{{_,status,_},_headers,body}} = :httpc.request(:post, {url, headers, accept, :jsone.encode(json)},
[{:timeout,100000},verify()], [{:body_format,:binary}])
case status do
201 ->
case decode(body) do
x when is_map(x) ->
[
mode: convert(:maps.get("number", x, [])),
title: convert(:maps.get("title", x, [])),
description: convert(:maps.get("description", x, [])),
procurementMethodType: convert(:maps.get("procurementMethodType", x, [])),
mainProcurementCategory: convert(:maps.get("mainProcurementCategory", x, [])),
status: convert(:maps.get("status", x, [])),
classification: convert(:maps.get("classification", x, [])),
value: convert(:maps.get("value", x, [])),
organizer: convert(:maps.get("organizer", x, [])),
enquiryPeriod: convert(:maps.get("enquiryPeriod", x, [])),
tenderPeriod: convert(:maps.get("tenderPeriod", x, [])),
features: convert(:maps.get("features", x, [])),
lots: convert(:maps.get("lots", x, [])),
id: convert(:maps.get("id", x, [])),
dateModified: convert(:maps.get("dateModified", x, [])),
]
_ -> []
end
_ -> info 'ERROR/createPlan: ~p', [body]
end
end
def createPlan(o) do
mode = :maps.get("mode", o, [])
scheme = :maps.get("scheme", o, [])
id = :maps.get("id", o, [])
method = :maps.get("method", o, [])
currency = :maps.get("currency", o, [])
json = [ mode: mode,
tender: [procurementMethodType: method,
tenderPeriod: [dateStart: "2022-12-01T11:38:59.324Z"]],
classification: [scheme: scheme, id: id],
additionalClassifications: [[scheme: "КЕКВ", id: "2000"]],
budget: [year: 2022, yearPeriod: [yearFrom: 2020, yearTo: 2020],
description: "Test", currency: currency, amount: 10000, notes: "notes",
financingSources: [[title: "state", description: "string", amount: 20]]],
items: [[description: "item description",
classification: [scheme: scheme, id: id],
unitCode: "H87",
quantity: 7,
deliveryDate: [dateStart: "2022-12-07T00:00:00", dateEnd: "2022-12-07T00:00:00"]
]],
organizer: [contactPoint: [login: "testOrganizerWebApi@smarttender.biz"]]
]
url = :application.get_env(:n2o, :tender_upload, []) ++ 'Plans'
bearer = :application.get_env(:n2o, :tender_bearer, [])
accept = 'application/json'
headers = [{'Authorization',bearer},{'accept','text/plain'},{'Content-Type',accept}]
{:ok,{{_,status,_},_headers,body}} = :httpc.request(:post, {url, headers, accept, :jsone.encode(json)},
[{:timeout,100000},verify()], [{:body_format,:binary}])
case status do
201 ->
case decode(body) do
x when is_map(x) ->
[
id: convert(:maps.get("id", x, [])),
mode: convert(:maps.get("mode", x, [])),
status: convert(:maps.get("status", x, [])),
dateCreated: convert(:maps.get("dateCreated", x, [])),
tender: convert(:maps.get("tender", x, [])),
classification: convert(:maps.get("classification", x, [])),
additionalClassifications: convert(:maps.get("additionalClassification", x, [])),
organizer: convert(:maps.get("organizer", x, [])),
budget: convert(:maps.get("budget", x, [])),
items: convert(:maps.get("items", x, [])),
]
_ -> []
end
_ -> info 'ERROR/createPlan: ~p', [body]
end
end
def getPlan(id) do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'Plans/' ++ to_list(id)
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','text/plain'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = case decode(body) do
x when is_map(x) ->
[ mode: :maps.get("mode", x, []),
tender: convert(:maps.get("tender", x, []) |> :maps.to_list),
classification: convert(:maps.get("classification", x, [])),
additionalClassification: :maps.get("additionalClassification", x, []),
organizer: convert(:maps.get("organizer", x, [])),
dateCreated: :maps.get("dateCreated", x, []),
status: :maps.get("status", x, []),
id: :maps.get("id", x, []),
externalId: :maps.get("externalId", x, []),
cdbId: :maps.get("cdbId", x, []),
items: :maps.get("items", x, []),
dateModified: :maps.get("dateModifed", x, []),
datePublished: :maps.get("datePublished", x, []),
dateCreated: :maps.get("dateCreated", x, []),
]
_ -> info 'ERROR/getPlan: ~p', [body]
end
json
end
def getTender(id) do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'Tenders/' ++ to_list(id)
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','text/plain'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = case decode(body) do
x when is_map(x) ->
[
mode: convert(:maps.get("number", x, [])),
title: convert(:maps.get("title", x, [])),
description: convert(:maps.get("description", x, [])),
procurementMethodType: convert(:maps.get("procurementMethodType", x, [])),
mainProcurementCategory: convert(:maps.get("mainProcurementCategory", x, [])),
status: convert(:maps.get("status", x, [])),
classification: convert(:maps.get("classification", x, [])),
value: convert(:maps.get("value", x, [])),
organizer: convert(:maps.get("organizer", x, [])),
enquiryPeriod: convert(:maps.get("enquiryPeriod", x, [])),
tenderPeriod: convert(:maps.get("tenderPeriod", x, [])),
features: convert(:maps.get("features", x, [])),
lots: convert(:maps.get("lots", x, [])),
id: convert(:maps.get("id", x, [])),
dateModified: convert(:maps.get("dateModified", x, [])),
]
_ -> info 'ERROR/getTender: ~p', [body]
end
json
end
def listPlans() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'Plans'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','text/plain'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = case :jsone.decode(body) do
x = %{} -> x
_ -> []
end
lastDateModified = :maps.get("lastDateModified", json)
data = :maps.get("data", json)
list = :lists.map fn map ->
dateModified = :maps.get "dateModified", map, []
id = :maps.get "id", map, []
{dateModified,id} end, data
[lastDateModified: lastDateModified, data: list]
end
def listTenders() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'Tenders'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','text/plain'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = case :jsone.decode(body) do
x = %{} -> x
_ -> []
end
lastDateModified = :maps.get("lastDateModified", json)
data = :maps.get("data", json)
list = :lists.map fn map ->
dateModified = :maps.get "dateModified", map, []
id = :maps.get "id", map, []
{dateModified,id} end, data
[lastDateModified: lastDateModified, data: list]
end
def catTenderStatuses() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/tenderStatuses'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catLotStatuses() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/lotStatuses'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catUnits() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/units'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
shortTitle = :maps.get "shortTitle", map, []
id = :maps.get "id", map, []
{id,shortTitle,title} end, json
end
def catCurrencies() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/currencies'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catCurrencies() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/currencies'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catTradeGoalTypes() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/tradeGoalTypes'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catProcurementMethodTypes() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/procurementMethodTypes'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catProcurementMethodRationales() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/procurementMethodRationales'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catIdentifierSchemes() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/identifierSchemes'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catClassificationSchemes() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/classificationSchemes'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catClassificationSchemes() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/classificationSchemes'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def classificationSchemes(id) do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/classificationSchemes/' ++ URI.encode(id)
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catCities() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/cities'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
cn = :maps.get "countryName", map, []
region = :maps.get "region", map, []
locality = :maps.get "locality", map, []
{cn,region,locality} end, json
end
def catMainProcurementCategories() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/mainProcurementCategories'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catDayTypes() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/dayTypes'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catPaymentTermEvents() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/paymentTermEvents'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catPaymentTermTypes() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/paymentTermTypes'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catComplaintTypes() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/complaintTypes'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catComplaintStatuses() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/complaintStatuses'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catBidStatuses() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/bidStatuses'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catAwardStatuses() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/awardStatuses'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catContractStatuses() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/contractStatuses'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def catPreQualificationStatuses() do
url = :application.get_env(:n2o, :tender_upload, []) ++ 'ReferenceBooks/preQualificationStatuses'
bearer = :application.get_env(:n2o, :tender_bearer, [])
headers = [{'Authorization',bearer},{'accept','*'}]
{:ok,{status,_headers,body}} = :httpc.request(:get, {url, headers},
[{:timeout,100000},verify()], [{:body_format,:binary}])
json = :jsone.decode(body)
:lists.map fn map ->
title = :maps.get "title", map, []
id = :maps.get "id", map, []
{id,title} end, json
end
def dumpDKPP() do
x = TENDER.classificationSchemes "ДКПП"
:lists.map fn {x,y} -> :io.format '~ts:~ts~n', [x,y] end, :lists.sort(x)
length(x)
end
def dumpDK21() do
x = TENDER.classificationSchemes "ДК021"
:lists.map fn {x,y} -> :io.format '~ts:~ts~n', [x,y] end, :lists.sort(x)
length(x)
end
end