From a4c895cc76ecd26572b4a63a7a874392c30a85b1 Mon Sep 17 00:00:00 2001 From: Luke Carr Date: Thu, 21 May 2020 18:35:10 +0100 Subject: [PATCH] feat(modules): added core_user_agree_site_policy function --- src/modules/core/user/agree-site-policy.ts | 12 ++++++++++++ src/modules/core/user/index.ts | 11 +++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/modules/core/user/agree-site-policy.ts diff --git a/src/modules/core/user/agree-site-policy.ts b/src/modules/core/user/agree-site-policy.ts new file mode 100644 index 0000000..1ea63ba --- /dev/null +++ b/src/modules/core/user/agree-site-policy.ts @@ -0,0 +1,12 @@ +import { FunctionResponse } from "../../../functions"; +import { Warning } from "../../shared"; + +export interface SitePolicyAgreementResponse extends FunctionResponse { + /** + * Whether the agreement was processed + * successfuly (true) or not (false). + */ + status: boolean; + + warnings?: Warning[]; +} diff --git a/src/modules/core/user/index.ts b/src/modules/core/user/index.ts index 84c2dfc..4ae1fde 100644 --- a/src/modules/core/user/index.ts +++ b/src/modules/core/user/index.ts @@ -1,5 +1,6 @@ import Module from "../.."; import { FunctionResponse } from "../../../functions"; +import { SitePolicyAgreementResponse } from "./agree-site-policy"; import { SearchCriteria, GetUsersResponse } from "./get-users"; import { GetUsersByFieldResponse } from "./get-users-by-field"; @@ -7,6 +8,16 @@ import { GetUsersByFieldResponse } from "./get-users-by-field"; * Functions for user-related actions. */ export default class UserModule extends Module { + /** + * Agrees to the Moodle site policy for the current + * web service user. + */ + public async agreeSitePolicy(): Promise { + return (await this.get( + "core_user_agree_site_policy" + )) as SitePolicyAgreementResponse; + } + /** * Searches for users on the Moodle site that match * the provided crtieria.