Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
ticket-booking
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
arjun.b
ticket-booking
Commits
f27e5829
Commit
f27e5829
authored
Feb 13, 2023
by
arjun.b
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
delete a ticket
parent
b8e7b169
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
100 additions
and
18 deletions
+100
-18
.idea/sonarlint/issuestore/index.pb
+20
-0
scripts/constants/db_connect.py
+2
-0
scripts/constants/end_points.py
+3
-3
scripts/core/handlers/book_ticket.py
+9
-6
scripts/core/handlers/delete_ticket.py
+31
-0
scripts/database/model.py
+18
-6
scripts/database/schema.py
+7
-1
scripts/external/logging_log_ERROR.log
+0
-0
scripts/services/publish.py
+10
-2
No files found.
.idea/sonarlint/issuestore/index.pb
View file @
f27e5829
No preview for this file type
scripts/constants/db_connect.py
View file @
f27e5829
from
sqlalchemy
import
create_engine
from
sqlalchemy.orm
import
sessionmaker
,
declarative_base
,
Session
from
scripts.database.model
import
Base
from
scripts.logging.logging
import
logger
...
...
@@ -8,6 +9,7 @@ def db_connect():
try
:
engine
=
create_engine
(
"postgresql://postgres:123@localhost/ticket"
)
Session
=
sessionmaker
(
autocommit
=
False
,
autoflush
=
False
,
bind
=
engine
)
Base
.
metadata
.
create_all
(
engine
)
session
=
Session
()
return
session
except
Exception
as
e
:
...
...
scripts/constants/end_points.py
View file @
f27e5829
class
EndPoints
:
root
=
"/"
publish
=
"/"
\ No newline at end of file
root
=
"/"
book_ticket
=
"/book ticket"
delete_a_ticket
=
"/delete_ticket{ticket_id}"
scripts/core/handlers/book_ticket.py
View file @
f27e5829
import
redis
from
scripts.constants.db_connect
import
db_connect
from
scripts.database.model
import
Ticket
from
scripts.logging.logging
import
logger
import
redis
import
pickle
class
Book_Ticket
:
...
...
@@ -41,15 +40,19 @@ class Book_Ticket:
# save ticket details to database
save_ticket
=
Ticket
(
mobile_no
=
ticket
.
mobile_no
,
pref_class
=
ticket
.
pref_class
,
no_of_ticket
=
ticket
.
no_of_ticket
,
preferred_class
=
ticket
.
pref_class
,
no_of_tickets
=
ticket
.
no_of_ticket
,
seat_no
=
ticket
.
seat_no
,
age
=
ticket
.
age
)
# booked_ticket = Booking(
# booking_id=Ticket.booking_id,
# row_no=1,
# seat_no=12
# )
session
=
db_connect
()
session
.
add
(
save_ticket
)
r
.
hset
(
ticket
.
pref_class
,
pickle
.
loads
(
save_ticket
))
session
.
commit
()
booking
.
append
(
ticket
)
print
(
"ticket booked successfully"
)
except
Exception
as
e
:
...
...
scripts/core/handlers/delete_ticket.py
0 → 100644
View file @
f27e5829
from
scripts.constants.db_connect
import
db_connect
from
scripts.database.model
import
Ticket
from
scripts.logging.logging
import
logger
class
db_handler
:
@staticmethod
def
delete_row
(
booking_id
):
try
:
# Soft delete a row in the ticket_details table
session
=
db_connect
()
ticket
=
session
.
query
(
Ticket
)
.
filter
(
Ticket
.
booking_id
==
booking_id
,
Ticket
.
status
==
False
)
.
first
()
if
ticket
is
not
None
:
ticket
.
status
=
True
session
.
commit
()
no_seats
=
ticket
.
seat_no
data_of_list
=
no_seats
.
split
(
","
)
integer_list
=
[
int
(
item
)
for
item
in
data_of_list
]
print
(
"data_of_list"
)
data
=
{
ticket
.
preferred_class
:
integer_list
}
return
{
"message"
:
"ticket deleted"
,
"Status"
:
ticket
.
status
,
"data"
:
data
}
else
:
print
(
f
"Ticket with id {booking_id} is not exist"
)
logger
.
error
(
f
"Ticket with id {booking_id} is not exist"
)
return
{
"message"
:
"ticket not deleted"
,
"status"
:
"Ticket not exist"
,
"data"
:
ticket
.
seat_no
}
except
Exception
as
e
:
logger
.
error
(
e
)
scripts/database/model.py
View file @
f27e5829
from
sqlalchemy
import
Column
,
String
,
Integer
,
text
from
datetime
import
date
from
sqlalchemy
import
Column
,
String
,
Integer
,
Boolean
,
Date
,
ForeignKey
,
UniqueConstraint
from
sqlalchemy.orm
import
declarative_base
Base
=
declarative_base
()
...
...
@@ -6,9 +7,20 @@ Base = declarative_base()
class
Ticket
(
Base
):
__tablename__
=
"ticket_details"
# id = Column(Integer, primary_key=True, server_default=text("SERIAL"))
mobile_no
=
Column
(
String
,
primary_key
=
True
,
unique
=
True
,
index
=
True
)
pref_class
=
Column
(
String
)
no_of_ticket
=
Column
(
Integer
)
booking_id
=
Column
(
Integer
,
primary_key
=
True
)
# __table_args__ = (UniqueConstraint("booking_id", "booking_id"))
mobile_no
=
Column
(
String
,
unique
=
True
)
preferred_class
=
Column
(
String
)
no_of_tickets
=
Column
(
Integer
)
seat_no
=
Column
(
String
)
date_of_purchase
=
Column
(
Date
,
default
=
date
.
today
())
age
=
Column
(
Integer
)
status
=
Column
(
Boolean
,
default
=
False
)
# class Booking(Base):
# __tablename__ = "booking_details"
# booking_id = Column(Integer, ForeignKey('ticket_details.booking_id'))
# row_no = Column(Integer)
# seat_no = Column(Integer)
# status = Column(Boolean, default=False)
scripts/database/schema.py
View file @
f27e5829
from
pydantic
import
BaseModel
from
sqlalchemy
import
String
class
Film_Ticket
(
BaseModel
):
mobile_no
:
int
pref_class
:
str
no_of_ticket
:
int
age
:
int
seat_no
:
str
age
:
int
class
soft_delete
(
BaseModel
):
ticket_id
:
int
scripts/external/logging_log_ERROR.log
View file @
f27e5829
This diff is collapsed.
Click to expand it.
scripts/services/publish.py
View file @
f27e5829
...
...
@@ -2,7 +2,8 @@ from fastapi import APIRouter
from
scripts.constants.end_points
import
EndPoints
from
scripts.core.handlers.book_ticket
import
Book_Ticket
from
scripts.database.schema
import
Film_Ticket
from
scripts.core.handlers.delete_ticket
import
db_handler
from
scripts.database.schema
import
Film_Ticket
,
soft_delete
router
=
APIRouter
()
...
...
@@ -12,7 +13,14 @@ def root():
return
{
"data"
:
"ticket booking task"
}
@router.post
(
"/book ticket"
,
tags
=
[
"book tickets"
])
@router.post
(
EndPoints
.
book_ticket
,
tags
=
[
"book tickets"
])
def
book_ticket
(
ticket
:
Film_Ticket
):
Book_Ticket
.
book_ticket
(
ticket
)
return
{
"data"
:
"ticket booked successfully"
}
@router.post
(
EndPoints
.
delete_a_ticket
,
tags
=
[
"delete a ticket"
])
def
delete_tickets
(
tid
:
int
):
res
=
db_handler
.
delete_row
(
tid
)
print
(
res
)
return
res
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