Пример #1
0
 def new_user(self, struct):
     '''
         New user event
     '''
     bucket_name = 'accounts'
     bucket = self.db.bucket(bucket_name)
     try:
         struct['created_by'] = self.settings['domain']
         struct['status'] = 'new'
         event = accounts.Users(struct)
         event.validate()
         event = clean_structure(event)
     except Exception as error:
         raise error
     try:
         message = event.get('uuid')
         user = bucket.new(message, data=event)
         user.add_index("uuid_bin", message)
         user.add_index("status_bin", event["status"])
         user.add_index("account_bin", event["account"])
         user.add_index("account_type_bin", event["account_type"])
         user.add_index("email_bin", event["email"])
         user.store()
     except Exception as error:
         logging.error(error)
         message = str(error)
     return message
Пример #2
0
    def get_account(self, account, account_type):
        '''
            Get mango account
        '''
        message = None
        result = yield self.db.accounts.find_one(
            {
                'account': account,
                'account_type': account_type
            }, {
                '_id': 0,
                'password': 0
            })
        if result:
            if 'user' in account_type:
                message = accounts.ModifyUser(result)
            elif 'org' in account_type:
                message = accounts.Org(result)

        try:
            if message:
                message.validate()
                message = clean_structure(message)
        except Exception, e:
            logging.exception(e)
            raise e
Пример #3
0
    def get_record(self, account, record_uuid):
        '''
            Get a detail record
        '''
        message = 'where is this account {0} record {1}'.format(account, record_uuid)
        logging.info(message)
        if not account:
            record = yield self.db.records.find_one({'uuid':record_uuid}, {'_id':0})
        else:

            # change accountcode to account, because the accountcode is a uuid
            # and we're expecting an account name.
            message = 'account {0} and record {1} are you for real?'.format(account, record_uuid)
            logging.info(message)

            record = yield self.db.records.find_one({'uuid':record_uuid,
                                                     'account':account},
                                                    {'_id':0})
            logging.info(record)
        try:
            if record:
                record = records.Record(record)
                record.validate()

                record = clean_structure(record)
        except Exception, e:
            logging.exception(e) # catch some daemon here!
            raise e
Пример #4
0
 def new_user(self, struct):
     '''
         New user event
     '''
     search_index = 'mango_account_index'
     bucket_type = 'mango_account'
     bucket_name = 'accounts'
     try:
         event = accounts.User(struct)
         event.validate()
         event = clean_structure(event)
     except Exception as error:
         raise error
     try:
         message = event.get('uuid')
         structure = {
             "uuid": str(event.get('uuid', str(uuid.uuid4()))),
             "status": str(event.get('status', '')),
             "role": str(event.get('role', '')),
             "account": str(event.get('account', 'pebkac')),
             "account_type": str(event.get('account_type', 'user')),
             "nickname": str(event.get('nickname', '')),
             "first_name": str(event.get('first_name', '')),
             "last_name": str(event.get('last_name', '')),
             "middle_name": str(event.get('middle_name', '')),
             "password": str(event.get('password', '')),
             "email": str(event.get('email', '')),
             "phone_number": str(event.get('phone_number', '')),
             "extension": str(event.get('extension', '')),
             "country_code": str(event.get('country_code', '')),
             "timezone": str(event.get('timezone', '')),
             "company": str(event.get('company', '')),
             "location": str(event.get('location', '')),
             "phones": str(event.get('phones', '')),
             "emails": str(event.get('emails', '')),
             "history": str(event.get('history', '')),
             "labels": str(event.get('labels', '')),
             "orgs": str(event.get('orgs', '')),
             "teams": str(event.get('teams', '')),
             "checked": str(event.get('checked', '')),
             "checked_by": str(event.get('checked_by', '')),
             "checked_at": str(event.get('checked_at', '')),
             "created_by": str(event.get('created_by', '')),
             "created_at": str(event.get('created_at', '')),
             "last_update_at": str(event.get('last_update_at', '')),
             "last_update_by": str(event.get('last_update_by', '')),
         }
         result = AccountMap(
             self.kvalue,
             bucket_name,
             bucket_type,
             search_index,
             structure
         )
         message = structure.get('uuid')
     except Exception as error:
         logging.error(error)
         message = str(error)
     return message
