Line 23: |
Line 23: |
| == Objects == | | == Objects == |
| | | |
− | The common ''COMMAND''s are:
| + | === Common actions === |
| | | |
− | /'''create'''
| + | Actions might be restricted for particular object, see the corresponding section for detailed information. |
| + | |
| + | * {{Code|/<OBJECT>/'''create'''}} |
| | | |
| Create new ''OBJECT'' item. | | Create new ''OBJECT'' item. |
| + | |
| Inputs: | | Inputs: |
− | :* {{Code|ctime}} ''int'', the UNIX seconds time of entry creation; optional, will be set on a server side otherwise; | + | :* {{Code|ctime}}, ''int''<br>the UNIX seconds time of entry creation; optional, will be set on a server side otherwise; |
− | :* {{Code|mtime}} ''int'', the UNIX seconds time of entry modification; optional, will be set on a server side otherwise; | + | :* {{Code|mtime}}, ''int''<br>the UNIX seconds time of entry modification; optional, will be set on a server side otherwise; |
| + | |
| Returns: | | Returns: |
− | :* {{Code|guid}} ''str'', globally unique identifier that specifies created item; | + | :* {{Code|guid}}, ''str''<br>globally unique identifier that specifies created item; |
| | | |
− | /'''update'''?guid=<> | + | /<OBJECT>/'''update'''?guid=<> |
| | | |
− | Modify the specified item. | + | Modify the specified ''OBJECT'' item. |
| | | |
| Inputs: | | Inputs: |
| : Keys that need to be modified. | | : Keys that need to be modified. |
| | | |
− | /'''delete'''?guid=<> | + | /<OBJECT>/'''delete'''?guid=<> |
| + | |
| + | Delete the specified ''OBJECT'' item. The real destroying won't happen, the item will be hidden. The garbage collection of hidden items will be processed by Network administrators. |
| | | |
− | Delete the specified item. The real destroying won't happen, the item will be hidden. The garbage collection of hidden items will be processed by Network administrators.
| + | /<OBJECT>/'''find'''?[query=<>][&offset=<>][&limit=<>][&properties=<PROP>[,..]][&order_by=<nowiki>[+|-]</nowiki><PROP>[,..]] |
| | | |
− | /'''find'''?[query=<>][&offset=<>][&limit=<>][&properties=<PROP>[,..]][&order_by=<nowiki>[+|-]</nowiki><PROP>[,..]]
| + | Find ''OBJECT'' items. |
| | | |
− | Find items.
| |
| Where: | | Where: |
− | :* {{Code|query}} ''str'', search request in [http://xapian.org/docs/queryparser.html Xapian] notation; | + | :* {{Code|query}}, ''str''<br>search request in [http://xapian.org/docs/queryparser.html Xapian] notation; |
− | :* {{Code|offset}} ''int'', start index to return entries from; | + | :* {{Code|offset}}, ''int''<br>start index to return entries from; |
− | :* {{Code|limit}} ''int'', do not return more then specified value; | + | :* {{Code|limit}}, ''int''<br>do not return more then specified value; |
− | :* {{Code|properties}} ''str'', coma separated list of ''OBJECT'' properties to return; by default, return all properties; | + | :* {{Code|properties}}, ''str''<br>coma separated list of ''OBJECT'' properties to return; by default, return all properties; |
− | :* {{Code|order_by}} ''str'', coma separated list of ''OBJECT'' properties to sort the resulting list; if an property starts with the {{Code|-}}, the order is descending, otherwise it is ascending; | + | :* {{Code|order_by}}, ''str''<br>coma separated list of ''OBJECT'' properties to sort the resulting list; if an property starts with the {{Code|-}}, the order is descending, otherwise it is ascending; |
| + | |
| Inputs: | | Inputs: |
| :* A dictionary with ''OBJECT'''s properties to restrict the resulting list. | | :* A dictionary with ''OBJECT'''s properties to restrict the resulting list. |
| + | |
| Returns: | | Returns: |
| :* An array of dictionaries with ''OBJECT'' properties, dictionaries contain at least {{Code|guid}} property. | | :* An array of dictionaries with ''OBJECT'' properties, dictionaries contain at least {{Code|guid}} property. |
| | | |
− | /'''get'''?guid=<>[&properties=<PROP>[,..]] | + | /<OBJECT>/'''get'''?guid=<>[&properties=<PROP>[,..]] |
| + | |
| + | Return ''OBJECT'' properties the of particular item. |
| | | |
− | Return properties the of particular item.
| |
| Where: | | Where: |
− | :* {{Code|properties}} ''str'', coma separated list of ''OBJECT'' properties to return; by default, return all properties. | + | :* {{Code|properties}}, ''str''<br>coma separated list of ''OBJECT'' properties to return; by default, return all properties. |
| + | |
| Returns: | | Returns: |
| :* A dictionary with ''OBJECT'' properties that contains at least {{Code|guid}} property. | | :* A dictionary with ''OBJECT'' properties that contains at least {{Code|guid}} property. |
| | | |
− | === Player === | + | === player === |
| + | |
| + | Properties: |
| + | :* {{Code|nickname}}, ''str'', ''read''<br>set by Sugar Shell; |
| + | :* {{Code|color}}, ''str'', ''read''<br>colors pair in format {{Code|#RRGGBB,#RRGGBB}}, set by Sugar Shell. |
| + | |
| + | Calculated properties: |
| + | :* {{Code|reputation}}, ''int'', ''read''<br>current ''player'''s reputation based on: |
| + | :** direct votes from other players, |
| + | :** votes given to objects where the ''player'' is a creator; |
| + | :* {{Code|vote}}, ''bool'', ''read'', ''write''<br>did url requester voted for the current object or not; |
| + | |
| + | Events: |
| + | |
| + | Actions: |
| + | |
| + | * '''create''' and '''destroy''' are not allowed; |
| + | * '''update''' is allowed only for a user who is associated with a ''player''. |
| + | |
| + | /player/'''send'''?guid=<PLAYER> |
| + | |
| + | Send private message to the ''PLAYER'', sender should be different to the ''PLAYER''. |
| + | |
| + | Inputs: |
| + | : A dictionary with [[#event|event]] properties. |
| + | |
| + | === project === |
| + | |
| + | Properties: |
| + | :* {{Code|title}}, ''str'', ''read'', ''write'' only for the team members<br>one line title; |
| + | :* {{Code|description}}, ''str'', ''read'', ''write'' only for the team members<br>multi lined description; |
| + | :* {{Code|creator}}, ''guid'', ''read''<br>the ''player'' who created the object; |
| + | :* {{Code|type}}, ''str'', ''read'', ''write'' only for the team members<br>the project type: |
| + | :** {{Code|general}}, |
| + | :** {{Code|activity}}, |
| + | :** {{Code|wiki}}, |
| + | :** {{Code|gallery}}; |
| + | :* {{Code|zoom}}, ''str'', ''read'', ''write'' only for the team members<br>Network Zoom level that project belongs: |
| + | :** {{Code|worldwide}}, |
| + | :** {{Code|neighbourhood}}, |
| + | :** {{Code|private}}. |
| + | |
| + | Calculated properties: |
| + | :* {{Code|reputation}}, ''int'', ''read''<br>current ''project'''s reputation based on: |
| + | :** direct votes from other players, |
| + | :** votes given to related objects if theirs ''respect'' property is empty; |
| + | :* {{Code|vote}}, ''bool'', ''read'', ''write''<br>did url requester voted for the current object or not. |
| + | |
| + | Many-to-many relations: |
| + | :* ''team'', relates to ''player''. |
| + | |
| + | Actions: |
| + | |
| + | * right after '''create''' call, the creator ''player'' will be the only ''team'' member; |
| + | * '''update''' and '''destroy''' are allowed only for ''team'' members. |
| + | |
| + | /project/'''add_member'''?guid=<PROJECT>&member=<PLAYER> |
| + | |
| + | Make a ''PLAYER'' the ''team'' member. Only ''team'' members can call this action. |
| + | |
| + | /project/'''remove_member'''?guid=<PROJECT>&member=<PLAYER> |
| + | |
| + | Remove ''PLAYER'' from the to the ''team''. Only ''team'' member can call this action if he is not the ''PLAYER'' and ''PLAYER'' is not the same as ''creator''. |
| + | |
| + | === question === |
| + | |
| + | Properties: |
| + | :* {{Code|title}}, ''str'', ''read'', ''write'' only for creator<br>one line title; |
| + | :* {{Code|description}}, ''str'', ''read'', ''write'' only for creator<br>multi lined description; |
| + | :* {{Code|creator}}, ''guid'', ''read''<br>the ''player'' who created the object; |
| + | :* {{Code|respect}}, ''guid'', ''read'', ''create''<br>what ''player'' needs to be respected on getting vote to this object, if empty, the ''project'' itself will be voted; |
| + | :* {{Code|solution}}, ''guid'', ''read'', ''write'' only by creator<br>the ''solution'' which solves the object. |
| + | |
| + | Calculated properties: |
| + | :* {{Code|reputation}}, ''int'', ''read''<br>current object's reputation; |
| + | :* {{Code|vote}}, ''bool'', ''read'', ''write''<br>did url requester voted for the current object or not; |
| + | :* {{Code|implementation_status}}, ''str'', ''read''<br>if ''question'' has an associated ''objective'', this ''objective'''s status is a status of the ''question'', otherwise the property is empty. |
| + | |
| + | === idea === |
| + | |
| + | Properties: |
| + | :* {{Code|title}}, ''str'', ''read'', ''write'' only for creator<br>one line title; |
| + | :* {{Code|description}}, ''str'', ''read'', ''write'' only for creator<br>multi lined description; |
| + | :* {{Code|creator}}, ''guid'', ''read''<br>the ''player'' who created the object; |
| + | :* {{Code|respect}}, ''guid'', ''read'', ''create''<br>what ''player'' needs to be respected on getting vote to this object, if empty, the ''project'' itself will be voted. |
| + | |
| + | Calculated properties: |
| + | :* {{Code|reputation}}, ''int'', ''read''<br>current object's reputation; |
| + | :* {{Code|vote}}, ''bool'', ''read'', ''write''<br>did url requester voted for the current object or not; |
| + | :* {{Code|implementation_status}}, ''str'', ''read''<br>if ''idea'' has an associated ''objective'', this ''objective'''s status is a status of the ''idea'', otherwise the property is empty. |
| + | |
| + | === problem === |
| + | |
| + | Properties: |
| + | :* {{Code|title}}, ''str'', ''read'', ''write'' only for creator<br>one line title; |
| + | :* {{Code|description}}, ''str'', ''read'', ''write'' only for creator<br>multi lined description; |
| + | :* {{Code|creator}}, ''guid'', ''read''<br>the ''player'' who created the object; |
| + | :* {{Code|respect}}, ''guid'', ''read'', ''create''<br>what ''player'' needs to be respected on getting vote to this object, if empty, the ''project'' itself will be voted; |
| + | :* {{Code|solution}}, ''guid'', ''read'', ''write'' only by creator<br>the ''solution'' which solves the object. |
| + | |
| + | Calculated properties: |
| + | :* {{Code|reputation}}, ''int'', ''read''<br>current object's reputation; |
| + | :* {{Code|vote}}, ''bool'', ''read'', ''write''<br>did url requester voted for the current object or not; |
| + | :* {{Code|implementation_status}}, ''str'', ''read''<br>if ''problem'' has an associated ''objective'', this ''objective'''s status is a status of the ''problem', otherwise the property is empty. |
| + | |
| + | === solution === |
| + | |
| + | The solution for ''question''/''idea''/''problem'' objects. |
| + | |
| + | Properties: |
| + | :* {{Code|text}}, ''wikitext'', ''read'', ''write'' only for creator<br>solution text; |
| + | :* {{Code|creator}}, ''guid'', ''read''<br>the ''player'' who created the object; |
| + | :* {{Code|respect}}, ''guid'', ''read'', ''create''<br>what ''player'' needs to be respected on getting vote to this object, if empty, the ''project'' itself will be voted. |
| + | |
| + | Calculated properties: |
| + | :* {{Code|reputation}}, ''int'', ''read''<br>current object's reputation; |
| + | :* {{Code|vote}}, ''bool'', ''read'', ''write''<br>did url requester voted for the current object or not. |
| + | |
| + | === wiki === |
| + | |
| + | Properties: |
| + | :* {{Code|title}}, ''str'', ''read'', ''write'' only for creator<br>one line title; |
| + | :* {{Code|description}}, ''str'', ''read'', ''write'' only for creator<br>multi lined description; |
| + | :* {{Code|creator}}, ''guid'', ''read''<br>the ''player'' who created the object; |
| + | :* {{Code|respect}}, ''guid'', ''read'', ''create''<br>what ''player'' needs to be respected on getting vote to this object, if empty, the ''project'' itself will be voted; |
| + | :* {{Code|reputation}}, ''int'', ''read''<br>current object's reputation; |
| + | :* {{Code|vote}}, ''bool'', ''read'', ''write''<br>did url requester voted for the current object or not; |
| + | |
| + | === gallery === |
| + | |
| + | Properties: |
| + | :* {{Code|title}}, ''str'', ''read'', ''write'' only for creator<br>one line title; |
| + | :* {{Code|description}}, ''str'', ''read'', ''write'' only for creator<br>multi lined description; |
| + | :* {{Code|creator}}, ''guid'', ''read''<br>the ''player'' who created the object; |
| + | :* {{Code|respect}}, ''guid'', ''read'', ''create''<br>what ''player'' needs to be respected on getting vote to this object, if empty, the ''project'' itself will be voted; |
| + | :* {{Code|reputation}}, ''int'', ''read''<br>current object's reputation; |
| + | :* {{Code|vote}}, ''bool'', ''read'', ''write''<br>did url requester voted for the current object or not; |
| | | |
− | === Project === | + | === objective === |
| | | |
− | === Question ===
| + | Properties: |
| + | :* {{Code|title}}, ''str'', ''read'', ''write'' only for the team members<br>one line title; |
| + | :* {{Code|description}}, ''str'', ''read'', ''write'' only for the team members<br>multi lined description; |
| + | :* {{Code|creator}}, ''guid'', ''read''<br>the ''player'' who created the object; |
| + | :* {{Code|respect}}, ''guid'', ''read'', ''create''<br>what ''player'' needs to be respected on getting vote to this object, if empty, the ''project'' itself will be voted; |
| + | :* {{Code|reputation}}, ''int'', ''read''<br>current object's reputation; |
| + | :* {{Code|vote}}, ''bool'', ''read'', ''write''<br>did url requester voted for the current object or not; |
| | | |
− | === Idea === | + | === release === |
| | | |
− | === Problem === | + | === comment === |
| | | |
− | === Wiki === | + | === event === |
| | | |
− | === Gallery ===
| |
| | | |
− | === Release === | + | == Many-to-many relations == |
| | | |
− | === Objective === | + | == Changelog == |
| | | |
− | === Comment ===
| + | This section shows how API is evolving. The API state is being described by a version. The major number is being changed only if backwards compatibility was broken. |
| | | |
− | === Event ===
| + | '''1.0''' |
| + | : Not yet released API. |
| | | |
| == Notifications == | | == Notifications == |