Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
    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()
Пример #5
0
    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
Пример #6
0
    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}
Пример #7
0
    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