def execute(self): login = Environment.get_user_name() users = self.kwargs.get("users") everyone = [login] everyone.extend(users) # find out if there already is a subscription between this user # and others search = Search("sthpw/subscription") search.add_filter("login", login) search.add_filter("category", "chat") login_subscriptions = search.get_sobjects() keys = [x.get_value("message_code") for x in login_subscriptions] create = True # find the subscriptions for each user with the same keys for user in users: search = Search("sthpw/subscription") search.add_filters("message_code", keys) search.add_filter("login", user) user_subscriptions = search.get_sobjects() if user_subscriptions: create = False # create a new subscription if create: key = Common.generate_random_key() message = SearchType.create("sthpw/message") message.set_value("code", key) message.set_value("login", login) message.set_value("category", "chat") message.set_value("message", "Welcome!!!") message.commit() # create a subscription for each person for person in everyone: subscription = SearchType.create("sthpw/subscription") subscription.set_value("message_code", key) subscription.set_value("login", person) subscription.set_value("category", "chat") subscription.commit()
def execute(my): login = Environment.get_user_name() users = my.kwargs.get("users") everyone = [login] everyone.extend(users) # find out if there already is a subscription between this user # and others search = Search("sthpw/subscription") search.add_filter("login", login) search.add_filter("category", "chat") login_subscriptions = search.get_sobjects() keys = [x.get_value("message_code") for x in login_subscriptions] create = True # find the subscriptions for each user with the same keys for user in users: search = Search("sthpw/subscription") search.add_filters("message_code", keys) search.add_filter("login", user) user_subscriptions = search.get_sobjects() if user_subscriptions: create = False # create a new subscription if create: key = Common.generate_random_key() message = SearchType.create("sthpw/message") message.set_value("code", key) message.set_value("login", login) message.set_value("category", "chat") message.set_value("message", "Welcome!!!") message.commit() # create a subscription for each person for person in everyone: subscription = SearchType.create("sthpw/subscription") subscription.set_value("message_code", key) subscription.set_value("login", person) subscription.set_value("category", "chat") subscription.commit()
def get_command_key(self): return Common.generate_random_key()