Current section

Files

Jump to
cwmp_ex lib generate change_du_state.ex
Raw

lib/generate/change_du_state.ex

defimpl CWMP.Protocol.Generate, for: CWMP.Protocol.Messages.ChangeDUState do
import XmlBuilder
def generate(req) do
operations=for op <- req.operations, do: generateOperation(op)
element("cwmp:ChangeDUState", [
element(:CommandKey, req.commandkey),
element(:Operations, operations) ])
end
# Based on the type of op, we create suitable elements
defp generateOperation(op) do
case op do
%CWMP.Protocol.Messages.InstallOpStruct{url: url, uuid: uuid, username: user, password: pass, execution_env_ref: eer} -> element(:InstallOpStruct,[
element(:URL,url),
element(:UUID,uuid),
element(:Username,user),
element(:Password,pass),
element(:ExecutionEnvRef,eer)])
%CWMP.Protocol.Messages.UpdateOpStruct{url: url, uuid: uuid, username: user, password: pass, version: ver} -> element(:UpdateOpStruct,[
element(:URL,url),
element(:UUID,uuid),
element(:Username,user),
element(:Password,pass),
element(:Version,ver)])
%CWMP.Protocol.Messages.UninstallOpStruct{url: url, uuid: uuid, execution_env_ref: eer} -> element(:UninstallOpStruct,[
element(:URL,url),
element(:UUID,uuid),
element(:ExecutionEnvRef,eer)])
_ -> raise "Undefined ChangeDUState Operation Structure"
end
end
end