bsw/jbe@0: Contact = mondelefant.new_class() bsw/jbe@0: Contact.table = 'contact' bsw/jbe@0: Contact.primary_key = { "member_id", "other_member_id" } bsw/jbe@0: bsw/jbe@0: Contact:add_reference{ bsw/jbe@0: mode = 'm1', bsw/jbe@0: to = "Member", bsw/jbe@0: this_key = 'member_id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: ref = 'member', bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: Contact:add_reference{ bsw/jbe@0: mode = 'm1', bsw/jbe@0: to = "Member", bsw/jbe@0: this_key = 'other_member_id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: ref = 'other_member', bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: bsw/jbe@0: function Contact:by_pk(member_id, other_member_id) bsw/jbe@0: return self:new_selector() bsw/jbe@0: :add_where{ "member_id = ?", member_id } bsw/jbe@0: :add_where{ "other_member_id = ?", other_member_id } bsw/jbe@0: :optional_object_mode() bsw/jbe@0: :exec() bsw/jbe@0: end bsw@198: bsw@198: function Contact:build_selector(args) bsw@198: local selector = Contact:new_selector() bsw@198: if args.member_id then bsw@198: selector:add_where{ "member_id = ?", args.member_id } bsw@198: end bsw@198: if order then bsw@198: if order == "name" then bsw@198: selector:add_order_by("name") bsw@198: else bsw@198: error("invalid order") bsw@198: end bsw@198: end bsw@198: return selector bsw@198: end