Changes

8,244 bytes added ,  01:07, 19 December 2011
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 ==