# Copyright 2020 Multi Prise # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. defmodule Polyjuice.Client.Account do @moduledoc """ Account related functions. """ @doc """ Get the data on an account `event_type` : type of event queried `user_id`: User concerned by the event """ @spec get_data( client_api :: Polyjuice.Client.API.t(), user_id :: String.t() | nil, event_type :: String.t() ) :: {:ok, map()} | any def get_data(client_api, user_id \\ nil, event_type) do Polyjuice.Client.API.call( client_api, %Polyjuice.Client.Endpoint.GetAccountData{ user_id: user_id || Polyjuice.Client.API.get_user_and_device(client_api) |> elem(0), type: event_type } ) end @doc """ Put the data on an account `event_type` : type of event requiring modifications `changes`: New changes `user_id`: User concerned by the event """ @spec put_data( client_api :: Polyjuice.Client.API.t(), user_id :: String.t() | nil, event_type :: String.t(), changes :: Map.t() ) :: {:ok} | any def put_data(client_api, user_id \\ nil, event_type, changes) do Polyjuice.Client.API.call( client_api, %Polyjuice.Client.Endpoint.PutAccountData{ user_id: user_id || Polyjuice.Client.API.get_user_and_device(client_api) |> elem(0), type: event_type, account_data: changes } ) end end