Skip to content

Commit f13a2d7

Browse files
jcschaffclaude
andcommitted
Add privacy field to BiomodelRef and fix versionFlag mapping in webapp
Add privacy (public/private/shared) to BiomodelRef through the full stack: DB query, domain model, REST DTO, OpenAPI spec, and all generated clients. Show privacy badge alongside version badge in the publication editor. Fix webapp to use biomodel.versionFlag instead of misusing biomodel.privacy for the version badge. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 80613a2 commit f13a2d7

15 files changed

Lines changed: 126 additions & 24 deletions

File tree

python-restclient/docs/BiomodelRef.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
99
**owner_name** | **str** | | [optional]
1010
**owner_key** | **int** | | [optional]
1111
**version_flag** | **int** | | [optional]
12+
**privacy** | **int** | | [optional]
1213

1314
## Example
1415

python-restclient/vcell_client/models/biomodel_ref.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ class BiomodelRef(BaseModel):
3636
owner_name: Optional[StrictStr] = Field(default=None, alias="ownerName")
3737
owner_key: Optional[StrictInt] = Field(default=None, alias="ownerKey")
3838
version_flag: Optional[StrictInt] = Field(default=None, alias="versionFlag")
39-
__properties: ClassVar[List[str]] = ["bmKey", "name", "ownerName", "ownerKey", "versionFlag"]
39+
privacy: Optional[StrictInt] = None
40+
__properties: ClassVar[List[str]] = ["bmKey", "name", "ownerName", "ownerKey", "versionFlag", "privacy"]
4041

4142
model_config = {
4243
"populate_by_name": True,
@@ -95,7 +96,8 @@ def from_dict(cls, obj: Dict) -> Self:
9596
"name": obj.get("name"),
9697
"ownerName": obj.get("ownerName"),
9798
"ownerKey": obj.get("ownerKey"),
98-
"versionFlag": obj.get("versionFlag")
99+
"versionFlag": obj.get("versionFlag"),
100+
"privacy": obj.get("privacy")
99101
})
100102
return _obj
101103

tools/openapi.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2329,6 +2329,9 @@ components:
23292329
versionFlag:
23302330
format: int32
23312331
type: integer
2332+
privacy:
2333+
format: int32
2334+
type: integer
23322335
CompositeCurve:
23332336
required:
23342337
- type

vcell-api/src/main/java/org/vcell/rest/server/PublicationServerResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ private Object convertToReferenceRep(String str,Class classType) throws Exceptio
199199
if(classType.equals(BioModelReferenceRep.class)) {
200200
BioModelReferenceRep[] biomodelReferenceReps = new BioModelReferenceRep[modelKeys.length];
201201
for (int i = 0; i < modelKeys.length; i++) {
202-
biomodelReferenceReps[i] = new BioModelReferenceRep(new KeyValue(modelKeys[i]), null, null,null);
202+
biomodelReferenceReps[i] = new BioModelReferenceRep(new KeyValue(modelKeys[i]), null, null, null, null);
203203
}
204204
return biomodelReferenceReps;
205205
}else if(classType.equals(MathModelReferenceRep.class)) {

vcell-rest/src/main/java/org/vcell/restq/models/BiomodelRef.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,17 @@ public record BiomodelRef(
99
String name,
1010
String ownerName,
1111
Long ownerKey,
12-
Integer versionFlag) {
12+
Integer versionFlag,
13+
Integer privacy) {
1314

1415
public static BiomodelRef fromBioModelReferenceRep(BioModelReferenceRep bioModelReferenceRep) {
1516
return new BiomodelRef(
1617
Long.parseLong(bioModelReferenceRep.getBmKey().toString()),
1718
bioModelReferenceRep.getName(),
1819
bioModelReferenceRep.getOwner().getName(),
1920
Long.parseLong(bioModelReferenceRep.getOwner().getID().toString()),
20-
bioModelReferenceRep.getVersionFlag().intValue()
21+
bioModelReferenceRep.getVersionFlag().intValue(),
22+
bioModelReferenceRep.getPrivacy()
2123
);
2224
}
2325

@@ -26,7 +28,8 @@ public BioModelReferenceRep toBioModelReferenceRep() {
2628
bmKey!=null ? new KeyValue(Long.toString(bmKey)) : null,
2729
name,
2830
new User(ownerName, new KeyValue(Long.toString(ownerKey))),
29-
versionFlag!=null ? versionFlag.longValue() : null
31+
versionFlag!=null ? versionFlag.longValue() : null,
32+
privacy
3033
);
3134
}
3235
}

