Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
integrated_ticket
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
rakesh.pv
integrated_ticket
Commits
a43f220d
Commit
a43f220d
authored
Feb 15, 2023
by
rakesh.pv
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. take input : check in redis : publish to mqtt:store in psl done
parent
d7e04952
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
112 additions
and
36 deletions
+112
-36
scripts/config/application_config.py
+2
-2
scripts/core/handlers/book_cinema_tickets.py
+16
-0
scripts/core/handlers/check_availablity.py
+66
-24
scripts/core/routes/app_routes.py
+27
-9
scripts/database/redis/redis_connction.py
+1
-1
No files found.
scripts/config/application_config.py
View file @
a43f220d
...
@@ -7,10 +7,10 @@ try:
...
@@ -7,10 +7,10 @@ try:
broker
=
config
.
get
(
"MQTT_Connection"
,
"broker"
)
broker
=
config
.
get
(
"MQTT_Connection"
,
"broker"
)
mqtt_port
=
config
.
get
(
"MQTT_Connection"
,
"port"
)
mqtt_port
=
config
.
get
(
"MQTT_Connection"
,
"port"
)
host
=
config
.
get
(
"redis_connection"
,
"host"
)
host
=
config
.
get
(
"redis_connection"
,
"host"
)
redis_port
=
config
.
get
(
"redis_connection"
,
"redis_port"
)
redis_port
=
config
.
get
(
"redis_connection"
,
"redis_port"
)
table_name
=
"ticket_details"
postgres_uri
=
"postgresql://postgres:test@localhost/theater_db"
except
Exception
as
e
:
except
Exception
as
e
:
print
(
"Exception-"
,
e
)
print
(
"Exception-"
,
e
)
scripts/core/handlers/book_cinema_tickets.py
View file @
a43f220d
import
json
import
json
import
paho.mqtt.client
as
mqtt
import
paho.mqtt.client
as
mqtt
import
pandas
as
pd
from
fastapi
import
HTTPException
from
fastapi
import
HTTPException
from
scripts.core.handlers.check_availablity
import
check_seat_avail
from
scripts.core.handlers.check_availablity
import
check_seat_avail
from
scripts.core.handlers.deleta_all_data
import
clean_record
from
scripts.database.redis.redis_connction
import
conn
from
scripts.database.redis.redis_connction
import
conn
from
scripts.model.sql_model
import
BookingDetails
class
Tickets
:
class
Tickets
:
...
@@ -39,3 +42,16 @@ class Tickets:
...
@@ -39,3 +42,16 @@ class Tickets:
return
{
"message"
:
"Ticket booking successful"
}
return
{
"message"
:
"Ticket booking successful"
}
except
Exception
as
e
:
except
Exception
as
e
:
return
e
return
e
def
get_details
(
self
):
try
:
records
=
self
.
session
.
query
(
BookingDetails
)
.
all
()
cleaned_data_dict
=
clean_record
(
records
)
# Use pandas to convert the list of dictionaries to a DataFrame
df
=
pd
.
DataFrame
(
cleaned_data_dict
)
print
(
"-------------------------------Booking Details-------------------------------"
)
print
(
df
)
# Use pandas to save the DataFrame to an Excel file
df
.
to_excel
(
'temp/booking_details.xlsx'
,
index
=
False
)
except
Exception
as
e
:
print
(
e
)
scripts/core/handlers/check_availablity.py
View file @
a43f220d
import
pickle
import
pickle
from
scripts.core.handlers.display_all_seats_in_hall
import
data_decode
,
create_json_view
# check if class seats are available
import
pickle
def
data_decode
(
val
):
# decode the val to integers
if
int
(
val
.
decode
(
'UTF-8'
)):
return
True
else
:
return
False
def
create_json_view
(
connection
,
ticket_class
):
mapper_ticket_class
=
{
"gold"
:
pickle
.
loads
(
connection
.
get
(
"gold"
)),
"silver"
:
pickle
.
loads
(
connection
.
get
(
"silver"
))
}
class_list
=
mapper_ticket_class
[
ticket_class
]
data
=
{
"message"
:
"Seat Availability"
}
# create the json for the user to view
for
i
,
row
in
enumerate
(
class_list
):
data
[
"Row {}"
.
format
(
i
+
1
)]
=
", "
.
join
(
map
(
str
,
row
))
return
data
def
seat_availability
(
connection
,
ticket_class
):
def
seat_availability
(
connection
,
ticket_class
):
try
:
try
:
if
ticket_class
==
"Gold"
:
# counter for the checking if one class is full then get the other class
class_list
=
pickle
.
loads
(
connection
.
get
(
"Gold"
))
counter
=
None
elif
ticket_class
==
"Silver"
:
class_avail
=
{
class_list
=
pickle
.
loads
(
connection
.
get
(
"Silver"
))
"gold"
:
connection
.
get
(
"gold_available_seats"
),
else
:
"silver"
:
connection
.
get
(
"silver_available_seats"
)
return
None
}
data
=
{}
for
i
,
row
in
enumerate
(
class_list
):
data
[
"Row {}"
.
format
(
i
+
1
)]
=
", "
.
join
(
map
(
str
,
row
))
return
data
# decode the data and the seat availability
for
key
,
val
in
class_avail
.
items
():
check_status
=
data_decode
(
val
)
if
key
==
ticket_class
and
check_status
:
return
create_json_view
(
connection
,
ticket_class
)
elif
key
is
not
ticket_class
and
check_status
:
counter
=
key
continue
if
counter
is
not
None
:
return
{
"message"
:
"Seat Availability"
,
"Status"
:
"Not Available"
,
counter
:
"Available"
}
else
:
return
{
"HouseFull"
}
except
Exception
as
e
:
except
Exception
as
e
:
print
(
e
)
print
(
e
)
import
pickle
# check for the seat availability
def
check_seat_avail
(
connection
,
ticket_class
,
seats_needed
):
def
check_seat_avail
(
connection
,
ticket_class
,
seats_needed
):
class_lists
=
{
try
:
"gold"
:
pickle
.
loads
(
connection
.
get
(
"Gold"
)),
class_lists
=
{
"silver"
:
pickle
.
loads
(
connection
.
get
(
"Silver"
))
"gold"
:
pickle
.
loads
(
connection
.
get
(
"gold"
)),
}
"silver"
:
pickle
.
loads
(
connection
.
get
(
"silver"
))
print
(
seats_needed
)
}
if
ticket_class
not
in
class_lists
:
# get the availability of seat
return
None
if
ticket_class
not
in
class_lists
:
flag
=
0
return
None
for
seats
in
class_lists
[
ticket_class
]:
flag
=
0
if
seats_needed
in
seats
:
for
seats
in
class_lists
[
ticket_class
]:
flag
+=
1
if
seats_needed
in
seats
:
return
True
flag
+=
1
if
flag
==
0
:
return
True
return
False
if
flag
==
0
:
return
False
except
Exception
as
e
:
print
(
e
)
scripts/core/routes/app_routes.py
View file @
a43f220d
...
@@ -2,6 +2,7 @@ from fastapi import APIRouter
...
@@ -2,6 +2,7 @@ from fastapi import APIRouter
from
scripts.core.handlers.book_cinema_tickets
import
Tickets
from
scripts.core.handlers.book_cinema_tickets
import
Tickets
from
scripts.core.handlers.check_availablity
import
seat_availability
from
scripts.core.handlers.check_availablity
import
seat_availability
from
scripts.core.handlers.make_redis_db
import
redis_db_create
from
scripts.database.redis.redis_connction
import
conn
from
scripts.database.redis.redis_connction
import
conn
from
scripts.model.user_model
import
user
from
scripts.model.user_model
import
user
...
@@ -13,15 +14,21 @@ async def index():
...
@@ -13,15 +14,21 @@ async def index():
return
" cinema hall is working"
return
" cinema hall is working"
@router.get
(
"/class_availabilty"
)
@router.get
(
"/set_seats_in_halls"
,
tags
=
[
"setting seats in two classes"
])
async
def
check_seat
():
def
generate_seats
():
x
=
input
(
" enter classs gold or silver"
)
try
:
if
x
==
"Gold"
:
redis_db_create
(
conn
,
"gold"
,
30
,
300
)
aa
=
seat_availability
(
conn
,
"Gold"
)
redis_db_create
(
conn
,
"silver"
,
25
,
125
)
return
aa
return
"booking started"
if
x
==
"Silver"
:
except
Exception
as
e
:
aa
=
seat_availability
(
conn
,
"Silver"
)
return
aa
print
(
e
)
@router.get
(
"/check_seats_from_database"
)
def
check_seats
(
ticket_class
:
str
):
message
=
seat_availability
(
conn
,
ticket_class
)
return
message
@router.post
(
"/book_cinema_ticket"
)
@router.post
(
"/book_cinema_ticket"
)
...
@@ -32,3 +39,14 @@ async def book_cinema_ticket(details: user):
...
@@ -32,3 +39,14 @@ async def book_cinema_ticket(details: user):
except
Exception
as
e
:
except
Exception
as
e
:
print
(
"error "
,
e
)
print
(
"error "
,
e
)
@router.get
(
"/get_booking_details"
,
tags
=
[
"get booking details"
])
def
get_booking_details
():
try
:
Tickets
.
get_details
()
return
{
"data"
:
"list all the data"
}
except
Exception
as
e
:
print
(
e
)
scripts/database/redis/redis_connction.py
View file @
a43f220d
...
@@ -2,4 +2,4 @@ import redis
...
@@ -2,4 +2,4 @@ import redis
from
scripts.config.application_config
import
host
,
redis_port
from
scripts.config.application_config
import
host
,
redis_port
conn
=
redis
.
Redis
(
host
,
redis_port
,
db
=
0
)
conn
=
redis
.
Redis
(
"127.0.0.1"
,
6379
,
db
=
0
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment