bsw@515: MemberApplication = mondelefant.new_class() bsw@515: MemberApplication.table = 'member_application' bsw/jbe@1309: bsw/jbe@1309: MemberApplication:add_reference{ bsw/jbe@1309: mode = 'm1', bsw/jbe@1309: to = "SystemApplication", bsw/jbe@1309: this_key = 'system_application_id', bsw/jbe@1309: that_key = 'id', bsw/jbe@1309: ref = 'system_application' bsw/jbe@1309: } bsw/jbe@1309: bsw/jbe@1309: function MemberApplication:get_selector_by_member_id_and_system_application_id(member_id, system_application_id) bsw/jbe@1309: local selector = self:new_selector() bsw/jbe@1309: selector:add_where{ "member_id = ?", member_id } bsw/jbe@1309: selector:add_where{ "system_application_id = ?", system_application_id } bsw/jbe@1309: selector:optional_object_mode() bsw/jbe@1309: return selector bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: function MemberApplication:by_member_id_and_system_application_id(member_id, system_application_id) bsw/jbe@1309: local member_application = self:get_selector_by_member_id_and_system_application_id(member_id, system_application_id) bsw/jbe@1309: :optional_object_mode() bsw/jbe@1309: :exec() bsw/jbe@1309: return member_application bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: function MemberApplication:get_selector_by_member_id_and_domain(member_id, domain) bsw/jbe@1309: local selector = self:new_selector() bsw/jbe@1309: selector:add_where{ "member_id = ?", member_id } bsw/jbe@1309: selector:add_where{ "domain = ?", domain } bsw/jbe@1309: selector:optional_object_mode() bsw/jbe@1309: return selector bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: function MemberApplication:by_member_id_and_domain(member_id, domain) bsw/jbe@1309: local member_application = self:get_selector_by_member_id_and_domain(member_id, domain) bsw/jbe@1309: :optional_object_mode() bsw/jbe@1309: :exec() bsw/jbe@1309: return member_application bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: function MemberApplication:by_member_id(member_id) bsw/jbe@1309: local member_applications = self:new_selector() bsw/jbe@1309: :add_where{ "member_id = ?", member_id } bsw/jbe@1309: :exec() bsw/jbe@1309: return member_applications bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: function MemberApplication:by_member_id_with_domain(member_id) bsw/jbe@1309: local member_applications = self:new_selector() bsw/jbe@1309: :add_where{ "member_id = ?", member_id } bsw/jbe@1309: :add_where( "domain NOTNULL" ) bsw/jbe@1309: :exec() bsw/jbe@1309: return member_applications bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: function MemberApplication:by_member_id_and_origin(member_id, origin) bsw/jbe@1309: local domain = string.match(string.lower(origin), "^https://(.+)") bsw/jbe@1309: if not domain then bsw/jbe@1309: return bsw/jbe@1309: end bsw/jbe@1309: local member_application = self:get_selector_by_member_id_and_domain(member_id, domain) bsw/jbe@1309: :optional_object_mode() bsw/jbe@1309: :exec() bsw/jbe@1309: return member_application bsw/jbe@1309: end