Skip to content

Commit 81aed55

Browse files
committed
feat: openapi repository list add id[optional] param
1 parent 251774a commit 81aed55

File tree

1 file changed

+30
-23
lines changed

1 file changed

+30
-23
lines changed

crates/jz-module/src/repo/list.rs

+30-23
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ pub struct RepositoryListParam {
1111
pub limit: Option<i64>,
1212
pub offset: Option<i64>,
1313
pub category: Option<String>,
14+
pub id: Option<Uuid>,
1415
}
1516
#[derive(Deserialize,Serialize)]
1617
pub struct RepositoryListResult {
@@ -88,11 +89,11 @@ impl AppModule {
8889
let rf = parma.r#type.to_lowercase();
8990
if rf == "code" {
9091
Some("Code".to_string())
91-
}else if rf == "data" {
92+
} else if rf == "data" {
9293
Some("Data".to_string())
93-
}else if rf == "model" {
94+
} else if rf == "model" {
9495
Some("Model".to_string())
95-
}else {
96+
} else {
9697
return Err(anyhow::anyhow!("invalid rtype"));
9798
}
9899
};
@@ -101,6 +102,9 @@ impl AppModule {
101102
if let Some(ref rtype) = rtype {
102103
condition = condition.add(repository::Column::Rtype.eq(rtype));
103104
};
105+
if let Some(ref uid) = parma.id {
106+
condition = condition.add(repository::Column::Uid.eq(uid.clone()));
107+
}
104108
let repos = repository::Entity::find()
105109
.filter(condition)
106110
.order_by_desc(repository::Column::CreatedAt)
@@ -114,24 +118,24 @@ impl AppModule {
114118
.filter(users::Column::Uid.eq(i.owner_uid))
115119
.one(&self.read)
116120
.await? {
117-
Some(user) => RepositoryListAuthor {
118-
name: Some(user.username),
119-
avatar: user.avatar,
121+
Some(user) => RepositoryListAuthor {
122+
name: Some(user.username),
123+
avatar: user.avatar,
124+
address: None,
125+
},
126+
None => match self.org_by_uid(i.owner_uid).await {
127+
Ok(org) => RepositoryListAuthor {
128+
name: Some(org.name),
129+
avatar: org.avatar,
120130
address: None,
121131
},
122-
None => match self.org_by_uid(i.owner_uid).await {
123-
Ok(org) => RepositoryListAuthor {
124-
name: Some(org.name),
125-
avatar: org.avatar,
126-
address: None,
127-
},
128-
Err(_) => RepositoryListAuthor {
129-
name: None,
130-
avatar: None,
131-
address: None,
132-
},
132+
Err(_) => RepositoryListAuthor {
133+
name: None,
134+
avatar: None,
135+
address: None,
133136
},
134-
};
137+
},
138+
};
135139
let model_info = RepositoryModelInfo {
136140
name: i.name,
137141
version: None,
@@ -154,25 +158,28 @@ impl AppModule {
154158
},
155159
);
156160
}
157-
let cond = if let Some(ref rtype) = rtype && rtype != "all"{
161+
let total = if let Some(_) = parma.id {
162+
let cond = if let Some(ref rtype) = rtype && rtype != "all" {
158163
Condition::all()
159164
.add(repository::Column::IsPrivate.eq(false))
160165
.add(repository::Column::Rtype.eq(rtype))
161166
} else {
162167
Condition::all()
163168
.add(repository::Column::IsPrivate.eq(false))
164169
};
165-
let total = repository::Entity::find()
170+
repository::Entity::find()
166171
.filter(cond)
167172
.count(&self.read)
168-
.await?;
169-
Ok(json!({
173+
.await?
174+
} else {
175+
1
176+
};
177+
Ok(json!({
170178
"data": result,
171179
"limit": parma.limit,
172180
"offset": parma.offset,
173181
"total": total,
174182
"type": rtype,
175183
}))
176-
177184
}
178185
}

0 commit comments

Comments
 (0)