cozy-client / HasMany
Class: HasMany¶
Related documents are stored in the relationships attribute of the object, following the JSON API spec.
Responsible for
- Creating relationships
- Removing relationships
description
const schema = { todos: { doctype: 'io.cozy.todos', relationships: { tasks: { doctype: 'io.cozy.tasks', type: 'has-many' } } } } const todo = { label: "Protect people's privacy", relationships: { tasks: { data: [ {_id: 1, _type: 'io.cozy.tasks'}, {_id: 2, _type: 'io.cozy.tasks'} ] } } }
Hierarchy¶
-
↳
HasMany
Constructors¶
constructor¶
• new HasMany(target
, name
, doctype
, options
)
Parameters
Name | Type | Description |
---|---|---|
target |
any |
Original object containing raw data |
name |
string |
Attribute under which the association is stored |
doctype |
string |
Doctype of the documents managed by the association |
options |
Object |
Options passed from the client |
options.dispatch |
Function |
Store’s dispatch, comes from the client |
options.get |
Function |
Get a document from the store |
options.mutate |
Function |
Execute client mutate |
options.query |
Function |
Execute client query |
options.save |
Function |
Execute client save |
Inherited from
Defined in
packages/cozy-client/src/associations/Association.js:87
Properties¶
dispatch¶
• dispatch: Function
Dispatch an action on the store.
Inherited from
Defined in
packages/cozy-client/src/associations/Association.js:144
doctype¶
• doctype: string
Doctype of the relationship
example
‘io.cozy.authors’
Inherited from
Defined in
packages/cozy-client/src/associations/Association.js:109
get¶
• get: Function
Returns the document from the store
Inherited from
Defined in
packages/cozy-client/src/associations/Association.js:116
mutate¶
• mutate: Function
Performs a mutation on the relationship.
function
Inherited from
Defined in
packages/cozy-client/src/associations/Association.js:131
name¶
• name: string
The name of the relationship.
example
‘author’
Inherited from
Defined in
packages/cozy-client/src/associations/Association.js:101
query¶
• query: Function
Performs a query to retrieve relationship documents.
param
function
Inherited from
Defined in
packages/cozy-client/src/associations/Association.js:124
save¶
• save: Function
Saves the relationship in store.
Inherited from
Defined in
packages/cozy-client/src/associations/Association.js:138
target¶
• target: any
The original document declaring the relationship
Inherited from
Defined in
packages/cozy-client/src/associations/Association.js:94
Accessors¶
count¶
• get
count(): number
Returns the total number of documents in the relationship. Does not handle documents absent from the store. If you want to do that, you can use .data.length.
Returns
number
- Total number of documents in the relationships
Defined in
packages/cozy-client/src/associations/HasMany.js:93
data¶
• get
data(): any
Returns store documents
Returns
any
Overrides
Association.data
Defined in
packages/cozy-client/src/associations/HasMany.js:76
hasMore¶
• get
hasMore(): any
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:82
raw¶
• get
raw(): any
Returns
any
Overrides
Association.raw
Defined in
packages/cozy-client/src/associations/HasMany.js:69
Methods¶
add¶
▸ add(docsArg
): CozyClientDocument
Add the relationships to the target document
Parameters
Name | Type | Description |
---|---|---|
docsArg |
CozyClientDocument [] |
Documents to add as relationships |
Returns
CozyClientDocument
The saved target document
Defined in
packages/cozy-client/src/associations/HasMany.js:124
addById¶
▸ addById(idsArg
): any
Add a referenced document by id. You need to call save() in order to synchronize your document with the store.
todo
We shouldn’t create the array of relationship manually since
it’ll not be present in the store as well.
We certainly should use something like updateRelationship
Parameters
Name | Type |
---|---|
idsArg |
any |
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:174
addTargetRelationships¶
▸ addTargetRelationships(idsArg
): void
Update target document with relationships
Parameters
Name | Type | Description |
---|---|---|
idsArg |
string [] |
The ids to add as a relationship |
Returns
void
Defined in
packages/cozy-client/src/associations/HasMany.js:147
containsById¶
▸ containsById(id
): boolean
Parameters
Name | Type |
---|---|
id |
any |
Returns
boolean
Defined in
packages/cozy-client/src/associations/HasMany.js:108
dehydrate¶
▸ dehydrate(doc
): any
Parameters
Name | Type |
---|---|
doc |
any |
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:256
exists¶
▸ exists(document
): boolean
Parameters
Name | Type |
---|---|
document |
any |
Returns
boolean
Defined in
packages/cozy-client/src/associations/HasMany.js:104
existsById¶
▸ existsById(id
): boolean
Parameters
Name | Type |
---|---|
id |
any |
Returns
boolean
Defined in
packages/cozy-client/src/associations/HasMany.js:114
fetchMore¶
▸ fetchMore(): void
Returns
void
Defined in
packages/cozy-client/src/associations/HasMany.js:100
getRelationship¶
▸ getRelationship(): any
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:207
remove¶
▸ remove(docsArg
): CozyClientDocument
Remove the relationships from the target document
Parameters
Name | Type | Description |
---|---|---|
docsArg |
CozyClientDocument [] |
Documents to remove as relationships |
Returns
CozyClientDocument
The saved target document
Defined in
packages/cozy-client/src/associations/HasMany.js:136
removeById¶
▸ removeById(idsArg
): any
Parameters
Name | Type |
---|---|
idsArg |
any |
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:193
removeTargetRelationships¶
▸ removeTargetRelationships(idsArg
): void
Remove relationships from target document
Parameters
Name | Type | Description |
---|---|---|
idsArg |
string [] |
The ids to remove from the target relationships |
Returns
void
Defined in
packages/cozy-client/src/associations/HasMany.js:184
updateMetaCount¶
▸ updateMetaCount(): void
Returns
void
Defined in
packages/cozy-client/src/associations/HasMany.js:198
updateRelationship¶
▸ updateRelationship(target
, updateFn
): any
Parameters
Name | Type |
---|---|
target |
any |
updateFn |
any |
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:228
updateRelationshipData¶
▸ updateRelationshipData(getUpdatedRelationshipData
): (dispatch
: any
, getState
: any
) => void
Parameters
Name | Type |
---|---|
getUpdatedRelationshipData |
any |
Returns
fn
▸ (dispatch
, getState
): void
Parameters
Name | Type |
---|---|
dispatch |
any |
getState |
any |
Returns
void
Defined in
packages/cozy-client/src/associations/HasMany.js:232
updateTargetRelationship¶
▸ updateTargetRelationship(store
, updateFn
): void
Parameters
Name | Type |
---|---|
store |
any |
updateFn |
any |
Returns
void
Defined in
packages/cozy-client/src/associations/HasMany.js:221
getHasManyItem¶
▸ Static
getHasManyItem(doc
, relName
, relItemId
): any
Parameters
Name | Type |
---|---|
doc |
any |
relName |
string |
relItemId |
string |
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:289
getHasManyItems¶
▸ Static
getHasManyItems(doc
, relName
): any
Parameters
Name | Type |
---|---|
doc |
any |
relName |
any |
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:298
query¶
▸ Static
query(document
, client
, assoc
): CozyClientDocument
| QueryDefinition
Parameters
Name | Type | Description |
---|---|---|
document |
CozyClientDocument |
Document to query |
client |
any |
The CozyClient instance |
assoc |
Association |
The query params |
Returns
CozyClientDocument
| QueryDefinition
Overrides
Defined in
packages/cozy-client/src/associations/HasMany.js:275
removeHasManyItem¶
▸ Static
removeHasManyItem(doc
, relName
, relItemId
): any
Parameters
Name | Type |
---|---|
doc |
any |
relName |
string |
relItemId |
string |
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:336
setHasManyItem¶
▸ Static
setHasManyItem(doc
, relName
, relItemId
, relItemAttrs
): any
Parameters
Name | Type |
---|---|
doc |
any |
relName |
string |
relItemId |
string |
relItemAttrs |
any |
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:310
updateHasManyItem¶
▸ Static
updateHasManyItem(doc
, relName
, relItemId
, updater
): any
Parameters
Name | Type |
---|---|
doc |
any |
relName |
string |
relItemId |
string |
updater |
Function |
Returns
any
Defined in
packages/cozy-client/src/associations/HasMany.js:360
updateRelationship¶
▸ Static
updateRelationship(doc
, relName
, updateFn
): any
Parameters
Name | Type |
---|---|
doc |
any |
relName |
any |
updateFn |
any |
Returns
any
Defined in