Пример #5
0
 def new_org(self, struct):
     '''
         New (ORG) event
     '''
     search_index = 'mango_account_index'
     bucket_type = 'mango_account'
     bucket_name = 'accounts'
     try:
         event = accounts.Org(struct)
         event.validate()
         event = clean_structure(event)
     except Exception as error:
         raise error
     try:
         message = event.get('uuid')
         structure = {
             "uuid": str(event.get('uuid', str(uuid.uuid4()))),
             "status": str(event.get('status', '')),
             "account": str(event.get('account', 'pebkac')),
             "account_type": str(event.get('account_type', 'org')),
             "name": str(event.get('name', '')),
             "description": str(event.get('description', '')),
             "email": str(event.get('email', '')),
             "phone_number": str(event.get('phone_number', '')),
             "extension": str(event.get('extension', '')),
             "country_code": str(event.get('country_code', '')),
             "timezone": str(event.get('timezone', '')),
             "company": str(event.get('company', '')),
             "location": str(event.get('location', '')),
             "phones": str(event.get('phones', '')),
             "emails": str(event.get('emails', '')),
             "history": str(event.get('history', '')),
             "labels": str(event.get('labels', '')),
             "members": str(event.get('members', '')),
             "teams": str(event.get('teams', '')),
             "checked": str(event.get('checked', '')),
             "checked_by": str(event.get('checked_by', '')),
             "checked_at": str(event.get('checked_at', '')),
             "created_by": str(event.get('created_by', '')),
             "created_at": str(event.get('created_at', '')),
             "last_update_at": str(event.get('last_update_at', '')),
             "last_update_by": str(event.get('last_update_by', '')),
         }
         result = AccountMap(
             self.kvalue,
             bucket_name,
             bucket_type,
             search_index,
             structure
         )
         message = structure.get('uuid')
     except Exception as error:
         logging.error(error)
         message = str(error)
     return message
Пример #6
0
 def modify_task(self, account, task_uuid, struct):
     '''
         Modify task
     '''
     try:
         logging.info(struct)
         task = tasks.ModifyTask(struct)
         task.validate()
         task = clean_structure(task)
     except Exception, e:
         logging.error(e)
         raise e
Пример #7
0
 def new_task(self, struct):
     '''
         New task event
     '''
     search_index = 'mango_task_index'
     bucket_type = 'mango_task'
     bucket_name = 'tasks'
     try:
         event = tasks.Task(struct)
         event.validate()
         event = clean_structure(event)
     except Exception as error:
         raise error
     try:
         structure = {
             "uuid": str(event.get('uuid', str(uuid.uuid4()))),
             "account": str(event.get('account', 'pebkac')),
             "subject": str(event.get('subject', '')),
             "description": str(event.get('description', '')),
             "data": str(event.get('data', '')),
             "assign": str(event.get('assign', '')),
             "public": str(event.get('public', '')),
             "source ": str(event.get('source', '')),
             "destination": str(event.get('destination', '')),
             "labels": str(event.get('labels', '')),
             "start_time": str(event.get('start_time', '')),
             "ack_time": str(event.get('ack_time', '')),
             "stop_time": str(event.get('stop_time', '')),
             "deadline": str(event.get('deadline', '')),
             "duration": str(event.get('duration', '')),
             "comments": str(event.get('comments', '')),
             "history": str(event.get('history', '')),
             "status": str(event.get('status', '')),
             "checked": str(event.get('checked', '')),
             "checked_by": str(event.get('checked_by', '')),
             "checked_at": str(event.get('checked_at', '')),
             "created_by": str(event.get('created_by', '')),
             "created_at": str(event.get('created_at', '')),
             "last_update_by": str(event.get('last_update_by', '')),
             "last_update_at": str(event.get('last_update_at', '')),
         }
         result = TaskMap(
             self.kvalue,
             bucket_name,
             bucket_type,
             search_index,
             structure
         )
         message = structure.get('uuid')
     except Exception as error:
         logging.error(error)
         message = str(error)
     return message
Пример #8
0
 def modify_task(self, account, task_uuid, struct):
     '''
         Modify task
     '''
     try:
         logging.info(struct)
         task = tasks.ModifyTask(struct)
         task.validate()
         task = clean_structure(task)
     except Exception, e:
         logging.error(e)
         raise e
Пример #9
0
 def new_team(self, org, team):
     '''
         New team
     '''
     try:
         team = accounts.Team(
             team
         )  # team validate and clean structure return team or log crash errors; variable assigned to team variable.
         team.validate()
         team = clean_structure(team)
     except Exception, e:
         logging.error(e)
         raise e
