defmodule CIPHER.UP do require Record require N2O def start(login, pass, from, to, doc, _cnt) do spawn(fn -> case :n2o_pi.start( N2O.pi( module: __MODULE__, table: :cipher, sup: CIPHER, state: {login, pass, from, to, doc, []}, name: doc)) do {:error, x} -> CIPHER.error 'CIPHER ERROR: ~p', [x] x -> CIPHER.warning 'CIPHER: ~p', [x] end end) end def proc(:init, N2O.pi(state: {login, pass, from, to, doc, _}) = pi) do bearer = case :application.get_env(:n2o, :jwt_prod, false) do false -> :application.get_env(:n2o, :bearer, []) true -> CIPHER.auth(login, pass) end {id,res} = CIPHER.upload(bearer, doc) case {id,res} do {[],_} -> CIPHER.error 'UPLOAD ERROR: ~p', [res] {id,_} -> CIPHER.debug 'UPLOAD ID: ~p', [id] CIPHER.uploadSignature(bearer,id,doc) CIPHER.publish(bearer,id,doc) CIPHER.metainfo(bearer,id,doc) end CIPHER.cancel(doc) {:ok, N2O.pi(pi, state: {login, pass, from, to, doc, id})} end def proc(_,pi) do {:noreply, pi} end end