Beispiel #1
0
 def login_user(self, email, password):
     user = self.filter(email=email).first()
     if not user:
         raise SException('User not found', 404)
     if not helper.check_hash(password, user.password):
         raise SException('Invalid credentials', 400)
     # create user token
     token = UserTokenRepo().create(user=user,
                                    token=helper.generate_token())
     print "token"
     return token
Beispiel #2
0
def upload(upload_id):
    try:
        if request.json:
            res = views.update_upload(upload_id, request.json)
        elif len(request.values.to_dict()):
            res = views.update_upload(upload_id, request.values.to_dict())
        else:
            raise SException('Please provide some arguments', 400)
        return response.json({'data': 'success'})
    except SException as e:
        raise e
    except:
        raise SException('Invalid request', 400)
Beispiel #3
0
 def get(self, id=None, code=None):
     if id is not None:
         obj = self.objects.filter(id=id).first()
         if not obj:
             #raise SException(self.model.__str__() + " data not found", 404)
             raise SException("Model data not found", 404)
         return obj
     if code is not None:
         obj = self.objects.filter(code=code).first()
         if not obj:
             #raise SException(self.model.__str__() + " data not found", 404)
             raise SException("Model data not found", 404)
         return obj
     return self.objects.all()
Beispiel #4
0
def add_comment_to_company(company_id, data):
    #user = UserTokenRepo().get_auth_user(request.headers.get('Authorization'))
    user = auth.user()
    company = CompanyRepo().get_company(company_id)

    msg, attachment_obj, upload_data = data.get('comment', None), data.get(
        'attachment', None), None
    if attachment_obj is not None and attachment_obj.filename != '':
        data = uploader.upload(attachment_obj)
        data['uploaderId'] = data['id']
        del data['id']
        upload_data = UploadRepo().create(data)
    elif msg is None or msg == '':
        raise SException("Please provide some comment",
                         redirect_url='/companies/' + company.code + '/' +
                         company.slug)

    comment = CommentRepo().create({
        'user': user,
        'company': company,
        'message': msg,
        'type': data.get('type'),
        'attachment': upload_data
    })
    return company
    return transformers.transform_comment(comment)
Beispiel #5
0
 def perform_latest(self, code):
     #response = requests.get('https://www.quandl.com/api/v3/datasets/NSE/' + company_code + '.json?start_date=' + yesterday_date + '&end_date=' + today_date + '&api_key=xMH7BiBu6s24LHCizug3')
     self.use_default_transform = True
     response = requests.get(self.BASE_API.format(self.STOCK_EXCHANGE_CODE, code))
     if response.status_code == 200:
         data = response.json()['dataset']
         return data
     else:
         raise SException('Error while getting stock data.', 400)
Beispiel #6
0
def filter(data):
    if data is None:
        return []
        raise SException("You have to provide something.", 400)
    result = CompanyRepo().set_transformer(transformers.company)\
            .filter_self(Q(name__icontains=data) | Q(code__icontains=data))\
            .paginate(10)
    #.filter_self(Q(name__icontains=data) | Q(code__icontains=data)).paginate()
    return result.items
Beispiel #7
0
def get_current_stock_of_company(company_code, company=None):
    if company is None:
        company = CompanyRepo().get(code=company_code)
        if not company:
            raise SException("Error in company code", 400)
    if company.stockExchangeCode == 'NSE':
        company = nse.latest(company)
    else:
        company = bse.latest(company)

    return company
Beispiel #8
0
    def validate(self, data):
        for key, value in self.rule.iteritems():
            exist, dtype = self.__unpack_rules(value)
            if not self._apply_exists(exist, key, data):
                self.errors.add('Please provide ' + key)
                continue

            if (key in data) and (not self._apply_dtypes(dtype, value, data[key])):
                self.errors.add(key + ' is not ' + dtype)

        if len(self.errors) == 0:
            return True

        raise SException(list(self.errors), 400)
Beispiel #9
0
 def get_auth_user(self, token):
     token = self.filter(token=token, expiresAt__gt=helper.now()).first()
     if not token:
         raise SException('Invalid authorization token', 401)
     return token.user
Beispiel #10
0
 def check_password(self, email, password):
     user = self.filter(email=email).first()
     if not user:
         raise SException('User not found', 404)
     self.user = user
     return helper.check_hash(password, user.password)
Beispiel #11
0
 def get_company(self, company_id):
     company = self.set_excludes(['history'
                                  ]).filter_self(id=company_id).first()
     if not company:
         raise SException("Comany not found", 404)
     return company
Beispiel #12
0
def get_only_company(company_code):
    #comp = CompanyRepo().set_excludes(['history']).filter(code=company_code).first()
    comp = CompanyRepo().get(code=company_code)
    if not comp:
        raise SException("Invalid company code", 400)
    return comp
Beispiel #13
0
def signup_user(data):
    if UserRepo().user_exists(email=data['email']):
        raise SException('User already exists', 409)
    result = UserRepo().create_user(data)
    return result
    return transformers.user(result)