def signin(self, eventid, userid, status): """ Methode zur Anmeldung/Absage eines Events :param eventid: ID des Events :param userid: ID des Users :param status: neuer Status :return: - """ u_id = EventId() u_id.setHashed(userid) e_id = EventId() e_id.setHashed(eventid) user = User.getById(u_id) event = Event.getById(e_id) invitation = Invitation.getFromUserAndEvent(user, event) if invitation is None: raise EventError("Keine Einladung vorhanden.") status = int(status) if status == Invitation.YES: invitation.signin() elif status == Invitation.NO: invitation.notcoming() else: #Niemand wird ein Anfrage senden um zu sagen, dass er sich noch nicht entschschieden hat. pass return
def invite(self, eventid, aid, uid): """ Methode zum Einladen eines Benutzers. :param eventid: ID des Events, fuer das eingeladen werden soll. :param aid: ID des Admin des Events zu Sicherheitszwecken. :param uid: Einzuladener User :return: - """ u_id = EventId() u_id.setHashed(uid) a_id = EventId() a_id.setHashed(aid) e_id = EventId() e_id.setHashed(eventid) event = Event.getById(e_id) admin = User(id=a_id) if not event.authorized(admin): raise EventError(EventError.NO_ADMIN) user = User.getById(u_id) invitation = Invitation(user=user, event=event) invitation.create() return
def getFromUserAndEvent(user, event): ret = Invitation() db = SQLConnection.getInstance() db_ret = db.select("SELECT * FROM invitations WHERE user=%s AND event=%s", (user.id.getUnhashed(), event.id.getUnhashed())) if len(db_ret) > 1: raise EventError(EventError.UNDEFINED) if len(db_ret) == 0: return None db_ret = db_ret[0] ret.id = EventId() ret.id.setUnhashed(db_ret[0]) uid = EventId() uid.setUnhashed(db_ret[1]) ret.user = User.getById(uid) eid = EventId() eid.setUnhashed(db_ret[2]) ret.event = Event.getById(eid) ret.status = int(db_ret[3]) return ret
def getEventById(self, eventid): """ Methode zur Rueckgabe aller Informationen eines bestimmten Events. :param eventid: ID des Events :return: Alle Informationen eines Events in Form eines Dictionaries """ e_id = EventId() e_id.setHashed(eventid) event = Event.getById(e_id) return event.getAsDict()
def deleteEvent(self, aid, eventid): """ Methode zur Loeschung eines Events :param eventid: ID des Events, welches geloescht werden soll. :param aid: ID des Admins des Events um nur dem Admin zu erlauben sein Event zu loeschen. :return: - """ e_id = EventId() e_id.setHashed(eventid) event = Event.getById(e_id) user = User(id=aid) if not event.authorized(user): raise EventError(EventError.USER_NOT_AUTHORIZED) event.delete() return
def getAllInvitations(self, eid): """ Methode zur Rueckgabe aller Einladungen fuer ein Event. :param eid: ID des Events :return: Hashtable mit einem Array Element fuer die Einladungen """ e_id = EventId() e_id.setHashed(eid) ret = [] event = Event.getById(e_id) invitations = Invitation.getAllForEvent(event) for e in invitations: ret.append(e.getAsDict(["user", "status"])) return {"invitations" : ret}
def getAllFromUser(user): ret = [] #DB Verbindung db = SQLConnection.getInstance() #SQL Befehl db_ret = db.select("SELECT * FROM invitations WHERE user=%s", (user.id.getUnhashed(),)) #for schleife durch array for e in db_ret: i = Invitation() i.id = EventId() i.id.setUnhashed(int(e[0])) i.id = e[0] i.user = user e_id = EventId() e_id.setUnhashed(int(e[2])) i.event = Event.getById(e_id) i.status = int(e[3]) ret.append(i) return ret