Merge pull request #5220 from normanjaeckel/RestrictionDev
Added first draft for restriction and presenter interfaces.
This commit is contained in:
commit
a45ac5d2e5
@ -1,4 +1,4 @@
|
|||||||
# Action Service Interface
|
# Actions Service Interface
|
||||||
|
|
||||||
Exception ActionException(message: string);
|
Exception ActionException(message: string);
|
||||||
|
|
||||||
@ -7,7 +7,7 @@ Exception ActionException(message: string);
|
|||||||
* Executes multiple actions in the conext of the user given by the user_id.
|
* Executes multiple actions in the conext of the user given by the user_id.
|
||||||
* All actions are processed independently.
|
* All actions are processed independently.
|
||||||
*
|
*
|
||||||
* TODO: Check if we need an interface or flag to process actions all together.
|
* TODO: Maybe we do not want to run them independently.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @throws ActionException
|
* @throws ActionException
|
||||||
@ -16,7 +16,7 @@ handle_request (payload: Action[], user_id: number): ActionResult[]
|
|||||||
|
|
||||||
interface Action {
|
interface Action {
|
||||||
action: string;
|
action: string;
|
||||||
data: object[]; # An array of action specific data. See JSON schema defintions.
|
data: object[]; # An array of action specific data. See JSON schema defintions.
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ActionResult {
|
interface ActionResult {
|
||||||
|
51
docs/interfaces/presenter-service.txt
Normal file
51
docs/interfaces/presenter-service.txt
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Presenter Service Interface
|
||||||
|
|
||||||
|
Exception PresenterException(message: string);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executes some presenting function on the server. The term "presenting" means
|
||||||
|
* a non writing (or modifying) idempotent request. There may be some
|
||||||
|
* side-effect allowed (like tracking calls to one presenter), but the main
|
||||||
|
* purpose is to get data of the server, which is not autoupdate-, projector-, or
|
||||||
|
* icc-data.
|
||||||
|
*
|
||||||
|
* Some purposes may be:
|
||||||
|
* - aggregating of login data
|
||||||
|
* - managing of whoami, if additional data is needed, that the auth service
|
||||||
|
* doesn't provide
|
||||||
|
* - To get history points
|
||||||
|
* - To get history data
|
||||||
|
* - To get the installed version
|
||||||
|
* - To query statistics
|
||||||
|
* - To calculate recursive trees (e.g. origins of motions; not possible with
|
||||||
|
* the autoupdate service)
|
||||||
|
* - to synchronize the servertime for countdowns
|
||||||
|
*
|
||||||
|
* @throws PresenterException This exception might be thrown, if there was an
|
||||||
|
* server error (Http-500-equivalent). For user error (e.g. wrong data) use the
|
||||||
|
* PresenterError interface
|
||||||
|
*/
|
||||||
|
handle_request(user_id: Id, payload: Presenter[]): PresenterResult[]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface specifies what presenter is used with the payload for the call
|
||||||
|
*/
|
||||||
|
Interface Presenter {
|
||||||
|
presenter: string;
|
||||||
|
data: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A presenter may return anything. This is presenter-specific. But if there was
|
||||||
|
* an error (user error, not a PresenterException), the response for this
|
||||||
|
* presenter should follow `PresenterError`.
|
||||||
|
*/
|
||||||
|
type PresenterResult = any | PresenterError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A common format for errors.
|
||||||
|
*/
|
||||||
|
Interface PresenterError {
|
||||||
|
error: object;
|
||||||
|
}
|
||||||
|
|
20
docs/interfaces/restriction-service.txt
Normal file
20
docs/interfaces/restriction-service.txt
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Restrictions Service Interface
|
||||||
|
|
||||||
|
Exception RestrictionException(message: string);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restricts data for given user
|
||||||
|
*
|
||||||
|
* @throws RestrictionException
|
||||||
|
*/
|
||||||
|
handle_request (payload: Restriction[]): RestrictionResult[]
|
||||||
|
|
||||||
|
interface Restriction {
|
||||||
|
user_id: number;
|
||||||
|
fqfields: Fqfield[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface RestrictionResult {
|
||||||
|
<fqfield>: Value;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user