Пример #10
0
 def new_task(self, struct):
     '''
         New task event
     '''
     search_index = 'mango_task_index'
     bucket_type = 'mango_task'
     bucket_name = 'tasks'
     try:
         event = tasks.Task(struct)
         event.validate()
         event = clean_structure(event)
     except Exception as error:
         raise error
     try:
         structure = {
             "uuid": str(event.get('uuid', str(uuid.uuid4()))),
             "account": str(event.get('account', 'pebkac')),
             "subject": str(event.get('subject', '')),
             "description": str(event.get('description', '')),
             "data": str(event.get('data', '')),
             "assign": str(event.get('assign', '')),
             "public": str(event.get('public', '')),
             "source ": str(event.get('source', '')),
             "destination": str(event.get('destination', '')),
             "labels": str(event.get('labels', '')),
             "start_time": str(event.get('start_time', '')),
             "ack_time": str(event.get('ack_time', '')),
             "stop_time": str(event.get('stop_time', '')),
             "deadline": str(event.get('deadline', '')),
             "duration": str(event.get('duration', '')),
             "comments": str(event.get('comments', '')),
             "history": str(event.get('history', '')),
             "status": str(event.get('status', '')),
             "checked": str(event.get('checked', '')),
             "checked_by": str(event.get('checked_by', '')),
             "checked_at": str(event.get('checked_at', '')),
             "created_by": str(event.get('created_by', '')),
             "created_at": str(event.get('created_at', '')),
             "last_update_by": str(event.get('last_update_by', '')),
             "last_update_at": str(event.get('last_update_at', '')),
         }
         result = TaskMap(self.kvalue, bucket_name, bucket_type,
                          search_index, structure)
         message = structure.get('uuid')
     except Exception as error:
         logging.error(error)
         message = str(error)
     return message
Пример #11
0
 def new_team(self, struct):
     '''
         New team event
     '''
     search_index = 'mango_team_index'
     bucket_type = 'mango_team'
     bucket_name = 'teams'
     try:
         event = teams.Team(struct)
         event.validate()
         event = clean_structure(event)
     except Exception as error:
         raise error
     try:
         message = event.get('uuid')
         structure = {
             "uuid": str(event.get('uuid', str(uuid.uuid4()))),
             "account": str(event.get('account', 'pebkac')),
             "status": str(event.get('status', '')),
             "name": str(event.get('name', '')),
             "permission": str(event.get('permission', '')),
             "members": str(event.get('members', '')),
             "resources": str(event.get('resources', '')),
             "labels": str(event.get('labels', '')),
             "history": str(event.get('history', '')),
             "checked": str(event.get('checked', '')),
             "checked_by": str(event.get('checked_by', '')),
             "checked_at": str(event.get('checked_at', '')),
             "created_by": str(event.get('created_by', '')),
             "created_at": str(event.get('created_at', '')),
             "last_update_by": str(event.get('last_update_by', '')),
             "last_update_at": str(event.get('last_update_at', '')),
             "description": str(event.get('description', '')),
         }
         result = TeamMap(
             self.kvalue,
             bucket_name,
             bucket_type,
             search_index,
             structure
         )
         message = structure.get('uuid')
     except Exception as error:
         logging.error(error)
         message = str(error)
     return message
Пример #12
0
    def new_account(self, struct):
        '''
            New mango account
        '''
        account_type = struct['account_type']

        try:
            if 'user' in account_type:
                account = accounts.User(struct)

            if 'org' in account_type:
                account = accounts.Org(struct)

            account.validate()
            account = clean_structure(account)

        except Exception, e:
            logging.error(e)
            raise e
Пример #13
0
 def new_team(self, struct):
     '''
         New team event
     '''
     search_index = 'mango_team_index'
     bucket_type = 'mango_team'
     bucket_name = 'teams'
     try:
         event = teams.Team(struct)
         event.validate()
         event = clean_structure(event)
     except Exception as error:
         raise error
     try:
         message = event.get('uuid')
         structure = {
             "uuid": str(event.get('uuid', str(uuid.uuid4()))),
             "account": str(event.get('account', 'pebkac')),
             "status": str(event.get('status', '')),
             "name": str(event.get('name', '')),
             "permission": str(event.get('permission', '')),
             "members": str(event.get('members', '')),
             "resources": str(event.get('resources', '')),
             "labels": str(event.get('labels', '')),
             "history": str(event.get('history', '')),
             "checked": str(event.get('checked', '')),
             "checked_by": str(event.get('checked_by', '')),
             "checked_at": str(event.get('checked_at', '')),
             "created_by": str(event.get('created_by', '')),
             "created_at": str(event.get('created_at', '')),
             "last_update_by": str(event.get('last_update_by', '')),
             "last_update_at": str(event.get('last_update_at', '')),
             "description": str(event.get('description', '')),
         }
         result = TeamMap(self.kvalue, bucket_name, bucket_type,
                          search_index, structure)
         message = structure.get('uuid')
     except Exception as error:
         logging.error(error)
         message = str(error)
     return message
