| rev | line source | 
| bsw@515 | 1 MemberApplication = mondelefant.new_class() | 
| bsw@515 | 2 MemberApplication.table = 'member_application' | 
| bsw/jbe@1309 | 3 | 
| bsw/jbe@1309 | 4 MemberApplication:add_reference{ | 
| bsw/jbe@1309 | 5   mode          = 'm1', | 
| bsw/jbe@1309 | 6   to            = "SystemApplication", | 
| bsw/jbe@1309 | 7   this_key      = 'system_application_id', | 
| bsw/jbe@1309 | 8   that_key      = 'id', | 
| bsw/jbe@1309 | 9   ref           = 'system_application' | 
| bsw/jbe@1309 | 10 } | 
| bsw/jbe@1309 | 11 | 
| bsw/jbe@1309 | 12 function MemberApplication:get_selector_by_member_id_and_system_application_id(member_id, system_application_id) | 
| bsw/jbe@1309 | 13   local selector = self:new_selector() | 
| bsw/jbe@1309 | 14   selector:add_where{ "member_id = ?", member_id } | 
| bsw/jbe@1309 | 15   selector:add_where{ "system_application_id = ?", system_application_id } | 
| bsw/jbe@1309 | 16   selector:optional_object_mode() | 
| bsw/jbe@1309 | 17   return selector | 
| bsw/jbe@1309 | 18 end | 
| bsw/jbe@1309 | 19 | 
| bsw/jbe@1309 | 20 function MemberApplication:by_member_id_and_system_application_id(member_id, system_application_id) | 
| bsw/jbe@1309 | 21   local member_application = self:get_selector_by_member_id_and_system_application_id(member_id, system_application_id) | 
| bsw/jbe@1309 | 22     :optional_object_mode() | 
| bsw/jbe@1309 | 23     :exec() | 
| bsw/jbe@1309 | 24   return member_application | 
| bsw/jbe@1309 | 25 end | 
| bsw/jbe@1309 | 26 | 
| bsw/jbe@1309 | 27 function MemberApplication:get_selector_by_member_id_and_domain(member_id, domain) | 
| bsw/jbe@1309 | 28   local selector = self:new_selector() | 
| bsw/jbe@1309 | 29   selector:add_where{ "member_id = ?", member_id } | 
| bsw/jbe@1309 | 30   selector:add_where{ "domain = ?", domain } | 
| bsw/jbe@1309 | 31   selector:optional_object_mode() | 
| bsw/jbe@1309 | 32   return selector | 
| bsw/jbe@1309 | 33 end | 
| bsw/jbe@1309 | 34 | 
| bsw/jbe@1309 | 35 function MemberApplication:by_member_id_and_domain(member_id, domain) | 
| bsw/jbe@1309 | 36   local member_application = self:get_selector_by_member_id_and_domain(member_id, domain) | 
| bsw/jbe@1309 | 37     :optional_object_mode() | 
| bsw/jbe@1309 | 38     :exec() | 
| bsw/jbe@1309 | 39   return member_application | 
| bsw/jbe@1309 | 40 end | 
| bsw/jbe@1309 | 41 | 
| bsw/jbe@1309 | 42 function MemberApplication:by_member_id(member_id) | 
| bsw/jbe@1309 | 43   local member_applications = self:new_selector() | 
| bsw/jbe@1309 | 44     :add_where{ "member_id = ?", member_id } | 
| bsw/jbe@1309 | 45     :exec() | 
| bsw/jbe@1309 | 46   return member_applications | 
| bsw/jbe@1309 | 47 end | 
| bsw/jbe@1309 | 48 | 
| bsw/jbe@1309 | 49 function MemberApplication:by_member_id_with_domain(member_id) | 
| bsw/jbe@1309 | 50   local member_applications = self:new_selector() | 
| bsw/jbe@1309 | 51     :add_where{ "member_id = ?", member_id } | 
| bsw/jbe@1309 | 52     :add_where( "domain NOTNULL" ) | 
| bsw/jbe@1309 | 53     :exec() | 
| bsw/jbe@1309 | 54   return member_applications | 
| bsw/jbe@1309 | 55 end | 
| bsw/jbe@1309 | 56 | 
| bsw/jbe@1309 | 57 function MemberApplication:by_member_id_and_origin(member_id, origin) | 
| bsw/jbe@1309 | 58   local domain = string.match(string.lower(origin), "^https://(.+)") | 
| bsw/jbe@1309 | 59   if not domain then | 
| bsw/jbe@1309 | 60     return | 
| bsw/jbe@1309 | 61   end | 
| bsw/jbe@1309 | 62   local member_application = self:get_selector_by_member_id_and_domain(member_id, domain) | 
| bsw/jbe@1309 | 63     :optional_object_mode() | 
| bsw/jbe@1309 | 64     :exec() | 
| bsw/jbe@1309 | 65   return member_application | 
| bsw/jbe@1309 | 66 end |