mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-02 09:26:08 -05:00
Another thing needs an enum.
Signed-off-by: Cliff Hill <Clifford.hill@gsa.gov>
This commit is contained in:
@@ -78,7 +78,8 @@ def enum_column(enum_type, **kwargs):
|
|||||||
return db.Column(
|
return db.Column(
|
||||||
db.Enum(
|
db.Enum(
|
||||||
*[i.value for i in enum_type],
|
*[i.value for i in enum_type],
|
||||||
name=_enum_column_names[enum_type]
|
name=_enum_column_names[enum_type],
|
||||||
|
values_callable=(lambda x: [i.value for i in x]),
|
||||||
),
|
),
|
||||||
**kwargs,
|
**kwargs,
|
||||||
)
|
)
|
||||||
@@ -1449,7 +1450,13 @@ class NotificationAllTimeView(db.Model):
|
|||||||
sent_at = db.Column(db.DateTime)
|
sent_at = db.Column(db.DateTime)
|
||||||
sent_by = db.Column(db.String)
|
sent_by = db.Column(db.String)
|
||||||
updated_at = db.Column(db.DateTime)
|
updated_at = db.Column(db.DateTime)
|
||||||
status = db.Column("notification_status", db.Text)
|
status = enum_column(
|
||||||
|
NotificationStatus,
|
||||||
|
name="notification_status",
|
||||||
|
nullable=True,
|
||||||
|
default=NotificationStatus.CREATED,
|
||||||
|
key="status",
|
||||||
|
)
|
||||||
reference = db.Column(db.String)
|
reference = db.Column(db.String)
|
||||||
client_reference = db.Column(db.String)
|
client_reference = db.Column(db.String)
|
||||||
international = db.Column(db.Boolean)
|
international = db.Column(db.Boolean)
|
||||||
|
|||||||
@@ -118,6 +118,7 @@ _enum_params: dict[Enum, EnumValues] = {
|
|||||||
CodeType: {"values": ["email", "sms"], "name": "code_types"},
|
CodeType: {"values": ["email", "sms"], "name": "code_types"},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def enum_create(values: list[str], name: str) -> None:
|
def enum_create(values: list[str], name: str) -> None:
|
||||||
enum_db_type = postgresql.ENUM(*values, name=name)
|
enum_db_type = postgresql.ENUM(*values, name=name)
|
||||||
enum_db_type.create(op.get_bind())
|
enum_db_type.create(op.get_bind())
|
||||||
@@ -129,11 +130,15 @@ def enum_drop(values: list[str], name: str) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def enum_using(column_name: str, enum: Enum) -> str:
|
def enum_using(column_name: str, enum: Enum) -> str:
|
||||||
return f"{column_name}::{_enum_params[enum]['name']}"
|
return f"{column_name}::text::{_enum_params[enum]['name']}"
|
||||||
|
|
||||||
|
|
||||||
def enum_type(enum: Enum) -> sa.Enum:
|
def enum_type(enum: Enum) -> sa.Enum:
|
||||||
return sa.Enum(*_enum_params[enum]["values"], name=_enum_params[enum]["name"])
|
return sa.Enum(
|
||||||
|
*_enum_params[enum]["values"],
|
||||||
|
name=_enum_params[enum]["name"],
|
||||||
|
values_callable=(lambda x: [e.value for e in x]),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def upgrade():
|
def upgrade():
|
||||||
@@ -251,14 +256,22 @@ def upgrade():
|
|||||||
existing_nullable=False,
|
existing_nullable=False,
|
||||||
postgresql_using=enum_using("status", InvitedUserStatus),
|
postgresql_using=enum_using("status", InvitedUserStatus),
|
||||||
)
|
)
|
||||||
|
op.alter_column(
|
||||||
|
"invited_users",
|
||||||
|
"auth_type",
|
||||||
|
existing_type=sa.VARCHAR(),
|
||||||
|
type_=sa.VARCHAR(),
|
||||||
|
existing_nullable=False,
|
||||||
|
server_default=None,
|
||||||
|
existing_server_default=sa.text("'sms_auth'::character varying"),
|
||||||
|
)
|
||||||
op.alter_column(
|
op.alter_column(
|
||||||
"invited_users",
|
"invited_users",
|
||||||
"auth_type",
|
"auth_type",
|
||||||
existing_type=sa.VARCHAR(),
|
existing_type=sa.VARCHAR(),
|
||||||
type_=enum_type(AuthType),
|
type_=enum_type(AuthType),
|
||||||
existing_nullable=False,
|
existing_nullable=False,
|
||||||
existing_server_default=sa.text("'sms_auth'::character varying"),
|
postgresql_using="auth_type::auth_types",
|
||||||
postgresql_using=enum_using("auth_type", AuthType),
|
|
||||||
)
|
)
|
||||||
op.alter_column(
|
op.alter_column(
|
||||||
"jobs",
|
"jobs",
|
||||||
@@ -456,10 +469,17 @@ def upgrade():
|
|||||||
"users",
|
"users",
|
||||||
"auth_type",
|
"auth_type",
|
||||||
existing_type=sa.VARCHAR(),
|
existing_type=sa.VARCHAR(),
|
||||||
type_=enum_type(AuthType),
|
type_=sa.VARCHAR(),
|
||||||
|
server_default=None,
|
||||||
existing_nullable=False,
|
existing_nullable=False,
|
||||||
existing_server_default=sa.text("'sms_auth'::character varying"),
|
existing_server_default=sa.text("'sms_auth'::character varying"),
|
||||||
postgresql_using=enum_using("auth_type", AuthType),
|
)
|
||||||
|
op.alter_column(
|
||||||
|
"users",
|
||||||
|
"auth_type",
|
||||||
|
existing_type=sa.VARCHAR(),
|
||||||
|
type_=enum_type(AuthType),
|
||||||
|
existing_nullable=False,
|
||||||
)
|
)
|
||||||
op.alter_column(
|
op.alter_column(
|
||||||
"verify_codes",
|
"verify_codes",
|
||||||
@@ -509,7 +529,7 @@ def downgrade():
|
|||||||
existing_type=enum_type(AuthType),
|
existing_type=enum_type(AuthType),
|
||||||
type_=sa.VARCHAR(),
|
type_=sa.VARCHAR(),
|
||||||
existing_nullable=False,
|
existing_nullable=False,
|
||||||
existing_server_default=sa.text("'sms_auth'::character varying"),
|
server_default=sa.text("'sms_auth'::character varying"),
|
||||||
)
|
)
|
||||||
op.alter_column(
|
op.alter_column(
|
||||||
"templates_history",
|
"templates_history",
|
||||||
@@ -684,7 +704,7 @@ def downgrade():
|
|||||||
existing_type=enum_type(AuthType),
|
existing_type=enum_type(AuthType),
|
||||||
type_=sa.VARCHAR(),
|
type_=sa.VARCHAR(),
|
||||||
existing_nullable=False,
|
existing_nullable=False,
|
||||||
existing_server_default=sa.text("'sms_auth'::character varying"),
|
server_default=sa.text("'sms_auth'::character varying"),
|
||||||
)
|
)
|
||||||
op.alter_column(
|
op.alter_column(
|
||||||
"invited_users",
|
"invited_users",
|
||||||
|
|||||||
Reference in New Issue
Block a user