Exemple #1
0
class Room(object):
    json, xml, html, text = range(1, 5)

    #
    # setup the configuration for our service
    #
    def __init__(self, base, conf_fn):
        self.host = socket.gethostname()
        self.base = base
        self.conf = {}

        # should emit a failure (file not found) message
        if os.path.exists(conf_fn):
            with open(conf_fn) as cf:
                for line in cf:
                    name, var = line.partition("=")[::2]
                    self.conf[name.strip()] = var.strip()
        else:
            raise Exception("configuration file not found.")

        # create storage
        self.__store = Storage()

    #
    # example: find data
    #
    def find(self, name):
        print '---> classroom.find:', name
        return self.__store.find(name)

    #
    # example: add data
    #
    def add(self, name, value):
        try:
            self.__store.insert(name, value)
            self.__store.names()
            return 'success'
        except:
            return 'failed'

#-----------------------------------------------------------------------------------------

#
#--------registration data----------------Manushi Doshi
#

    def addUser(self, name, username, password):
        print "In Classroom"
        try:
            self.__store.register(name, username, password)
            return "Registration successful"
        except:
            return 'error: Registration Failed'

    #
    #-----------login data-----------------Manushi Doshi
    #
    def login(self, username, password):
        try:
            doc_id = self.__store.login(username, password)
            return "Login Successful for " + doc_id
        except:
            return 'error: Login failed'

    #
    #-----------UserInfo data-----------------Dhrumit Sheth
    #
    def getUserInfo(self, user_id):
        try:
            return self.__store.getUserInfo(user_id)

        except:
            return "error: User Info retrieval failed"

    #
    #--------create board data-----------------Darshit Kuwadia
    #
    def addBoard(self, user_id, board_id, board_name):
        try:
            self.__store.addBoard(user_id, board_id, board_name)
            return "New Board Created"
        except:
            return 'error: Board creation failed'

    #
    #--------- add Pin data-----------------Rajvi Shah
    #
    def addPin(self, user_id, pin_name, pin_path):
        try:
            self.__store.addPin(user_id, pin_name, pin_path)
            return "Pin Created"
        except:
            return 'error: Pin Creation failed'

    #
    #------------ attach pin data-----------------Rajvi Shah
    #
    def attachPin(self, user_id, board_id, pin_id):
        try:
            self.__store.attachPin(user_id, board_id, pin_id)
            return 'Pin attached to the board'
        except:
            return 'error: Attachment failed'

    #
    #-------------- get all boards data-----------------Darshit Kuwadia
    #
    def getAllBoards(self):
        try:
            return self.__store.getAllBoards()
        except:
            print "error: Get All boards failed"

    #
    #-------------- get all Pins data-----------------Rajvi Shah
    #
    def getAllPins(self):
        try:
            return self.__store.getAllPins()
        except:
            print "error: Get All pins failed"

    #
    #-------------- get board by ID data-----------------Darshit Kuwadia
    #
    def getBoard(self, board_id):
        try:
            return self.__store.getBoard(board_id)
        except:
            print "error: GetBoard failed"

    #
    #-------------- get Pin by ID data----------------Kavish Parikh
    #
    def getPin(self, pin_id):
        try:
            return self.__store.getPin(pin_id)
        except:
            print "error: Get Pin failed"

    #
    #-------------- delete board data-----------------Dhrumit Sheth
    #
    def deleteBoard(self, user_Id, board_Id):
        try:
            return self.__store.deleteBoard(user_Id, board_Id)

        except:
            return 'error: Board deletion failed'

    #
    #-------------- addComment data-----------------Kavish Parikh
    #
    def addComment(self, user_id, pin_id, comment):
        try:
            return self.__store.addComment(user_id, pin_id, comment)
        except:
            print "error:Comment not added"

    def dump_conf(self, format):
        if format == Room.json:
            return self.__conf_as_json()
        elif format == Room.html:
            return self.__conf_as_html()
        elif format == Room.xml:
            return self.__conf_as_xml()
        elif format == Room.text:
            return self.__conf_as_text()
        else:
            return self.__conf_as_text()

    #
    # output as xml is supported through other packages. If
    # you want to add xml support look at gnosis or lxml.
    #
    def __conf_as_json(self):
        return "xml is hard"

    #
    #
    #
    def __conf_as_json(self):
        try:
            all = {}
            all["base.dir"] = self.base
            all["conf"] = self.conf
            return json.dumps(all)
        except:
            return "error: unable to return configuration"

    #
    #
    #
    def __conf_as_text(self):
        try:
            sb = StringIO.StringIO()
            sb.write("Room Configuration\n")
            sb.write("base directory = ")
            sb.write(self.base)
            sb.write("\n\n")
            sb.write("configuration:\n")

            for key in sorted(self.conf.iterkeys()):
                print >> sb, "%s=%s" % (key, self.conf[key])

            str = sb.getvalue()
            return str
        finally:
            sb.close()

#
        return "text"

    #
    #
    #
    def __conf_as_html(self):
        try:
            sb = StringIO.StringIO()
            sb.write("<html><body>")
            sb.write("<h1>")
            sb.write("Rooms Configuration")
            sb.write("</h1>")
            sb.write("<h2>Base Directory</h2>\n")
            sb.write(self.base)
            sb.write("\n\n")
            sb.write("<h2>Configuration</h2>\n")

            sb.write("<pre>")
            for key in sorted(self.conf.iterkeys()):
                print >> sb, "%s=%s" % (key, self.conf[key])
            sb.write("</pre>")

            sb.write("</body></html>")

            str = sb.getvalue()
            return str
        finally:
            sb.close()