vcell-rest/src/test/java/org/vcell/restq/TestEndpointUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ public static BiomodelRef biomodelRefFromBioModel(org.vcell.restclient.model.Bio
136136
ref.setOwnerName(biomodel.getOwnerName());
137137
ref.setOwnerKey(biomodel.getOwnerKey() != null ? Long.parseLong(biomodel.getOwnerKey()) : -1);
138138
ref.setVersionFlag(biomodel.getVersionFlag());
139+
ref.setPrivacy(biomodel.getPrivacy());
139140
return ref;
140141
}
141142

vcell-restclient/api/openapi.yaml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2638,6 +2638,7 @@ components:
26382638
ownerName: ownerName
26392639
name: name
26402640
versionFlag: 7
2641+
privacy: 9
26412642
ownerKey: 2
26422643
properties:
26432644
bmKey:
@@ -2653,6 +2654,9 @@ components:
26532654
versionFlag:
26542655
format: int32
26552656
type: integer
2657+
privacy:
2658+
format: int32
2659+
type: integer
26562660
type: object
26572661
CompositeCurve:
26582662
allOf:
@@ -3790,9 +3794,9 @@ components:
37903794
example:
37913795
ownerName: ownerName
37923796
name: name
3793-
versionFlag: 2
3794-
mmKey: 9
3795-
ownerKey: 3
3797+
versionFlag: 4
3798+
mmKey: 3
3799+
ownerKey: 2
37963800
properties:
37973801
mmKey:
37983802
format: int64
@@ -4024,25 +4028,27 @@ components:
40244028
ownerName: ownerName
40254029
name: name
40264030
versionFlag: 7
4031+
privacy: 9
40274032
ownerKey: 2
40284033
- bmKey: 5
40294034
ownerName: ownerName
40304035
name: name
40314036
versionFlag: 7
4037+
privacy: 9
40324038
ownerKey: 2
40334039
pubmedid: pubmedid
40344040
url: url
40354041
mathmodelRefs:
40364042
- ownerName: ownerName
40374043
name: name
4038-
versionFlag: 2
4039-
mmKey: 9
4040-
ownerKey: 3
4044+
versionFlag: 4
4045+
mmKey: 3
4046+
ownerKey: 2
40414047
- ownerName: ownerName
40424048
name: name
4043-
versionFlag: 2
4044-
mmKey: 9
4045-
ownerKey: 3
4049+
versionFlag: 4
4050+
mmKey: 3
4051+
ownerKey: 2
40464052
pubKey: 0
40474053
authors:
40484054
- authors

vcell-restclient/docs/BiomodelRef.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
|**ownerName** | **String** | | [optional] |
1313
|**ownerKey** | **Long** | | [optional] |
1414
|**versionFlag** | **Integer** | | [optional] |
15+
|**privacy** | **Integer** | | [optional] |
1516

1617

1718

