This commit is contained in:
Bill Avery 2021-01-28 13:04:32 -08:00
Родитель 9fd26e5cfc
Коммит c261c912ca
5 изменённых файлов: 76 добавлений и 32 удалений

Просмотреть файл

@ -1,18 +1,74 @@
# Project
# eMAPI
> This repo has been populated by an initial template to help get you started. Please
> make sure to update the content to build a great experience for community-building.
This is a sample Electron app hosting [GraphiQL](https://github.com/graphql/graphiql) connected to
[Electron-GqlMAPI](https://github.com/microsoft/electron-gqlmapi). It is intended first as a code sample
for [CppGraphQLGen](https://github.com/microsoft/cppgraphqlgen), but it aspires to be the spiritual successor
to [MFCMAPI](https://github.com/stephenegriffin/mfcmapi). It is already quite powerful just by integrating
GraphiQL, and it has the potential to add more diagnostic and debugging features in the future.
As the maintainer of this project, please make a few updates:
This project was originally based on [cppgraphiql](https://github.com/wravery/cppgraphiql), but it has many
upgrades to the build process, packaging, and the implementation since then. It is not cross-platform like
cppgraphiql (which used a trivial service with mock data), but I intend to feed these improvements back into
cppgraphiql. For now, this is a much better starting point if you want to implement your own Electron host
for a CppGraphQLGen service.
- Improving this README.MD file to provide a great experience
- Updating SUPPORT.MD with content about this project's support experience
- Understanding the security reporting process in SECURITY.MD
- Remove this section from the README
## Getting Started
To begin, you will need to satisfy the [requirements](https://github.com/microsoft/gqlmapi#getting-started)
for building GqlMAPI. If you are using Vcpkg to install CppGraphQLGen and GoogleTest as suggested in those
instructions, then you will also need to save an npm config setting for CMake.js to use the vcpkg.cmake
toolchain file:
```cmd
> npm config set cmake_CMAKE_TOOLCHAIN_FILE %VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake
```
Then you can build and test the module using npm:
```cmd
> npm install
> npm run electron-dev
```
## Sample Queries
This query should return the display name and ID of all your MAPI stores:
```graphql
query AllStores {
stores {
name
id
}
}
```
To get the default store you can sort the stores in descending order by the
[PR_DEFAULT_STORE](https://docs.microsoft.com/en-us/office/client-developer/outlook/mapi/pidtagdefaultstore-canonical-property)
property and then take just the top element:
```graphql
query DefaultStore {
stores @orderBy(sorts: [
{
property: {id: 13312},
type: BOOL,
descending: true
}
]) @take(count: 1) {
name
id
}
}
```
If everything is working, you should get results like this (minus the rectangles hiding personal information):
![eMAPI displaying results of DefaultStore query](./doc/DefaultStore.png)
## Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a
This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
@ -26,8 +82,8 @@ contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additio
## Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.

Просмотреть файл

@ -1,13 +1,3 @@
# TODO: The maintainer of this repo has not yet edited this file
**REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project?
- **No CSS support:** Fill out this template with information about how to file issues and get help.
- **Yes CSS support:** Fill out an intake form at [aka.ms/spot](https://aka.ms/spot). CSS will work with/help you to determine next steps. More details also available at [aka.ms/onboardsupport](https://aka.ms/onboardsupport).
- **Not sure?** Fill out a SPOT intake as though the answer were "Yes". CSS will help you decide.
*Then remove this first heading from this SUPPORT.MD file before publishing your repo.*
# Support
## How to file issues and get help
@ -16,10 +6,8 @@ This project uses GitHub Issues to track bugs and feature requests. Please searc
issues before filing new issues to avoid duplicates. For new issues, file your bug or
feature request as a new Issue.
For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE
FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER
CHANNEL. WHERE WILL YOU HELP PEOPLE?**.
For help and questions about using this project, please file an Issue with the Question tag.
## Microsoft Support Policy
Support for this **PROJECT or PRODUCT** is limited to the resources listed above.
Support for this project is limited to the resources listed above.

Двоичные данные
doc/DefaultStore.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 98 KiB

12
package-lock.json сгенерированный
Просмотреть файл

@ -7349,9 +7349,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
"version": "1.3.647",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.647.tgz",
"integrity": "sha512-Or2Nu8TjkmSywY9hk85K/Y6il28hchlonITz30fkC87qvSNupQl29O12BzDDDTnUFlo6kEIFL2QGSpkZDMxH8g==",
"version": "1.3.648",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.648.tgz",
"integrity": "sha512-4POzwyQ80tkDiBwkxn7IpfzioimrjRSFX1sCQ3pLZsYJ5ERYmwzdq0hZZ3nFP7Z6GtmnSn3xwWDm8FPlMeOoEQ==",
"dev": true
},
"node_modules/elliptic": {
@ -29382,9 +29382,9 @@
"dev": true
},
"electron-to-chromium": {
"version": "1.3.647",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.647.tgz",
"integrity": "sha512-Or2Nu8TjkmSywY9hk85K/Y6il28hchlonITz30fkC87qvSNupQl29O12BzDDDTnUFlo6kEIFL2QGSpkZDMxH8g==",
"version": "1.3.648",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.648.tgz",
"integrity": "sha512-4POzwyQ80tkDiBwkxn7IpfzioimrjRSFX1sCQ3pLZsYJ5ERYmwzdq0hZZ3nFP7Z6GtmnSn3xwWDm8FPlMeOoEQ==",
"dev": true
},
"elliptic": {

Просмотреть файл

@ -22,7 +22,7 @@
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>CppGraphiQL</title>
<title>eMAPI</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>