Skip to content

Commit

Permalink
[profiles] split promotion property
Browse files Browse the repository at this point in the history
  • Loading branch information
voltini committed Dec 12, 2024
1 parent 05eb063 commit 5881940
Show file tree
Hide file tree
Showing 9 changed files with 60 additions and 23 deletions.
3 changes: 2 additions & 1 deletion nanapi/database/user/profile_get_by_discord_id.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ with
select profiles {
birthday,
full_name,
graduation_year,
photo,
promotion,
pronouns,
n7_major,
telephone,
user: {
discord_id,
Expand Down
6 changes: 4 additions & 2 deletions nanapi/database/user/profile_get_by_discord_id.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@
select profiles {
birthday,
full_name,
graduation_year,
photo,
promotion,
pronouns,
n7_major,
telephone,
user: {
discord_id,
Expand All @@ -33,9 +34,10 @@ class ProfileGetByDiscordIdResultUser(BaseModel):
class ProfileGetByDiscordIdResult(BaseModel):
birthday: datetime | None
full_name: str | None
graduation_year: str | None
photo: str | None
promotion: str | None
pronouns: str | None
n7_major: str | None
telephone: str | None
user: ProfileGetByDiscordIdResultUser

Expand Down
12 changes: 8 additions & 4 deletions nanapi/database/user/profile_merge_select.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@ with
discord_username := <str>$discord_username,
birthday := <optional datetime>$birthday,
full_name := <optional str>$full_name,
graduation_year := <optional str>$graduation_year,
photo := <optional str>$photo,
promotion := <optional str>$promotion,
pronouns := <optional str>$pronouns,
n7_major := <optional str>$n7_major,
telephone := <optional str>$telephone,
user := (
insert user::User {
Expand All @@ -23,9 +24,10 @@ with
insert user::Profile {
birthday := birthday,
full_name := full_name,
graduation_year := graduation_year,
photo := photo,
promotion := promotion,
pronouns := pronouns,
n7_major := n7_major,
telephone := telephone,
user := user,
}
Expand All @@ -34,19 +36,21 @@ with
update user::Profile set {
birthday := birthday,
full_name := full_name,
graduation_year := graduation_year,
photo := photo,
promotion := promotion,
pronouns := pronouns,
n7_major := n7_major,
telephone := telephone,
}
)
)
select profile {
birthday,
graduation_year,
full_name,
photo,
promotion,
pronouns,
n7_major,
telephone,
user: {
discord_id,
Expand Down
21 changes: 14 additions & 7 deletions nanapi/database/user/profile_merge_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@
discord_username := <str>$discord_username,
birthday := <optional datetime>$birthday,
full_name := <optional str>$full_name,
graduation_year := <optional str>$graduation_year,
photo := <optional str>$photo,
promotion := <optional str>$promotion,
pronouns := <optional str>$pronouns,
n7_major := <optional str>$n7_major,
telephone := <optional str>$telephone,
user := (
insert user::User {
Expand All @@ -29,9 +30,10 @@
insert user::Profile {
birthday := birthday,
full_name := full_name,
graduation_year := graduation_year,
photo := photo,
promotion := promotion,
pronouns := pronouns,
n7_major := n7_major,
telephone := telephone,
user := user,
}
Expand All @@ -40,19 +42,21 @@
update user::Profile set {
birthday := birthday,
full_name := full_name,
graduation_year := graduation_year,
photo := photo,
promotion := promotion,
pronouns := pronouns,
n7_major := n7_major,
telephone := telephone,
}
)
)
select profile {
birthday,
graduation_year,
full_name,
photo,
promotion,
pronouns,
n7_major,
telephone,
user: {
discord_id,
Expand All @@ -69,10 +73,11 @@ class ProfileMergeSelectResultUser(BaseModel):

class ProfileMergeSelectResult(BaseModel):
birthday: datetime | None
graduation_year: str | None
full_name: str | None
photo: str | None
promotion: str | None
pronouns: str | None
n7_major: str | None
telephone: str | None
user: ProfileMergeSelectResultUser

Expand All @@ -87,9 +92,10 @@ async def profile_merge_select(
discord_username: str,
birthday: datetime | None = None,
full_name: str | None = None,
graduation_year: str | None = None,
photo: str | None = None,
promotion: str | None = None,
pronouns: str | None = None,
n7_major: str | None = None,
telephone: str | None = None,
) -> ProfileMergeSelectResult:
resp = await executor.query_single_json(
Expand All @@ -98,9 +104,10 @@ async def profile_merge_select(
discord_username=discord_username,
birthday=birthday,
full_name=full_name,
graduation_year=graduation_year,
photo=photo,
promotion=promotion,
pronouns=pronouns,
n7_major=n7_major,
telephone=telephone,
)
return adapter.validate_json(resp, strict=False)
5 changes: 4 additions & 1 deletion nanapi/database/user/profile_select_filter_discord_id.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ with
discord_ids := <array<int64>>$discord_ids,
_discord_ids := array_unpack(discord_ids),
select user::Profile {
birthday,
full_name,
graduation_year,
photo,
promotion,
pronouns,
n7_major,
telephone,
user: {
discord_id,
Expand Down
12 changes: 10 additions & 2 deletions nanapi/database/user/profile_select_filter_discord_id.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from datetime import datetime

from edgedb import AsyncIOExecutor
from pydantic import BaseModel, TypeAdapter

Expand All @@ -6,9 +8,12 @@
discord_ids := <array<int64>>$discord_ids,
_discord_ids := array_unpack(discord_ids),
select user::Profile {
birthday,
full_name,
graduation_year,
photo,
promotion,
pronouns,
n7_major,
telephone,
user: {
discord_id,
Expand All @@ -26,9 +31,12 @@ class ProfileSelectFilterDiscordIdResultUser(BaseModel):


class ProfileSelectFilterDiscordIdResult(BaseModel):
birthday: datetime | None
full_name: str | None
graduation_year: str | None
photo: str | None
promotion: str | None
pronouns: str | None
n7_major: str | None
telephone: str | None
user: ProfileSelectFilterDiscordIdResultUser

Expand Down
7 changes: 5 additions & 2 deletions nanapi/database/user/profile_select_ilike.edgeql
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
with
pattern := <str>$pattern
select user::Profile {
birthday,
full_name,
graduation_year,
photo,
promotion,
pronouns,
n7_major,
telephone,
user: {
discord_id,
discord_id_str,
},
}
filter .full_name ilike pattern or .promotion ilike pattern or .telephone ilike pattern
filter .full_name ilike pattern or .telephone ilike pattern
14 changes: 11 additions & 3 deletions nanapi/database/user/profile_select_ilike.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
from datetime import datetime

from edgedb import AsyncIOExecutor
from pydantic import BaseModel, TypeAdapter

EDGEQL_QUERY = r"""
with
pattern := <str>$pattern
select user::Profile {
birthday,
full_name,
graduation_year,
photo,
promotion,
pronouns,
n7_major,
telephone,
user: {
discord_id,
discord_id_str,
},
}
filter .full_name ilike pattern or .promotion ilike pattern or .telephone ilike pattern
filter .full_name ilike pattern or .telephone ilike pattern
"""


Expand All @@ -24,9 +29,12 @@ class ProfileSelectIlikeResultUser(BaseModel):


class ProfileSelectIlikeResult(BaseModel):
birthday: datetime | None
full_name: str | None
graduation_year: str | None
photo: str | None
promotion: str | None
pronouns: str | None
n7_major: str | None
telephone: str | None
user: ProfileSelectIlikeResultUser

Expand Down
3 changes: 2 additions & 1 deletion nanapi/models/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ class UpsertProfileBody(BaseModel):
birthday: datetime | None = None
discord_username: str
full_name: str | None = None
graduation_year: str | None = None
n7_specialty: str | None = None
photo: str | None = None
promotion: str | None = None
pronouns: str | None = None
telephone: str | None = None

0 comments on commit 5881940

Please sign in to comment.