vcell-restclient/src/main/java/org/vcell/restclient/model/BiomodelRef.java

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
BiomodelRef.JSON_PROPERTY_NAME,
3737
BiomodelRef.JSON_PROPERTY_OWNER_NAME,
3838
BiomodelRef.JSON_PROPERTY_OWNER_KEY,
39-
BiomodelRef.JSON_PROPERTY_VERSION_FLAG
39+
BiomodelRef.JSON_PROPERTY_VERSION_FLAG,
40+
BiomodelRef.JSON_PROPERTY_PRIVACY
4041
})
4142
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
4243
public class BiomodelRef {
@@ -55,6 +56,9 @@ public class BiomodelRef {
5556
public static final String JSON_PROPERTY_VERSION_FLAG = "versionFlag";
5657
private Integer versionFlag;
5758

59+
public static final String JSON_PROPERTY_PRIVACY = "privacy";
60+
private Integer privacy;
61+
5862
public BiomodelRef() {
5963
}
6064

@@ -183,6 +187,31 @@ public void setVersionFlag(Integer versionFlag) {
183187
}
184188

185189

190+
public BiomodelRef privacy(Integer privacy) {
191+
this.privacy = privacy;
192+
return this;
193+
}
194+
195+
/**
196+
* Get privacy
197+
* @return privacy
198+
**/
199+
@javax.annotation.Nullable
200+
@JsonProperty(JSON_PROPERTY_PRIVACY)
201+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
202+
203+
public Integer getPrivacy() {
204+
return privacy;
205+
}
206+
207+
208+
@JsonProperty(JSON_PROPERTY_PRIVACY)
209+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
210+
public void setPrivacy(Integer privacy) {
211+
this.privacy = privacy;
212+
}
213+
214+
186215
/**
187216
* Return true if this BiomodelRef object is equal to o.
188217
*/
@@ -199,12 +228,13 @@ public boolean equals(Object o) {
199228
Objects.equals(this.name, biomodelRef.name) &&
200229
Objects.equals(this.ownerName, biomodelRef.ownerName) &&
201230
Objects.equals(this.ownerKey, biomodelRef.ownerKey) &&
202-
Objects.equals(this.versionFlag, biomodelRef.versionFlag);
231+
Objects.equals(this.versionFlag, biomodelRef.versionFlag) &&
232+
Objects.equals(this.privacy, biomodelRef.privacy);
203233
}
204234

205235
@Override
206236
public int hashCode() {
207-
return Objects.hash(bmKey, name, ownerName, ownerKey, versionFlag);
237+
return Objects.hash(bmKey, name, ownerName, ownerKey, versionFlag, privacy);
208238
}
209239

210240
@Override
@@ -216,6 +246,7 @@ public String toString() {
216246
sb.append(" ownerName: ").append(toIndentedString(ownerName)).append("\n");
217247
sb.append(" ownerKey: ").append(toIndentedString(ownerKey)).append("\n");
218248
sb.append(" versionFlag: ").append(toIndentedString(versionFlag)).append("\n");
249+
sb.append(" privacy: ").append(toIndentedString(privacy)).append("\n");
219250
sb.append("}");
220251
return sb.toString();
221252
}
@@ -288,6 +319,11 @@ public String toUrlQueryString(String prefix) {
288319
joiner.add(String.format("%sversionFlag%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getVersionFlag()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
289320
}
290321

322+
// add `privacy` to the URL query string
323+
if (getPrivacy() != null) {
324+
joiner.add(String.format("%sprivacy%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getPrivacy()), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
325+
}
326+
291327
return joiner.toString();
292328
}
293329
}

vcell-server/src/main/java/cbit/vcell/modeldb/BioModelReferenceRep.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ public class BioModelReferenceRep {
88
private final String name;
99
private final User owner;
1010
private final Long versionFlag;
11-
12-
public BioModelReferenceRep(KeyValue bmKey, String name, User owner,Long versionFlag) {
11+
private final Integer privacy;
12+
13+
public BioModelReferenceRep(KeyValue bmKey, String name, User owner, Long versionFlag, Integer privacy) {
1314
super();
1415
this.bmKey = bmKey;
1516
this.name = name;
1617
this.owner = owner;
1718
this.versionFlag = versionFlag;
19+
this.privacy = privacy;
1820
}
1921

2022
public KeyValue getBmKey() {
@@ -32,4 +34,8 @@ public User getOwner() {
3234
public Long getVersionFlag() {
3335
return versionFlag;
3436
}
37+
38+
public Integer getPrivacy() {
39+
return privacy;
40+
}
3541
}

0 commit comments

Comments
 (0)