bugfix set user default domain

This commit is contained in:
2024-12-08 17:05:04 +09:00
parent 91df7ed0fa
commit 198e442292
4 changed files with 63 additions and 27 deletions

View File

@@ -434,7 +434,7 @@ async def get_defaultuserdomain(
response_model=ApiReturnModel[DomainOut|None],
response_model_exclude_none=True,
)
async def update_activeuserdomain(
async def set_defualtuserdomain(
request: Request,
domainid:int,
user=Depends(get_current_active_user),

View File

@@ -40,7 +40,7 @@ class dbdomain(crudbase):
def get_domains_by_owner(self,db: Session,ownerid:int)-> ApiReturnPage[models.Base]:
return paginate(db,super().get_by_conditions({"ownerid":ownerid}))
def create_domain(self,db: Session, domain: schemas.DomainIn,userid:int):
#db_domain = super().get_by_conditions(db,{"url":domain.url,"kintoneuser":domain.kintoneuser,"onwerid":userid}).first()
#if not db_domain:
@@ -117,20 +117,29 @@ class dbdomain(crudbase):
return None
def set_default_domain(self,db: Session, userid: int,domainid: int):
db_domain =super().get_by_conditions(db,{"id":domainid,"is_active":True}).first()
db_domain =db.execute(super().get_by_conditions({"id":domainid,"is_active":True})).scalars().first()
if db_domain:
db_default_domain = dbuserdomain.get_user_default_domain(db,userid)
db_userdomain =dbuserdomain.get_userdomain(db,userid,domainid)
if db_default_domain:
db_default_domain.is_default = False
db_default_domain.updateuserid = userid
db.add(db_default_domain)
if db_default_domain.domainid != domainid:
db_default_domain.is_default = False
db_default_domain.updateuserid = userid
db.add(db_default_domain)
else:
return db_domain
if db_userdomain:
db_userdomain.is_default = True
db_userdomain.updateuserid = userid
db.add(db_userdomain)
else:
db_userdomain = dbuserdomain.create(db,schemas.UserDomainIn(domainid=domainid,userid=userid,is_default = True))
db.add(db_userdomain)
db.commit()
return db_domain
return db_domain
else:
return None
def get_shareddomain_users(self,db: Session,ownerid:int,domainid: int) -> ApiReturnPage[models.Base]:
users = db.query(models.User).join(models.UserDomain,models.UserDomain.userid == models.User.id).filter(models.UserDomain.domainid ==domainid)

View File

@@ -192,6 +192,11 @@ class UserDomain(BaseModel):
domain:DomainOut
user:UserOut
class UserDomainIn(BaseModel):
is_default: bool
domainid:int
userid:int
class Domain(Base):
id: int
tenantid: str

View File

@@ -27,25 +27,6 @@ def test_create_domain(test_client, login_user,login_user_id):
assert data["data"]["is_active"] == create_domain["is_active"]
assert data["data"]["owner"]["id"] == login_user_id
def test_edit_domain(test_client, test_domain, login_user):
update_domain ={
"id": test_domain.id,
"tenantid": "1",
"name": "テスト環境abc",
"url": test_domain.url,
"kintoneuser": test_domain.kintoneuser,
"is_active": True
}
response = test_client.put("/api/domain", json=update_domain,headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200
data = response.json()
assert data["data"]["name"] == update_domain["name"]
assert data["data"]["name"] == update_domain["name"]
assert data["data"]["url"] == update_domain["url"]
assert data["data"]["kintoneuser"] == update_domain["kintoneuser"]
assert data["data"]["is_active"] == update_domain["is_active"]
def test_delete_domain(test_client, login_user):
delete_domain ={
"id": 0,
@@ -67,4 +48,45 @@ def test_delete_domain(test_client, login_user):
assert response.json()["data"]["name"] == delete_domain["name"]
response = test_client.get("/api/domain/"+ str(id), headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200
assert "data" not in response.json()
assert "data" not in response.json()
def test_set_defaultuserdomain(test_client, test_domain,login_user):
response = test_client.put("/api/defaultdomain/"+str(test_domain.id), headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200
data = response.json()
assert "data" in data
assert data["data"] is not None
assert data["data"]["name"] == test_domain.name
assert data["data"]["url"] == test_domain.url
assert data["data"]["kintoneuser"] == test_domain.kintoneuser
assert data["data"]["is_active"] == test_domain.is_active
def test_get_defaultuserdomain(test_client, test_domain,login_user):
response = test_client.get("/api/defaultdomain", headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200
data = response.json()
assert data["data"]["name"] == test_domain.name
assert data["data"]["url"] == test_domain.url
assert data["data"]["kintoneuser"] == test_domain.kintoneuser
assert data["data"]["is_active"] == test_domain.is_active
def test_edit_domain(test_client, test_domain, login_user):
update_domain ={
"id": test_domain.id,
"tenantid": "1",
"name": "テスト環境abc",
"url": test_domain.url,
"kintoneuser": test_domain.kintoneuser,
"is_active": True
}
response = test_client.put("/api/domain", json=update_domain,headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200
data = response.json()
assert data["data"]["name"] == update_domain["name"]
assert data["data"]["url"] == update_domain["url"]
assert data["data"]["kintoneuser"] == update_domain["kintoneuser"]
assert data["data"]["is_active"] == update_domain["is_active"]