Add endpoint for creating local contacts with access control
Introduced a new `local_contact_router` to handle creation of local contacts. The endpoint enforces role-based access control and ensures no duplication of email addresses. Updated the router exports for consistency and cleaned up a large test file to improve readability.
This commit is contained in:
@ -9,6 +9,8 @@ from .data import (
|
||||
dewar_types,
|
||||
serial_numbers,
|
||||
sample_events,
|
||||
local_contacts,
|
||||
beamtimes,
|
||||
)
|
||||
from .slots_data import slots
|
||||
|
||||
@ -24,4 +26,6 @@ __all__ = [
|
||||
"serial_numbers",
|
||||
"sample_events",
|
||||
"slots",
|
||||
"local_contacts",
|
||||
"beamtimes",
|
||||
]
|
||||
|
@ -10,13 +10,14 @@ from app.models import (
|
||||
DewarSerialNumber,
|
||||
SampleEvent,
|
||||
LogisticsEvent,
|
||||
LocalContact,
|
||||
Beamtime,
|
||||
)
|
||||
from datetime import datetime, timedelta
|
||||
import random
|
||||
import time
|
||||
import hashlib
|
||||
|
||||
|
||||
dewar_types = [
|
||||
DewarType(id=1, dewar_type="Type A"),
|
||||
DewarType(id=2, dewar_type="Type B"),
|
||||
@ -373,6 +374,50 @@ specific_dewars1 = [dewar for dewar in dewars if dewar.id in specific_dewar_ids1
|
||||
specific_dewars2 = [dewar for dewar in dewars if dewar.id in specific_dewar_ids2]
|
||||
specific_dewars3 = [dewar for dewar in dewars if dewar.id in specific_dewar_ids3]
|
||||
|
||||
local_contacts = [
|
||||
LocalContact(
|
||||
id=1,
|
||||
firstname="John",
|
||||
lastname="Rambo",
|
||||
phone_number="+410000000",
|
||||
email="john.rambo@war.com",
|
||||
),
|
||||
LocalContact(
|
||||
id=2,
|
||||
firstname="John",
|
||||
lastname="Mclane",
|
||||
phone_number="+9990000099",
|
||||
email="john.mclane@war.com",
|
||||
),
|
||||
]
|
||||
|
||||
beamtimes = [
|
||||
Beamtime(
|
||||
id=1,
|
||||
pgroups="p20001",
|
||||
beamtime_name="p20001-test",
|
||||
beamline="X06DA",
|
||||
start_date=datetime.strptime("06.02.2025", "%d.%m.%Y").date(),
|
||||
end_date=datetime.strptime("07.02.2025", "%d.%m.%Y").date(),
|
||||
status="confirmed",
|
||||
comments="this is a test beamtime",
|
||||
proposal_id=1,
|
||||
local_contact_id=1,
|
||||
),
|
||||
Beamtime(
|
||||
id=2,
|
||||
pgroups="p20002",
|
||||
beamtime_name="p20001-test",
|
||||
beamline="X06DA",
|
||||
start_date=datetime.strptime("07.02.2025", "%d.%m.%Y").date(),
|
||||
end_date=datetime.strptime("08.02.2025", "%d.%m.%Y").date(),
|
||||
status="confirmed",
|
||||
comments="this is a test beamtime",
|
||||
proposal_id=2,
|
||||
local_contact_id=2,
|
||||
),
|
||||
]
|
||||
|
||||
# Define shipments
|
||||
shipments = [
|
||||
Shipment(
|
||||
|
Reference in New Issue
Block a user