Пример #14
0
        results = clean_results(results)
        raise gen.Return(results)

    @gen.coroutine
    def new_task(self, struct):
        '''
            Create a new task entry
        '''
        try:
            task = tasks.Task(struct)
            task.validate()
        except Exception, e:
            logging.exception(e)
            raise e

        task = clean_structure(task)

        result = yield self.db.tasks.insert(task)

        raise gen.Return(task.get('uuid'))

    @gen.coroutine
    def set_assigned_flag(self, account, task_uuid):
        '''
            Set the task assigned flag
        '''
        logging.info('set_assigned_flag account: %s, task: %s' %
                     (account, task_uuid))

        result = yield self.db.tasks.update(
            {
Пример #15
0
        raise gen.Return(results)


    @gen.coroutine
    def new_task(self, struct):
        '''
            Create a new task entry
        '''
        try:
            task = tasks.Task(struct)
            task.validate()
        except Exception, e:
            logging.exception(e)
            raise e

        task = clean_structure(task)

        result = yield self.db.tasks.insert(task)

        raise gen.Return(task.get('uuid'))

    @gen.coroutine
    def set_assigned_flag(self, account, task_uuid):
        '''
            Set the task assigned flag
        '''
        logging.info('set_assigned_flag account: %s, task: %s' % (account, task_uuid))

        result = yield self.db.tasks.update(
                                {'uuid':task_uuid, 
                                 'accountcode':account}, 
Пример #16
0
            db = self.db
        try:
            # if not type str convert to str...
            # same note different day... WTF I'm talking about...

            if isinstance(struct, dict):

                struct['strdate'] = '"{0}"'.format(struct.get('strdate', ''))
            
            record = records.Record(struct)
            record.validate()
        except Exception, e:
            logging.exception(e)
            raise e

        record2 = clean_structure(record)

        record = clean_message(record)

        result = yield db.records.insert(record)

        message = {
            'uniqueid':struct.get('uniqueid'),
            'uuid':record.get('uuid')
        }

        raise gen.Return(message)

    @gen.coroutine
    def set_assigned_flag(self, account, record_uuid):
        '''
Пример #17
0
    def get(self, task_uuid=None, start=None, end=None, page_num=0, lapse='hours'):
        '''
            Get tasks handler
        '''

        # -- logging info

        logging.warning('daaaa fuck1!!{0}'.format(task_uuid))

        logging.info(self.request.arguments)

        #account = (self.request.arguments.get('account', [None])[0] if not account else account)

        # query string checked from string to boolean
        #checked = str2bool(str(self.request.arguments.get('checked', [False])[0]))

        if task_uuid:
            task_uuid = task_uuid.rstrip('/')

            if self.current_user:
                user = self.current_user
                task = yield self.get_task(user, task_uuid)
            else:
                task = yield self.get_task(None, task_uuid)

            if not task:
                self.set_status(400)
                system_error = errors.Error('missing')
                error = system_error.missing('task', task_uuid)
                self.finish(error)
                return

            self.finish(clean_structure(task))
            return

        if self.current_user:
            user = self.current_user
            orgs = yield self.get_orgs_list(user)
            
            account_list = (orgs['orgs'] if orgs else False)
            if not account_list:
                result = yield self.get_task_list(
                                        account=user, 
                                        lapse=lapse,
                                        start=start,
                                        end=end,
                                        page_num=page_num)
            else:
                account_list.append(user)
                result = yield self.get_task_list(
                                        account=account_list,
                                        lapse=lapse,
                                        start=start,
                                        end=end,
                                        page_num=page_num)
        else:
            result = yield self.get_task_list(
                                    account=None,
                                    lapse=lapse,
                                    start=start,
                                    end=end,
                                    page_num=page_num)

        result = json_util.dumps(result)

        self.finish(result)