split api pythons
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
from collections import defaultdict
|
||||
from datetime import date, datetime
|
||||
from decimal import Decimal
|
||||
|
||||
from flask import current_app, jsonify, request, url_for
|
||||
from flask_login import current_user, login_required, login_user
|
||||
from sqlalchemy import extract
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
|
||||
from . import api
|
||||
from .common import accessible_vehicles, boolv, fail, payload, response, role_required, station_dict, user_dict, vehicle_dict
|
||||
from .. import THEMES
|
||||
from ..api_tokens import create_access_token
|
||||
from ..extensions import db
|
||||
from ..models import AppSetting, CompanySettings, FuelCard, FuelCardPolicy, FuelCardStationRule, FuelEntry, FuelStationCompany, FuelStationPoint, OrlenPrice, User, Vehicle
|
||||
from ..services import POLISH_REGIONS, aggregate_ure_companies, calculate_costs, fetch_orlen_price, fetch_orlen_range, fetch_ure_stations, invoice_period
|
||||
from ..station_catalog import sync_station_catalog
|
||||
|
||||
FUEL_TYPES = ("PB95", "PB98", "DIESEL", "LPG")
|
||||
|
||||
@api.post('/auth/login')
|
||||
def login():
|
||||
d=payload(); user=User.query.filter_by(email=(d.get('email') or '').strip().lower()).first()
|
||||
if not user or not user.check_password(d.get('password') or '') or not user.active: return fail('Nieprawidłowy e-mail lub hasło',401)
|
||||
login_user(user); return response({'user':user_dict(user),'redirect':url_for('main.dashboard')},'Zalogowano')
|
||||
|
||||
@api.post('/auth/token')
|
||||
def token_login():
|
||||
d = payload()
|
||||
email = (d.get('email') or d.get('username') or '').strip().lower()
|
||||
user = User.query.filter_by(email=email).first()
|
||||
if not user or not user.check_password(d.get('password') or '') or not user.active:
|
||||
return jsonify({'error':'invalid_grant','error_description':'Nieprawidłowy e-mail lub hasło'}), 401
|
||||
expires_in = int(current_app.config['API_TOKEN_MAX_AGE_SECONDS'])
|
||||
return jsonify({
|
||||
'access_token': create_access_token(user),
|
||||
'token_type': 'Bearer',
|
||||
'expires_in': expires_in,
|
||||
'user': user_dict(user),
|
||||
})
|
||||
|
||||
@api.get('/me')
|
||||
@login_required
|
||||
def me(): return response(user_dict(current_user))
|
||||
Reference in New Issue
Block a user