form.py 1.08 KB
import colander
from deform import Form
from .structure import METHOD


class DataRequest(colander.Schema):
    merchant = colander.SchemaNode(colander.String())
    terminal = colander.SchemaNode(colander.String())
    pwd = colander.SchemaNode(colander.String())
    trx_type = colander.SchemaNode(colander.String())
    msisdn = colander.SchemaNode(colander.String())
    acc_no = colander.SchemaNode(colander.String())
    msg = colander.SchemaNode(colander.String(), missing=colander.drop)
    trx_date = colander.SchemaNode(colander.String())
    amount = colander.SchemaNode(colander.String(), missing=colander.drop)
    # Saat payment dan reversal, diperoleh dari inquiry response
    bill_ref = colander.SchemaNode(colander.String(), missing=colander.drop)
    # Saat payment dan reversal, dibuat saat payment request (NTB)
    trx_id = colander.SchemaNode(colander.String(), missing=colander.drop)


def form_validator(form, value):
    if value['trx_type'] not in METHOD:
        raise TrxTypeError()


def get_form():
    schema = DataRequest(validator=form_validator)
    return Form(schema)