[add] backend:calendar_add
This commit is contained in:
parent
7d8a4de1ab
commit
485589e3f7
2 changed files with 79 additions and 19 deletions
|
@ -12,6 +12,36 @@ namespace _zeitbild.frontend_web.backend
|
|||
) = null;
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
function access_level_encode(
|
||||
access_level : _zeitbild.frontend_web.type.enum_access_level
|
||||
) : ("none" | "view" | "edit" | "admin")
|
||||
{
|
||||
switch (access_level) {
|
||||
case _zeitbild.frontend_web.type.enum_access_level.none: return "none";
|
||||
case _zeitbild.frontend_web.type.enum_access_level.view: return "view";
|
||||
case _zeitbild.frontend_web.type.enum_access_level.edit: return "edit";
|
||||
case _zeitbild.frontend_web.type.enum_access_level.admin: return "admin";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
function access_level_decode(
|
||||
access_level_encoded : ("none" | "view" | "edit" | "admin")
|
||||
) : _zeitbild.frontend_web.type.enum_access_level
|
||||
{
|
||||
switch (access_level_encoded) {
|
||||
case "none": return _zeitbild.frontend_web.type.enum_access_level.none;
|
||||
case "view": return _zeitbild.frontend_web.type.enum_access_level.view;
|
||||
case "edit": return _zeitbild.frontend_web.type.enum_access_level.edit;
|
||||
case "admin": return _zeitbild.frontend_web.type.enum_access_level.admin;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
export async function init(
|
||||
|
@ -221,6 +251,37 @@ namespace _zeitbild.frontend_web.backend
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
export async function calendar_add(
|
||||
calendar_object : _zeitbild.frontend_web.type.type_calendar_object
|
||||
) : Promise<
|
||||
_zeitbild.frontend_web.type.calendar_id
|
||||
>
|
||||
{
|
||||
return call(
|
||||
lib_plankton.http.enum_method.post,
|
||||
"/calendar",
|
||||
{
|
||||
"name": calendar_object.name,
|
||||
"access": {
|
||||
"default_level": access_level_encode(calendar_object.access.default_level),
|
||||
"attributed": (
|
||||
lib_plankton.map.dump(calendar_object.access.attributed)
|
||||
.map(
|
||||
(pair) => ({
|
||||
"user_id": pair.key,
|
||||
"level": access_level_encode(pair.value),
|
||||
})
|
||||
)
|
||||
)
|
||||
},
|
||||
"resource": calendar_object.resource,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
export async function calendar_event_add(
|
||||
|
@ -233,7 +294,7 @@ namespace _zeitbild.frontend_web.backend
|
|||
lib_plankton.string.coin(
|
||||
"/calendar/{{calendar_id}}/event",
|
||||
{
|
||||
"calendar_id": calendar_id,
|
||||
"calendar_id": calendar_id.toFixed(0),
|
||||
}
|
||||
),
|
||||
event_object
|
||||
|
@ -254,8 +315,8 @@ namespace _zeitbild.frontend_web.backend
|
|||
lib_plankton.string.coin(
|
||||
"/calendar/{{calendar_id}}/event/{{event_id}}",
|
||||
{
|
||||
"calendar_id": calendar_id,
|
||||
"event_id": event_id,
|
||||
"calendar_id": calendar_id.toFixed(0),
|
||||
"event_id": event_id.toFixed(0),
|
||||
}
|
||||
),
|
||||
null
|
||||
|
|
|
@ -6,13 +6,12 @@ namespace _zeitbild.frontend_web.type
|
|||
|
||||
/**
|
||||
*/
|
||||
export type role = (
|
||||
"admin"
|
||||
|
|
||||
"editor"
|
||||
|
|
||||
"viewer"
|
||||
);
|
||||
export enum enum_access_level {
|
||||
none,
|
||||
view,
|
||||
edit,
|
||||
admin
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
@ -89,16 +88,16 @@ namespace _zeitbild.frontend_web.type
|
|||
|
||||
/**
|
||||
*/
|
||||
export type calendar_object = {
|
||||
export type type_calendar_object = {
|
||||
name : string;
|
||||
public : boolean;
|
||||
members : Array<
|
||||
{
|
||||
user_id : user_id;
|
||||
role : role;
|
||||
}
|
||||
>;
|
||||
resource_id : resource_id;
|
||||
access : {
|
||||
default_level : enum_access_level;
|
||||
attributed : lib_plankton.map.type_map<
|
||||
user_id,
|
||||
enum_access_level
|
||||
>;
|
||||
};
|
||||
resource : resource_object;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue