Closed
Description
Background
See #2 for background.
Problem
The models must be updated according to the refined API spec.
Solution
We've split this analysis into two sections: Lists and properties. Each section lists what's extra and what's missing for each of the three types.
Lists:
Current setup
Publisher
- Projects
- Users
- ParentPublishers
- ChildPublishers
Project
- Collaborators
- Dependencies
- Connections
- Features
- Links
- Images
User
- Connections
- Projects
- Publishers
- Links
Changes to make:
[What's extra]:
Publisher doesn't need:
- Users
- Projects
Project doesn't need:
- [n/a]
User doesn't need:
- Projects
[What's missing]:
Publisher is missing:
- Users + Roles
- Connections
- Links
Project is missing:
- [n/a]
User is missing:
- Projects + Roles
- Publisher + Roles
Properties:
Current setup
Publisher
- Owner
- Name
- Description
- Icon
- AccentColor
- ContactEmail
- IsUnlisted
Project
- Publisher
- Name
- Description
- Icon
- HeroImage
- AccentColor
- Category
- CreatedAt
- ForgetMe
- IsUnlisted
User
- Name
- MarkdownAboutMe
- Icon
- ForgetMe
Changes to make:
[What's extra]:
Publisher doesn't need:
- Owner
- ContactEmail
- Icon
Project doesn't need:
- HeroImage
- CreatedAt
- Icon
User doesn't need:
- MarkdownAboutMe
- Icon
[What's missing]:
Publisher is missing:
- ExtendedDescription
- ForgetMe
Project is missing:
- ExtendedDescription
User is missing:
- ExtendedDescription
In addition to property and collection updates, several other changes should be made to the models while we're in here refactoring things:
- Remove constructors entirely, declare properties as required or supply default values instead.
- Remove any json-related attributes.
- Any mention of
IsPrivate
should be updated toIsUnlisted
, including comments. - Identify common properties and collections, then create common interfaces to ensure consistency. Ensure code comments match the generic nature of the common interfaces.
- Cid should be replaced with DagCid wherever possible. This signals to IPLD that the value is a "link" type pointing to another DAG and is used by various automated tooling.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status