annotate model/contact.lua @ 1031:489cb972466c
Going to version 2.2.4
 | author | 
 bsw | 
 | date | 
 Mon Aug 12 21:39:05 2013 +0200 (2013-08-12) | 
 | parents | 
 516962033e96  | 
 | children | 
 701a5cf6b067  | 
 
 | rev | 
   line source | 
| 
bsw/jbe@0
 | 
     1 Contact = mondelefant.new_class()
 | 
| 
bsw/jbe@0
 | 
     2 Contact.table = 'contact'
 | 
| 
bsw/jbe@0
 | 
     3 Contact.primary_key = { "member_id", "other_member_id" }
 | 
| 
bsw/jbe@0
 | 
     4 
 | 
| 
bsw/jbe@0
 | 
     5 Contact:add_reference{
 | 
| 
bsw/jbe@0
 | 
     6   mode          = 'm1',
 | 
| 
bsw/jbe@0
 | 
     7   to            = "Member",
 | 
| 
bsw/jbe@0
 | 
     8   this_key      = 'member_id',
 | 
| 
bsw/jbe@0
 | 
     9   that_key      = 'id',
 | 
| 
bsw/jbe@0
 | 
    10   ref           = 'member',
 | 
| 
bsw/jbe@0
 | 
    11 }
 | 
| 
bsw/jbe@0
 | 
    12 
 | 
| 
bsw/jbe@0
 | 
    13 Contact:add_reference{
 | 
| 
bsw/jbe@0
 | 
    14   mode          = 'm1',
 | 
| 
bsw/jbe@0
 | 
    15   to            = "Member",
 | 
| 
bsw/jbe@0
 | 
    16   this_key      = 'other_member_id',
 | 
| 
bsw/jbe@0
 | 
    17   that_key      = 'id',
 | 
| 
bsw/jbe@0
 | 
    18   ref           = 'other_member',
 | 
| 
bsw/jbe@0
 | 
    19 }
 | 
| 
bsw/jbe@0
 | 
    20 
 | 
| 
bsw/jbe@0
 | 
    21 
 | 
| 
bsw/jbe@0
 | 
    22 function Contact:by_pk(member_id, other_member_id)
 | 
| 
bsw/jbe@0
 | 
    23   return self:new_selector()
 | 
| 
bsw/jbe@0
 | 
    24     :add_where{ "member_id = ?", member_id }
 | 
| 
bsw/jbe@0
 | 
    25     :add_where{ "other_member_id = ?", other_member_id }
 | 
| 
bsw/jbe@0
 | 
    26     :optional_object_mode()
 | 
| 
bsw/jbe@0
 | 
    27     :exec()
 | 
| 
bsw/jbe@0
 | 
    28 end
 | 
| 
bsw@198
 | 
    29 
 | 
| 
bsw@198
 | 
    30 function Contact:build_selector(args)
 | 
| 
bsw@198
 | 
    31   local selector = Contact:new_selector()
 | 
| 
bsw@597
 | 
    32   selector:join("member", nil, "member.id = contact.other_member_id")
 | 
| 
bsw@198
 | 
    33   if args.member_id then
 | 
| 
bsw@198
 | 
    34     selector:add_where{ "member_id = ?", args.member_id }
 | 
| 
bsw@198
 | 
    35   end
 | 
| 
bsw@597
 | 
    36   if args.order then
 | 
| 
bsw@597
 | 
    37     if args.order == "name" then
 | 
| 
bsw@597
 | 
    38       selector:add_order_by("member.name")
 | 
| 
bsw@198
 | 
    39     else
 | 
| 
bsw@198
 | 
    40       error("invalid order")
 | 
| 
bsw@198
 | 
    41     end
 | 
| 
bsw@198
 | 
    42   end
 | 
| 
bsw@198
 | 
    43   return selector
 | 
| 
bsw@198
 | 
    44 end
 |