|
1 | 1 | module MSGraphAPI.User where |
2 | 2 |
|
3 | | -import GHC.Generics (Generic(..)) |
4 | | - |
5 | | -import Data.List (sort, sortBy, stripPrefix, uncons) |
6 | | -import Data.Maybe (listToMaybe, fromMaybe) |
7 | | --- import Data.Ord (comparing) |
8 | | -import Data.Char (toLower) |
9 | | -import Data.String (IsString(..)) |
10 | | -import Data.Word (Word) |
11 | | - |
12 | | --- aeson |
13 | | -import qualified Data.Aeson as A (ToJSON(..), FromJSON(..), genericParseJSON, defaultOptions, Options(..), withObject, withText, (.:), (.:?), object, (.=), Key, Value, camelTo2) |
14 | | -import qualified Data.Aeson.Types as A (Parser, Object) |
15 | | --- import qualified Data.Aeson.KeyMap as AKV (KeyMap, lookup) |
16 | | --- containers |
17 | | --- import qualified Data.Map as M (Map, empty, insert, lookup) |
18 | | --- hoauth |
19 | | -import Network.OAuth.OAuth2.Internal (AccessToken(..)) |
20 | | --- req |
21 | | -import Network.HTTP.Req (Req) |
22 | | --- text |
23 | | -import Data.Text (Text, pack, unpack) |
24 | | --- time |
25 | | -import Data.Time.LocalTime (ZonedTime, zonedTimeToLocalTime) |
26 | | - |
27 | | -import qualified MSGraphAPI.Internal.Common as MSG (get, post, aesonOptions) |
28 | | - |
29 | | --- | Get user information |
30 | | --- |
31 | | --- @GET \/users\/{user-id}@ |
32 | | --- |
33 | | --- https://learn.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http#request |
34 | | -get :: Text -- ^ user id |
35 | | - -> AccessToken -> Req User |
36 | | -get uid = MSG.get ["users", uid] mempty |
37 | | - |
38 | | --- | Get information on signed-in user |
39 | | --- |
40 | | --- Calling the \/me endpoint requires a signed-in user and therefore a delegated permission. Application permissions are not supported when using the \/me endpoint. |
41 | | --- |
42 | | --- @GET \/me@ |
43 | | --- |
44 | | --- https://learn.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http#request-1 |
45 | | -getMe :: AccessToken -> Req User |
46 | | -getMe = MSG.get ["me"] mempty |
47 | | - |
48 | | - |
49 | | -data User = User { |
50 | | - uId :: Text |
51 | | - , uUserPrincipalName :: Text |
52 | | - , uDisplayName :: Text |
53 | | - } deriving (Eq, Ord, Show, Generic) |
54 | | -instance A.FromJSON User where |
55 | | - parseJSON = A.genericParseJSON (MSG.aesonOptions "u") |
| 3 | + |
| 4 | + |
| 5 | +-- import Data.List (sort, sortBy, stripPrefix, uncons) |
| 6 | +-- import Data.Maybe (listToMaybe, fromMaybe) |
| 7 | +-- -- import Data.Ord (comparing) |
| 8 | +-- import Data.Char (toLower) |
| 9 | +-- import Data.String (IsString(..)) |
| 10 | +-- import Data.Word (Word) |
| 11 | + |
| 12 | +-- -- aeson |
| 13 | +-- import qualified Data.Aeson as A (ToJSON(..), FromJSON(..), genericParseJSON, defaultOptions, Options(..), withObject, withText, (.:), (.:?), object, (.=), Key, Value, camelTo2) |
| 14 | +-- import qualified Data.Aeson.Types as A (Parser, Object) |
| 15 | +-- -- import qualified Data.Aeson.KeyMap as AKV (KeyMap, lookup) |
| 16 | +-- -- containers |
| 17 | +-- -- import qualified Data.Map as M (Map, empty, insert, lookup) |
| 18 | +-- -- hoauth |
| 19 | +-- import Network.OAuth.OAuth2.Internal (AccessToken(..)) |
| 20 | +-- -- req |
| 21 | +-- import Network.HTTP.Req (Req) |
| 22 | +-- -- text |
| 23 | +-- import Data.Text (Text, pack, unpack) |
| 24 | +-- -- time |
| 25 | +-- import Data.Time.LocalTime (ZonedTime, zonedTimeToLocalTime) |
| 26 | + |
| 27 | +-- import qualified MSGraphAPI.Internal.Common as MSG (get, post, aesonOptions) |
| 28 | +-- -- import MSGraphAPI.Users.User (User) |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
56 | 34 |
|
57 | 35 |
|
0 commit comments