├── .github
└── workflows
│ └── master_app-web-dev-doc-prod.yml
├── .gitignore
├── HelloAsso.Api.Doc.sln
├── HelloAsso.Api.Doc.sln.DotSettings
├── HelloAsso.Api.Doc
├── Controllers
│ └── V3Controller.cs
├── FormulaireDon-demo
│ ├── .gitignore
│ ├── README.md
│ ├── css
│ │ ├── bootstrap-grid.css
│ │ ├── bootstrap-grid.css.map
│ │ ├── bootstrap-grid.min.css
│ │ ├── bootstrap-grid.min.css.map
│ │ ├── bootstrap-reboot.css
│ │ ├── bootstrap-reboot.css.map
│ │ ├── bootstrap-reboot.min.css
│ │ ├── bootstrap-reboot.min.css.map
│ │ ├── bootstrap.css
│ │ ├── bootstrap.css.map
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ └── main.css
│ ├── img
│ │ ├── favicon.ico
│ │ └── helloasso-logo.png
│ ├── index.html
│ └── js
│ │ ├── bootstrap.bundle.js
│ │ ├── bootstrap.bundle.js.map
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.bundle.min.js.map
│ │ ├── bootstrap.js
│ │ ├── bootstrap.js.map
│ │ ├── bootstrap.min.js
│ │ ├── bootstrap.min.js.map
│ │ └── main.js
├── HelloAsso.Api.Doc.csproj
├── Models
│ └── ErrorViewModel.cs
├── Program.cs
├── Startup.cs
├── Views
│ ├── V3
│ │ ├── Description.cshtml
│ │ ├── Format.cshtml
│ │ ├── Index.cshtml
│ │ ├── Notifications.cshtml
│ │ ├── Public.cshtml
│ │ ├── Resources.cshtml
│ │ ├── Responses.cshtml
│ │ └── Shared
│ │ │ ├── _Header.cshtml
│ │ │ ├── _Layout.cshtml
│ │ │ └── _Sidebar.cshtml
│ └── _ViewImports.cshtml
├── appsettings.Development.json
├── appsettings.json
└── wwwroot
│ ├── BingSiteAuth.xml
│ ├── assets
│ ├── css
│ │ ├── v1
│ │ │ ├── smoothness
│ │ │ │ ├── images
│ │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ │ │ ├── ui-icons_454545_256x240.png
│ │ │ │ │ ├── ui-icons_888888_256x240.png
│ │ │ │ │ └── ui-icons_cd0a0a_256x240.png
│ │ │ │ └── jquery-ui-1.8.14.custom.css
│ │ │ └── style.css
│ │ ├── v2
│ │ │ ├── api-doc.min.css
│ │ │ ├── hellobase
│ │ │ │ └── helloasso-template.min.css
│ │ │ └── vendors
│ │ │ │ └── bootstrap.min.css
│ │ └── v3
│ │ │ ├── base
│ │ │ ├── _base.scss
│ │ │ ├── _color.scss
│ │ │ ├── _config.scss
│ │ │ ├── _normalize.scss
│ │ │ └── _typography.scss
│ │ │ ├── components
│ │ │ ├── _alert.scss
│ │ │ ├── _animation.scss
│ │ │ ├── _button.scss
│ │ │ ├── _icon.scss
│ │ │ ├── _list.scss
│ │ │ ├── _media.scss
│ │ │ └── _table.scss
│ │ │ ├── layout
│ │ │ ├── _article.scss
│ │ │ ├── _footer.scss
│ │ │ ├── _grid.scss
│ │ │ ├── _header.scss
│ │ │ ├── _navigation.scss
│ │ │ └── _sidebar.scss
│ │ │ ├── main.min.css
│ │ │ ├── main.scss
│ │ │ ├── pages
│ │ │ └── _home.scss
│ │ │ ├── themes
│ │ │ ├── _blue.scss
│ │ │ └── _night-mode.scss
│ │ │ └── vendors
│ │ │ └── _prism.scss
│ ├── images
│ │ ├── v1
│ │ │ ├── ButterflyEffect.png
│ │ │ ├── api-gears.png
│ │ │ ├── api-help.png
│ │ │ ├── api-search.png
│ │ │ ├── api-secure.png
│ │ │ ├── coeur.png
│ │ │ ├── logo-carenews.jpg
│ │ │ ├── logo-humano-games.jpg
│ │ │ ├── logo-pages-jaunes.jpg
│ │ │ ├── logo-sfr-large.png
│ │ │ ├── logo-wesignit.png
│ │ │ └── téléchargement.png
│ │ ├── v2
│ │ │ ├── helloasso-footer-presse-bfm.png
│ │ │ ├── helloasso-footer-presse-france-2.png
│ │ │ ├── helloasso-footer-presse-france-info.png
│ │ │ ├── helloasso-footer-presse-la-tribune.png
│ │ │ ├── helloasso-footer-presse-le-monde.png
│ │ │ ├── helloasso-footer-presse-les-echos.png
│ │ │ ├── helloasso-lemonway-grey.svg
│ │ │ ├── helloasso-logo-gris.png
│ │ │ └── helloasso-logo.png
│ │ └── v3
│ │ │ └── logo.svg
│ └── js
│ │ ├── v1
│ │ └── jquery-ui-1.8.14.custom.min.js
│ │ └── v3
│ │ ├── date.js
│ │ ├── date.min.js
│ │ ├── main.js
│ │ └── main.min.js
│ ├── favicon.ico
│ ├── google4c21cab80d83f9c1.html
│ ├── gulpfile.js
│ ├── package.json
│ └── yarn.lock
├── HelloAsso.Api.Samples
├── HelloAsso.Api.Samples.csproj
├── app.config
├── curl
│ ├── actions.sh
│ ├── campaigns.sh
│ ├── organizations.sh
│ └── payments.sh
├── go
│ ├── actions.go
│ ├── campaigns.go
│ ├── organizations.go
│ └── payments.go
├── nodejs
│ └── README.md
└── php
│ ├── helloasso_stat.php
│ └── helloasso_stat_total.php
└── README.md
/.github/workflows/master_app-web-dev-doc-prod.yml:
--------------------------------------------------------------------------------
1 | # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
2 | # More GitHub Actions for Azure: https://github.com/Azure/actions
3 |
4 | name: Build and deploy ASP.Net Core app to Azure Web App - app-web-dev-doc-prod
5 |
6 | on:
7 | push:
8 | branches:
9 | - master
10 |
11 | jobs:
12 | build-and-deploy:
13 | runs-on: windows-latest
14 |
15 | steps:
16 | - uses: actions/checkout@master
17 |
18 | - name: Set up .NET Core
19 | uses: actions/setup-dotnet@v1
20 | with:
21 | dotnet-version: '2.1.804'
22 |
23 | - name: Build with dotnet
24 | run: dotnet build --configuration Release
25 |
26 | - name: dotnet publish
27 | run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp
28 |
29 | - name: Deploy to Azure Web App
30 | uses: azure/webapps-deploy@v2
31 | with:
32 | app-name: 'app-web-dev-doc-prod'
33 | slot-name: 'production'
34 | publish-profile: ${{ secrets.AzureAppService_PublishProfile_e8167ed039db408fb322a9e2dace8c66 }}
35 | package: ${{env.DOTNET_ROOT}}/myapp
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.suo
8 | *.user
9 | *.userosscache
10 | *.sln.docstates
11 | *.DS_Store
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Build results
17 | [Dd]ebug/
18 | [Dd]ebugPublic/
19 | [Rr]elease/
20 | [Rr]eleases/
21 | x64/
22 | x86/
23 | bld/
24 | [Bb]in/
25 | [Oo]bj/
26 | [Ll]og/
27 |
28 | # Visual Studio 2015 cache/options directory
29 | .vs/
30 | # Uncomment if you have tasks that create the project's static files in wwwroot
31 | #wwwroot/
32 |
33 | # MSTest test Results
34 | [Tt]est[Rr]esult*/
35 | [Bb]uild[Ll]og.*
36 |
37 | # NUNIT
38 | *.VisualState.xml
39 | TestResult.xml
40 |
41 | # Build Results of an ATL Project
42 | [Dd]ebugPS/
43 | [Rr]eleasePS/
44 | dlldata.c
45 |
46 | # .NET Core
47 | project.lock.json
48 | project.fragment.lock.json
49 | artifacts/
50 | **/Properties/launchSettings.json
51 |
52 | *_i.c
53 | *_p.c
54 | *_i.h
55 | *.ilk
56 | *.meta
57 | *.obj
58 | *.pch
59 | *.pdb
60 | *.pgc
61 | *.pgd
62 | *.rsp
63 | *.sbr
64 | *.tlb
65 | *.tli
66 | *.tlh
67 | *.tmp
68 | *.tmp_proj
69 | *.log
70 | *.vspscc
71 | *.vssscc
72 | .builds
73 | *.pidb
74 | *.svclog
75 | *.scc
76 |
77 | # Chutzpah Test files
78 | _Chutzpah*
79 |
80 | # Visual C++ cache files
81 | ipch/
82 | *.aps
83 | *.ncb
84 | *.opendb
85 | *.opensdf
86 | *.sdf
87 | *.cachefile
88 | *.VC.db
89 | *.VC.VC.opendb
90 |
91 | # Visual Studio profiler
92 | *.psess
93 | *.vsp
94 | *.vspx
95 | *.sap
96 |
97 | # TFS 2012 Local Workspace
98 | $tf/
99 |
100 | # Guidance Automation Toolkit
101 | *.gpState
102 |
103 | # ReSharper is a .NET coding add-in
104 | _ReSharper*/
105 | *.[Rr]e[Ss]harper
106 | *.DotSettings.user
107 |
108 | # JustCode is a .NET coding add-in
109 | .JustCode
110 |
111 | # TeamCity is a build add-in
112 | _TeamCity*
113 |
114 | # DotCover is a Code Coverage Tool
115 | *.dotCover
116 |
117 | # Visual Studio code coverage results
118 | *.coverage
119 | *.coveragexml
120 |
121 | # NCrunch
122 | _NCrunch_*
123 | .*crunch*.local.xml
124 | nCrunchTemp_*
125 |
126 | # MightyMoose
127 | *.mm.*
128 | AutoTest.Net/
129 |
130 | # Web workbench (sass)
131 | .sass-cache/
132 |
133 | # Installshield output folder
134 | [Ee]xpress/
135 |
136 | # DocProject is a documentation generator add-in
137 | DocProject/buildhelp/
138 | DocProject/Help/*.HxT
139 | DocProject/Help/*.HxC
140 | DocProject/Help/*.hhc
141 | DocProject/Help/*.hhk
142 | DocProject/Help/*.hhp
143 | DocProject/Help/Html2
144 | DocProject/Help/html
145 |
146 | # Click-Once directory
147 | publish/
148 |
149 | # Publish Web Output
150 | *.[Pp]ublish.xml
151 | *.azurePubxml
152 | # TODO: Comment the next line if you want to checkin your web deploy settings
153 | # but database connection strings (with potential passwords) will be unencrypted
154 | *.pubxml
155 | *.publishproj
156 |
157 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
158 | # checkin your Azure Web App publish settings, but sensitive information contained
159 | # in these scripts will be unencrypted
160 | PublishScripts/
161 |
162 | # NuGet Packages
163 | *.nupkg
164 | # The packages folder can be ignored because of Package Restore
165 | **/packages/*
166 | # except build/, which is used as an MSBuild target.
167 | !**/packages/build/
168 | # Uncomment if necessary however generally it will be regenerated when needed
169 | #!**/packages/repositories.config
170 | # NuGet v3's project.json files produces more ignorable files
171 | *.nuget.props
172 | *.nuget.targets
173 |
174 | # Microsoft Azure Build Output
175 | csx/
176 | *.build.csdef
177 |
178 | # Microsoft Azure Emulator
179 | ecf/
180 | rcf/
181 |
182 | # Windows Store app package directories and files
183 | AppPackages/
184 | BundleArtifacts/
185 | Package.StoreAssociation.xml
186 | _pkginfo.txt
187 |
188 | # Visual Studio cache files
189 | # files ending in .cache can be ignored
190 | *.[Cc]ache
191 | # but keep track of directories ending in .cache
192 | !*.[Cc]ache/
193 |
194 | # Others
195 | ClientBin/
196 | ~$*
197 | *~
198 | *.dbmdl
199 | *.dbproj.schemaview
200 | *.jfm
201 | *.pfx
202 | *.publishsettings
203 | orleans.codegen.cs
204 |
205 | # Since there are multiple workflows, uncomment next line to ignore bower_components
206 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
207 | #bower_components/
208 |
209 | # RIA/Silverlight projects
210 | Generated_Code/
211 |
212 | # Backup & report files from converting an old project file
213 | # to a newer Visual Studio version. Backup files are not needed,
214 | # because we have git ;-)
215 | _UpgradeReport_Files/
216 | Backup*/
217 | UpgradeLog*.XML
218 | UpgradeLog*.htm
219 |
220 | # SQL Server files
221 | *.mdf
222 | *.ldf
223 | *.ndf
224 |
225 | # Business Intelligence projects
226 | *.rdl.data
227 | *.bim.layout
228 | *.bim_*.settings
229 |
230 | # Microsoft Fakes
231 | FakesAssemblies/
232 |
233 | # GhostDoc plugin setting file
234 | *.GhostDoc.xml
235 |
236 | # Node.js Tools for Visual Studio
237 | .ntvs_analysis.dat
238 | node_modules/
239 |
240 | # Typescript v1 declaration files
241 | typings/
242 |
243 | # Visual Studio 6 build log
244 | *.plg
245 |
246 | # Visual Studio 6 workspace options file
247 | *.opt
248 |
249 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
250 | *.vbw
251 |
252 | # Visual Studio LightSwitch build output
253 | **/*.HTMLClient/GeneratedArtifacts
254 | **/*.DesktopClient/GeneratedArtifacts
255 | **/*.DesktopClient/ModelManifest.xml
256 | **/*.Server/GeneratedArtifacts
257 | **/*.Server/ModelManifest.xml
258 | _Pvt_Extensions
259 |
260 | # Paket dependency manager
261 | .paket/paket.exe
262 | paket-files/
263 |
264 | # FAKE - F# Make
265 | .fake/
266 |
267 | # JetBrains Rider
268 | .idea/
269 | *.sln.iml
270 |
271 | # CodeRush
272 | .cr/
273 |
274 | # Python Tools for Visual Studio (PTVS)
275 | __pycache__/
276 | *.pyc
277 |
278 | # Cake - Uncomment if you are using it
279 | # tools/**
280 | # !tools/packages.config
281 |
282 | # Telerik's JustMock configuration file
283 | *.jmconfig
284 |
285 | # BizTalk build output
286 | *.btp.cs
287 | *.btm.cs
288 | *.odx.cs
289 | *.xsd.cs
290 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.27130.2026
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloAsso.Api.Doc", "HelloAsso.Api.Doc\HelloAsso.Api.Doc.csproj", "{D2AD9952-00EB-4F9B-A563-BA38E519D838}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloAsso.Api.Samples", "HelloAsso.Api.Samples\HelloAsso.Api.Samples.csproj", "{867CB265-545C-4B18-93DC-40C4AFA18AD3}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {D2AD9952-00EB-4F9B-A563-BA38E519D838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {D2AD9952-00EB-4F9B-A563-BA38E519D838}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {D2AD9952-00EB-4F9B-A563-BA38E519D838}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {D2AD9952-00EB-4F9B-A563-BA38E519D838}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {867CB265-545C-4B18-93DC-40C4AFA18AD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {867CB265-545C-4B18-93DC-40C4AFA18AD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {867CB265-545C-4B18-93DC-40C4AFA18AD3}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {867CB265-545C-4B18-93DC-40C4AFA18AD3}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {D092D96F-4039-43BD-90D8-69D40C23ED8A}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc.sln.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | DO_NOT_SHOW
3 | DO_NOT_SHOW
4 | SUGGESTION
5 | <Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" />
6 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
7 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
8 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
9 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
10 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
11 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
12 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
13 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
14 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
15 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
16 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
17 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
18 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
19 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
20 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
21 | <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" />
22 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
23 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
24 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
25 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
26 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
27 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
28 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
29 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
30 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
31 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
32 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
33 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
34 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
35 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
36 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
37 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
38 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
39 | <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" />
40 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
41 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
42 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
43 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
44 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
45 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
46 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
47 | C:\Users\eddy\AppData\Local\JetBrains\Transient\ReSharperPlatformVs15\v11_4c471217\SolutionCaches
48 | LIVE_MONITOR
49 | LIVE_MONITOR
50 | DO_NOTHING
51 | LIVE_MONITOR
52 | LIVE_MONITOR
53 | LIVE_MONITOR
54 | LIVE_MONITOR
55 | LIVE_MONITOR
56 | LIVE_MONITOR
57 | LIVE_MONITOR
58 | LIVE_MONITOR
59 | DO_NOTHING
60 | LIVE_MONITOR
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Controllers/V3Controller.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.AspNetCore.Mvc;
2 |
3 | namespace HelloAsso.Api.Doc.Controllers
4 | {
5 | public class V3Controller : Controller
6 | {
7 | public IActionResult Index()
8 | {
9 | ReadCookie();
10 | return View();
11 | }
12 |
13 | public IActionResult Description()
14 | {
15 | ReadCookie();
16 | return View();
17 | }
18 |
19 | public IActionResult Format()
20 | {
21 | ReadCookie();
22 | return View();
23 | }
24 |
25 | public IActionResult Notifications()
26 | {
27 | ReadCookie();
28 | return View();
29 | }
30 |
31 | public IActionResult Public()
32 | {
33 | ReadCookie();
34 | return View();
35 | }
36 |
37 | public IActionResult Resources()
38 | {
39 | ReadCookie();
40 | return View();
41 | }
42 |
43 | public IActionResult Responses()
44 | {
45 | ReadCookie();
46 | return View();
47 | }
48 |
49 | private void ReadCookie()
50 | {
51 | var cookie = Request.Cookies["themeSaver"] ?? "theme-default";
52 | this.ViewBag.Theme = cookie;
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/FormulaireDon-demo/.gitignore:
--------------------------------------------------------------------------------
1 | # Perso
2 | *.DS_Store
3 | *.idea
4 |
5 | # Logs
6 | logs
7 | *.log
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 |
24 | # nyc test coverage
25 | .nyc_output
26 |
27 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
28 | .grunt
29 |
30 | # Bower dependency directory (https://bower.io/)
31 | bower_components
32 |
33 | # node-waf configuration
34 | .lock-wscript
35 |
36 | # Compiled binary addons (https://nodejs.org/api/addons.html)
37 | build/Release
38 |
39 | # Dependency directories
40 | node_modules/
41 | jspm_packages/
42 |
43 | # TypeScript v1 declaration files
44 | typings/
45 |
46 | # Optional npm cache directory
47 | .npm
48 |
49 | # Optional eslint cache
50 | .eslintcache
51 |
52 | # Optional REPL history
53 | .node_repl_history
54 |
55 | # Output of 'npm pack'
56 | *.tgz
57 |
58 | # Yarn Integrity file
59 | .yarn-integrity
60 |
61 | # dotenv environment variables file
62 | .env
63 |
64 | # parcel-bundler cache (https://parceljs.org/)
65 | .cache
66 |
67 | # next.js build output
68 | .next
69 |
70 | # nuxt.js build output
71 | .nuxt
72 |
73 | # vuepress build output
74 | .vuepress/dist
75 |
76 | # Serverless directories
77 | .serverless
78 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/FormulaireDon-demo/README.md:
--------------------------------------------------------------------------------
1 | # HelloAsso Formulaire via Redirect + URL Params - Demo
2 |
3 | Remplir l'URL de votre formulaire dans le fichier `./js/main.js`
4 |
5 | Puis pour mettre en place un petit serveur web en se plaçant localement à la racine du fichier.
6 |
7 | - serve locally with node:
8 | ```
9 | npx simple-server
10 | ```
11 |
12 | - serve locally with python:
13 | ```
14 | $ python -m SimpleHTTPServer
15 | ```
16 | @Gil && @Paul d'HelloAsso.
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/FormulaireDon-demo/css/bootstrap-reboot.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v4.1.3 (https://getbootstrap.com/)
3 | * Copyright 2011-2018 The Bootstrap Authors
4 | * Copyright 2011-2018 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | html {
15 | font-family: sans-serif;
16 | line-height: 1.15;
17 | -webkit-text-size-adjust: 100%;
18 | -ms-text-size-adjust: 100%;
19 | -ms-overflow-style: scrollbar;
20 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
21 | }
22 |
23 | @-ms-viewport {
24 | width: device-width;
25 | }
26 |
27 | article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
28 | display: block;
29 | }
30 |
31 | body {
32 | margin: 0;
33 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
34 | font-size: 1rem;
35 | font-weight: 400;
36 | line-height: 1.5;
37 | color: #212529;
38 | text-align: left;
39 | background-color: #fff;
40 | }
41 |
42 | [tabindex="-1"]:focus {
43 | outline: 0 !important;
44 | }
45 |
46 | hr {
47 | box-sizing: content-box;
48 | height: 0;
49 | overflow: visible;
50 | }
51 |
52 | h1, h2, h3, h4, h5, h6 {
53 | margin-top: 0;
54 | margin-bottom: 0.5rem;
55 | }
56 |
57 | p {
58 | margin-top: 0;
59 | margin-bottom: 1rem;
60 | }
61 |
62 | abbr[title],
63 | abbr[data-original-title] {
64 | text-decoration: underline;
65 | -webkit-text-decoration: underline dotted;
66 | text-decoration: underline dotted;
67 | cursor: help;
68 | border-bottom: 0;
69 | }
70 |
71 | address {
72 | margin-bottom: 1rem;
73 | font-style: normal;
74 | line-height: inherit;
75 | }
76 |
77 | ol,
78 | ul,
79 | dl {
80 | margin-top: 0;
81 | margin-bottom: 1rem;
82 | }
83 |
84 | ol ol,
85 | ul ul,
86 | ol ul,
87 | ul ol {
88 | margin-bottom: 0;
89 | }
90 |
91 | dt {
92 | font-weight: 700;
93 | }
94 |
95 | dd {
96 | margin-bottom: .5rem;
97 | margin-left: 0;
98 | }
99 |
100 | blockquote {
101 | margin: 0 0 1rem;
102 | }
103 |
104 | dfn {
105 | font-style: italic;
106 | }
107 |
108 | b,
109 | strong {
110 | font-weight: bolder;
111 | }
112 |
113 | small {
114 | font-size: 80%;
115 | }
116 |
117 | sub,
118 | sup {
119 | position: relative;
120 | font-size: 75%;
121 | line-height: 0;
122 | vertical-align: baseline;
123 | }
124 |
125 | sub {
126 | bottom: -.25em;
127 | }
128 |
129 | sup {
130 | top: -.5em;
131 | }
132 |
133 | a {
134 | color: #007bff;
135 | text-decoration: none;
136 | background-color: transparent;
137 | -webkit-text-decoration-skip: objects;
138 | }
139 |
140 | a:hover {
141 | color: #0056b3;
142 | text-decoration: underline;
143 | }
144 |
145 | a:not([href]):not([tabindex]) {
146 | color: inherit;
147 | text-decoration: none;
148 | }
149 |
150 | a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
151 | color: inherit;
152 | text-decoration: none;
153 | }
154 |
155 | a:not([href]):not([tabindex]):focus {
156 | outline: 0;
157 | }
158 |
159 | pre,
160 | code,
161 | kbd,
162 | samp {
163 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
164 | font-size: 1em;
165 | }
166 |
167 | pre {
168 | margin-top: 0;
169 | margin-bottom: 1rem;
170 | overflow: auto;
171 | -ms-overflow-style: scrollbar;
172 | }
173 |
174 | figure {
175 | margin: 0 0 1rem;
176 | }
177 |
178 | img {
179 | vertical-align: middle;
180 | border-style: none;
181 | }
182 |
183 | svg {
184 | overflow: hidden;
185 | vertical-align: middle;
186 | }
187 |
188 | table {
189 | border-collapse: collapse;
190 | }
191 |
192 | caption {
193 | padding-top: 0.75rem;
194 | padding-bottom: 0.75rem;
195 | color: #6c757d;
196 | text-align: left;
197 | caption-side: bottom;
198 | }
199 |
200 | th {
201 | text-align: inherit;
202 | }
203 |
204 | label {
205 | display: inline-block;
206 | margin-bottom: 0.5rem;
207 | }
208 |
209 | button {
210 | border-radius: 0;
211 | }
212 |
213 | button:focus {
214 | outline: 1px dotted;
215 | outline: 5px auto -webkit-focus-ring-color;
216 | }
217 |
218 | input,
219 | button,
220 | select,
221 | optgroup,
222 | textarea {
223 | margin: 0;
224 | font-family: inherit;
225 | font-size: inherit;
226 | line-height: inherit;
227 | }
228 |
229 | button,
230 | input {
231 | overflow: visible;
232 | }
233 |
234 | button,
235 | select {
236 | text-transform: none;
237 | }
238 |
239 | button,
240 | html [type="button"],
241 | [type="reset"],
242 | [type="submit"] {
243 | -webkit-appearance: button;
244 | }
245 |
246 | button::-moz-focus-inner,
247 | [type="button"]::-moz-focus-inner,
248 | [type="reset"]::-moz-focus-inner,
249 | [type="submit"]::-moz-focus-inner {
250 | padding: 0;
251 | border-style: none;
252 | }
253 |
254 | input[type="radio"],
255 | input[type="checkbox"] {
256 | box-sizing: border-box;
257 | padding: 0;
258 | }
259 |
260 | input[type="date"],
261 | input[type="time"],
262 | input[type="datetime-local"],
263 | input[type="month"] {
264 | -webkit-appearance: listbox;
265 | }
266 |
267 | textarea {
268 | overflow: auto;
269 | resize: vertical;
270 | }
271 |
272 | fieldset {
273 | min-width: 0;
274 | padding: 0;
275 | margin: 0;
276 | border: 0;
277 | }
278 |
279 | legend {
280 | display: block;
281 | width: 100%;
282 | max-width: 100%;
283 | padding: 0;
284 | margin-bottom: .5rem;
285 | font-size: 1.5rem;
286 | line-height: inherit;
287 | color: inherit;
288 | white-space: normal;
289 | }
290 |
291 | progress {
292 | vertical-align: baseline;
293 | }
294 |
295 | [type="number"]::-webkit-inner-spin-button,
296 | [type="number"]::-webkit-outer-spin-button {
297 | height: auto;
298 | }
299 |
300 | [type="search"] {
301 | outline-offset: -2px;
302 | -webkit-appearance: none;
303 | }
304 |
305 | [type="search"]::-webkit-search-cancel-button,
306 | [type="search"]::-webkit-search-decoration {
307 | -webkit-appearance: none;
308 | }
309 |
310 | ::-webkit-file-upload-button {
311 | font: inherit;
312 | -webkit-appearance: button;
313 | }
314 |
315 | output {
316 | display: inline-block;
317 | }
318 |
319 | summary {
320 | display: list-item;
321 | cursor: pointer;
322 | }
323 |
324 | template {
325 | display: none;
326 | }
327 |
328 | [hidden] {
329 | display: none !important;
330 | }
331 | /*# sourceMappingURL=bootstrap-reboot.css.map */
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/FormulaireDon-demo/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v4.1.3 (https://getbootstrap.com/)
3 | * Copyright 2011-2018 The Bootstrap Authors
4 | * Copyright 2011-2018 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/FormulaireDon-demo/css/main.css:
--------------------------------------------------------------------------------
1 | .payment-form-wrapper {
2 | margin-bottom: 100px;
3 | }
4 |
5 | button.payment,
6 | button.payment:hover,
7 | button.payment:focus {
8 | background: rgb(99, 143, 52);
9 | }
10 |
11 | body {
12 | background-color: #ecf0f1 !important
13 | }
14 |
15 | h1 {
16 | margin-top: 20px;
17 | margin-bottom: 60px;
18 | }
19 |
20 | .form-control{
21 | color: #0a0a0a;
22 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/FormulaireDon-demo/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/FormulaireDon-demo/img/favicon.ico
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/FormulaireDon-demo/img/helloasso-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/FormulaireDon-demo/img/helloasso-logo.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/FormulaireDon-demo/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | HelloAsso API
9 |
10 |
11 |
87 |
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/FormulaireDon-demo/js/main.js:
--------------------------------------------------------------------------------
1 | const fields = [
2 | 'a', 'm', 'ln', 'fn', 's', 'e', 'ad', 'z', 'ci', 'co', 'custom_ref'
3 | ];
4 |
5 | // A REMPLIR !!!!
6 | const baseUrl = 'https://www.helloasso-dev.com/associations/test-gil/formulaires/2';
7 |
8 | const mapFields = (form) => {
9 | return fields.reduce((acc, key) => {
10 | const value = form[key].value;
11 | if (value) {
12 | const updated = Object.assign({}, acc);
13 | updated[key] = value;
14 | return updated;
15 | }
16 | return acc;
17 | }, {});
18 | };
19 |
20 | const makeQuery = (fields) => {
21 | return Object.entries(fields).reduce((acc, [key, val]) => {
22 | return `${acc}${key}=${encodeURIComponent(val)}&`
23 | }, '?');
24 | };
25 |
26 | const redirect = (query) => {
27 | window.location.replace(`${baseUrl}${query}`);
28 | return false;
29 | };
30 |
31 | const onSubmit = (form) => {
32 | const fields = mapFields(form);
33 | const query = `${makeQuery(fields)}ft=0`;
34 | console.log(query);
35 |
36 | return redirect(query);
37 | };
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/HelloAsso.Api.Doc.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | <_ContentIncludedByDefault Remove="Views\V1\Cgu.cshtml" />
22 | <_ContentIncludedByDefault Remove="Views\V1\Doc.cshtml" />
23 | <_ContentIncludedByDefault Remove="Views\V1\Index.cshtml" />
24 | <_ContentIncludedByDefault Remove="Views\V1\Shared\_Layout.cshtml" />
25 | <_ContentIncludedByDefault Remove="Views\V2\Index.cshtml" />
26 | <_ContentIncludedByDefault Remove="Views\V2\Shared\_Footer.cshtml" />
27 | <_ContentIncludedByDefault Remove="Views\V2\Shared\_Header.cshtml" />
28 | <_ContentIncludedByDefault Remove="Views\V2\Shared\_Layout.cshtml" />
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Models/ErrorViewModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace HelloAsso.Api.Doc.Models
4 | {
5 | public class ErrorViewModel
6 | {
7 | public string RequestId { get; set; }
8 |
9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
10 | }
11 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Program.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.AspNetCore;
2 | using Microsoft.AspNetCore.Hosting;
3 |
4 | namespace HelloAsso.Api.Doc
5 | {
6 | public class Program
7 | {
8 | public static void Main(string[] args)
9 | {
10 | BuildWebHost(args).Run();
11 | }
12 |
13 | public static IWebHost BuildWebHost(string[] args) =>
14 | WebHost.CreateDefaultBuilder(args)
15 | .UseStartup()
16 | .Build();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Startup.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.AspNetCore.Builder;
2 | using Microsoft.AspNetCore.Hosting;
3 | using Microsoft.Extensions.Configuration;
4 | using Microsoft.Extensions.DependencyInjection;
5 |
6 | namespace HelloAsso.Api.Doc
7 | {
8 | public class Startup
9 | {
10 | public Startup(IConfiguration configuration)
11 | {
12 | Configuration = configuration;
13 | }
14 |
15 | public IConfiguration Configuration { get; }
16 |
17 | // This method gets called by the runtime. Use this method to add services to the container.
18 | public void ConfigureServices(IServiceCollection services)
19 | {
20 | services.AddMvc();
21 | }
22 |
23 | // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
24 | public void Configure(IApplicationBuilder app, IHostingEnvironment env)
25 | {
26 | if (env.IsDevelopment())
27 | {
28 | app.UseBrowserLink();
29 | app.UseDeveloperExceptionPage();
30 | }
31 | else
32 | {
33 | app.UseExceptionHandler("/Home/Error");
34 | }
35 |
36 | app.UseStaticFiles();
37 |
38 | app.UseMvc(routes =>
39 | {
40 | routes.MapRoute(
41 | name: "default",
42 | template: "{controller=V3}/{action=Index}/{id?}");
43 | });
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Views/V3/Description.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "~/Views/V3/Shared/_Layout.cshtml";
3 | }
4 |
5 | @Html.Partial("Shared/_Header")
6 |
7 |
8 |
9 |
20 |
21 | Définitions
22 |
23 | Application
24 | Une application est un compte API ouvert pour vous par HelloAsso, vous permettant de réaliser des opérations d’API sur les organismes enregistrés dessus.
25 |
26 |
27 | Organisme
28 | Un compte associatif ou une fondation inscrit-e sur HelloAsso.
29 |
30 |
31 | Action
32 | Une action d’un contributeur sur la plateforme HelloAsso, susceptible de remonter dans votre application, à condition que celle-ci ait été effectuée sur un des organismes affiliés à celle-ci. Exemples : un don, une adhésion, une inscription à une billetterie.
33 |
34 |
35 | Paiement
36 | Un paiement est une transaction monétique réalisée sur HelloAsso, au profit d’une campagne. Un paiement est toujours associé à une ou plusieurs actions. Sur une billetterie, les internautes peuvent par exemple inscrire plusieurs personnes en même temps, et/ou laisser un don en plus de leurs inscriptions. Ceci engendrerait donc la création d’un paiement associé à une ou plusieurs actions d’inscription, et le cas échéant, d’une action de don.
37 |
38 |
39 | Campagne
40 | Une campagne est une page créée par un organisme sur HelloAsso, permettant de présenter un projet de financement participatif, un formulaire d’adhésion ou une billetterie en ligne. Les contributeurs peuvent réaliser des actions sur une campagne : réaliser un don (unique ou mensuel), s’inscrire, adhérer.
41 |
42 |
43 |
44 | Présentation générale
45 |
46 | L’ensemble des interfaces HelloAsso sont exposées au travers d’une API accessible sur le domaine api.helloasso.com. Celle-ci est structurée suivant les principes REST : les ressources sont exposées sous forme d’url sur lesquelles des appels HTTP GET permettent de récupérer les données concernées.
47 | HelloAsso ouvre pour ses partenaires des comptes d’application sur son API, il est nécessaire d’envoyer votre demande de clé via le formulaire de contact HelloAsso . Des données d’authentification seront fournies par HelloAsso. Celles-ci vous permettront d’accéder aux ressources privées associées à votre application. Ces données d’authentification doivent être intégrées dans l’en-tête de tous les appels, via le champ Authorization. Tous les appels apis auront donc la forme :
48 |
49 |
50 | <VERB> https://api.helloasso.com/v3/chemin
51 | Header :
52 | Authorization : Basic <chaine de connexion>
53 |
54 |
55 |
56 |
62 |
63 | Les ressources sont nommées de façon explicite et sont arrangées selon la typologie suivante.
64 |
65 | organization : un organisme enregistré sur votre application.
66 | campaign : une campagne enregistrée sur votre application.
67 | action : un don, une adhésion ou une inscription réalisée sur une campagne.
68 | payment : un paiement réalisé sur une campagne, correspond à une ou plusieurs actions.
69 |
70 |
71 |
72 | Tous les appels en lecture sont réalisés via une requête http GET. Toutes les requêtes doivent être réalisées en https.
73 |
74 |
75 |
76 |
77 |
78 |
79 | Introduction
80 |
81 |
82 | Format des échanges
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Retour
92 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Views/V3/Format.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "~/Views/V3/Shared/_Layout.cshtml";
3 | }
4 |
5 | @Html.Partial("Shared/_Header")
6 |
7 |
8 |
9 |
26 |
27 | Encodage
28 |
29 | Les données échangées à travers l’API HelloAsso, qu’elles soient passées en paramètres, ou retournées dans les réponses, respectent les normes suivantes :
30 |
31 | chaine de caractères : l’encodage utilisé est l’UTF-8
32 | dates : les dates sont représentées sous forme de timestamp au format ISO 8601 . Le 12 mai 2015 est ainsi représenté par la chaine 2015-05-12T12:12:33
33 | format du contenu de la réponse : JSON
34 |
35 |
36 |
37 |
38 | Gestion des erreurs
39 |
40 | Un code HTTP indique si l’appel a été correctement traité. Si ce code est différent de 200, cela signifie qu’un problème a été rencontré.
41 | En particulier, voici les différents codes d’erreur HTTP qui sont susceptibles d’être retournés :
42 |
43 |
44 | 400 : Bad Request
45 | L’url de l’appel est incorrect. Ce code correspond généralement à une valeur de paramètre incorrecte ou inexistante.
46 |
47 |
48 | 401 : Unauthorized
49 | Les informations d’authentification sont incorrectes ou absentes.
50 |
51 |
52 | 404 : Not Found
53 | L’appel a été correctement interprété et exécuté, mais la ressource demandée n’a pas été trouvée. En règle générale, cela indique que l’identifiant passé en paramètre est incorrect.
54 |
55 |
56 | 405 : Method Not Allowed
57 | L’url de l’appel est correct, mais la méthode utilisée n’est pas supportée par cette ressource. Par exemple, un appel GET a été réalisé sur une ressource ne pouvant être accédée qu’avec la méthode POST.
58 |
59 |
60 | 426 : Update Required
61 | L’appel a été correctement interprété, mais non exécuté. Ce code est retourné si l’appel est effectué dans un protocole non-sécurisé.
62 |
63 |
64 | 500 : Internal Server Error
65 | Une erreur de traitement a été rencontrée par les serveurs HelloAsso. Dans ce cas, le problème doit être remonté à notre équipe afin que nous puissions en déterminer l’origine et, le cas échéant, appliquer un correctif.
66 |
67 |
68 | 503 : Service Unavailable
69 | Ce code de retour indique que les serveurs HelloAsso sont surchargés. Dans ce cas de figure, l’appel doit être réitéré après le délai indiqué dans le champs d’en-tête Retry-After de la réponse.
70 |
71 |
72 | Outre le code de réponse HTTP, les appels en erreur retournent une réponse contenant plus d’informations sur l’erreur rencontrée. Ces informations apparaissent sous deux formats. Le premier est un message à destination humaine, donnant une indication sur la possible origine du problème. Par exemple, si l’erreur provient d’un paramètre malformé, cela sera indiqué dans le message, avec le nom du paramètre en question.
73 | Le deuxième format est un code d’erreur HelloAsso en notation reverse-domain, pouvant donc être automatiquement traité afin de mettre en place différents scénarios de réponses.
74 | Voici les différents codes de réponses susceptibles d’être retournés :
75 |
76 |
77 | com.helloasso.api.InvalidResource
78 | La ressource demandée n’existe pas. La raison en est probablement une url malformée.
79 | com.helloasso.api.MissingParameter
80 | L’accès à la ressource nécessite un paramètre qui n’a pas été fourni. Le message indique alors le paramètre concerné.
81 | com.helloasso.api.InvalidParameter
82 | Un des paramètres fournis n’est pas au format attendu. Le message indique alors le paramètre concerné.
83 | com.helloasso.api.InvalidIdentifier
84 | Un paramètre d’identifiant a été fourni, ne correspondant à aucune donnée enregistrée sur l’application.
85 | com.helloasso.api.NonSecureConnection
86 | L’appel a été réalisé en HTTP, sur une ressource imposant le protocole HTTPS.
87 | com.helloasso.api.ServiceUnavailable
88 | La ressource est actuellement indisponible pour cause de maintenance. Le message indique alors la nature de la maintenance et le temps d’attente estimé avant que la ressource soit à nouveau disponible.
89 | com.helloasso.api.ServerError
90 | Une erreur s’est produite lors du traitement de la demande.
91 |
92 |
93 |
94 | Format des chemins d’accès aux ressources
95 |
96 | Le format canonique des urls d’accès aux ressources est le suivant :
97 |
98 |
99 | <VERB> api.helloasso.com/<version>/<type>[/<id|slug>].<format>[?parameters]
100 |
101 |
102 |
103 |
104 | [version] est l’identifiant de version de l’API utilisée. Celui-ci sera valorisé à v3 . Les futures mises à jour importantes de l’API engendreront systématiquement un changement de numéro de version.
105 | [type] est le type de ressource demandée. Celui-ci peut prendre différentes valeurs :
106 |
107 |
108 | organizations
109 |
110 |
111 | campaigns
112 |
113 |
114 | actions
115 |
116 |
117 | payments
118 |
119 |
120 | [id] est l’identifiant unique de la ressource demandée. Celui-ci est normalement récupéré par un autre appel à l’API, ou fourni en retour d’un appel de création d’une nouvelle ressource.
121 | [format] est le format de sérialisation souhaitée. Le format par défaut est le JSON, mais d’autres formats de sérialisation pourront être mis en place à l’avenir.
122 | [parameters] est la chaine des paramètres optionnels attendu par la ressource demandée. Celle-ci se présente sous forme de query string d’url standard.
123 |
124 |
125 |
126 | Format des réponses et pagination
127 |
128 | Si l’appel à une resource est correcte, la réponse contient une representation JSON de la resource demandée. Les representations JSON des différentes ressources sont documentées dans le chapitre “Type de réponses”.
129 | Certains appels retournent une collection de ressources. Dans ce cas, le format de la réponse est le suivant :
130 |
131 |
132 | {
133 | "resources": [
134 | {
135 | // Representation JSON du type de resource demandée
136 | }
137 | …
138 | ],
139 | "pagination": {
140 | "page": "int",
141 | "max_page": "int",
142 | "result_per_page": "int"
143 | }
144 | }
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 | Élément
154 | Description
155 |
156 |
157 |
158 |
159 |
160 | ressources
161 |
162 | Un tableau contenant les représentations JSON des ressources demandées
163 |
164 |
165 |
166 | pagination.page
167 |
168 | La page courante de la collection retournée
169 |
170 |
171 |
172 | pagination.max_page
173 |
174 | Le nombre de pages disponibles pour cette collection
175 |
176 |
177 |
178 | pagination.result_per_page
179 |
180 | Le nombre de résultat par page
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 | Description de l’API HelloAsso
192 |
193 |
194 | Types des réponses
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 | Retour
203 |
204 |
205 | @**@
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Views/V3/Index.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "~/Views/V3/Shared/_Layout.cshtml";
3 | }
4 |
5 |
12 |
13 |
35 |
36 |
37 |
38 |
×
39 |
Découvrez la nouvelle version de notre API
40 |
La V5 de notre API est désormais accessible et utilisable par les associations et les partenaires de HelloAsso. Bien qu'elle reste fonctionnelle, l'API V3 n'est plus maintenue et nous vous encourageons à passer à la V5.
41 |
Découvrir l'API V5
42 |
43 |
44 |
45 |
57 |
58 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Views/V3/Notifications.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "~/Views/V3/Shared/_Layout.cshtml";
3 | }
4 |
5 | @Html.Partial("Shared/_Header")
6 |
7 |
8 |
9 |
23 |
24 | Généralités
25 |
26 | HelloAsso peut vous envoyer des notifications lors de différents événements liés aux organismes et campagnes enregistrés sur votre application.
27 | Les notifications sont réalisées via des requêtes sous format URLEncoded et en POST sur les urls que vous aurez définies pour chacun des types de notification décrits dans ce chapitre.
28 | Pour demander à intégrer votre URL de callback merci de nous faire la demande par mail ou sur notre formulaire .
29 | Nous prendrons en charge votre demande rapidement.
30 | HelloAsso envoie sur chaque notification les paramètres décrits dans les sections suivantes.
31 |
32 |
33 |
34 | Nouveau paiement
35 |
36 |
37 |
38 |
39 |
40 | Paramètre
41 | Description
42 | Format
43 |
44 |
45 |
46 |
47 |
48 | id
49 |
50 | L’identifiant du paiement
51 | string
52 |
53 |
54 |
55 | date
56 |
57 | La date
58 | string
59 |
60 |
61 |
62 | amount
63 |
64 | Le montant du paiement
65 | decimal
66 |
67 |
68 |
69 | type
70 |
71 | Type de paiement paiement
72 | string
73 |
74 |
75 |
76 | url
77 |
78 | L’url de la campagne sur laquelle a été effectué le paiement
79 | string
80 |
81 |
82 |
83 | payer_first_name
84 |
85 | Le prénom du payeur
86 | string
87 |
88 |
89 |
90 | payer_last_name
91 |
92 | Le nom du payeur
93 | string
94 |
95 |
96 |
97 | url_receipt
98 |
99 | L’url du reçu
100 | string
101 |
102 |
103 |
104 | url_tax_receipt
105 |
106 | L’url du reçu fiscal
107 | string
108 |
109 |
110 |
111 | action_id
112 |
113 | Action ID à requeter pour les infos complémentaires
114 | string
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 | Création/édition de campagne
123 |
124 |
125 |
126 |
127 |
128 | Paramètre
129 | Description
130 | Format
131 |
132 |
133 |
134 |
135 |
136 | id
137 |
138 | L’identifiant de la campagne
139 | string
140 |
141 |
142 |
143 | date
144 |
145 | La date de création ou modification
146 | date
147 |
148 |
149 |
150 | url
151 |
152 | L’url de la campagne
153 | string
154 |
155 |
156 |
157 | notification_type
158 |
159 | Type de notification
160 | EDITION | CREATION
161 |
162 |
163 |
164 | type
165 |
166 | Type de la campagne
167 | EVENT | FORM | FUNDRAISER | MEMBERSHIP | FUNDRAISER_PEER_TO_PEER
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 | Ressources
179 |
180 |
181 | API publique
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 | Retour
190 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Views/V3/Public.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "~/Views/V3/Shared/_Layout.cshtml";
3 | }
4 |
5 | @Html.Partial("Shared/_Header")
6 |
7 |
8 |
9 |
10 | Liste des campagnes d’une association par son slug
11 |
12 | Requête
13 |
14 |
15 | GET https://api.helloasso.com/v3/public/organizations/{slug}/campaigns.json[?type=<EVENT|FORM|FUNDRAISER|MEMBERSHIP>&page=<page>&results_per_page=<results_per_page>]
16 |
17 |
18 |
19 |
20 | Paramètres
21 |
22 |
23 |
24 |
25 | Paramètre
26 | Description
27 | Requis
28 | Format
29 |
30 |
31 |
32 |
33 |
34 | slug
35 |
36 | Le slug de l’organisme détenteur des campagnes
37 | Oui
38 | string
39 |
40 |
41 |
42 | type
43 |
44 | Le type de campagnes à récupérer
45 | Non
46 | EVENT|FORM|FUNDRAISER |MEMBERSHIP
47 |
48 |
49 |
50 | page
51 |
52 | Page qu’on veut retourner (1 par défaut)
53 | Non
54 | int
55 |
56 |
57 |
58 | results_per_page
59 |
60 | Nombre de résultats par page (20 par défaut)
61 | Non
62 | int
63 |
64 |
65 |
66 |
67 | Réponse : Une collection des campagnes basiques .
68 |
69 |
70 | {
71 | "resources": [
72 | {
73 | "name": "string",
74 | "slug": "string",
75 | "type": "string",
76 | "url": "string",
77 | "url_widget": "string",
78 | "url_bouton": "string",
79 | "name_organism": "string",
80 | "slug_organism": "string"
81 | }
82 | …
83 | ]
84 | }
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 | Liste des campagnes d’une association par son id
93 |
94 | Requête
95 |
96 |
97 | GET https://api.helloasso.com/v3/public/organizations/campaigns.json?organism_id=<organism_id>[&type=<EVENT|FORM|FUNDRAISER|MEMBERSHIP>&page=<page>&results_per_page=<results_per_page>]
98 |
99 |
100 |
101 |
102 | Paramètres
103 |
104 |
105 |
106 |
107 | Paramètre
108 | Description
109 | Requis
110 | Format
111 |
112 |
113 |
114 |
115 |
116 | organism_id
117 |
118 | L’id de l’organisme détenteur des campagnes
119 | Oui
120 | string
121 |
122 |
123 |
124 | type
125 |
126 | Le type de campagnes à récupérer
127 | Non
128 | EVENT|FORM|FUNDRAISER |MEMBERSHIP
129 |
130 |
131 |
132 | page
133 |
134 | Page qu’on veut retourner (1 par défaut)
135 | Non
136 | int
137 |
138 |
139 |
140 | results_per_page
141 |
142 | Nombre de résultats par page (20 par défaut)
143 | Non
144 | int
145 |
146 |
147 |
148 |
149 | Réponse : Une collection des campagnes basiques .
150 |
151 |
152 | {
153 | "name": "string",
154 | "slug": "string",
155 | "type": "string",
156 | "url": "string",
157 | "url_widget": "string",
158 | "url_bouton": "string",
159 | "name_organism": "string",
160 | "slug_organism": "string"
161 | }
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 | Notifications
171 |
172 |
173 | Introduction
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 | Retour
182 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Views/V3/Shared/_Header.cshtml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Views/V3/Shared/_Layout.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | API HelloAsso - Documentation
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
36 | @Html.Partial("Shared/_Sidebar")
37 |
38 |
39 |
40 | @RenderBody()
41 |
42 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Views/V3/Shared/_Sidebar.cshtml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using HelloAsso.Api.Doc
2 | @using HelloAsso.Api.Doc.Models
3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
4 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "IncludeScopes": false,
4 | "LogLevel": {
5 | "Default": "Debug",
6 | "System": "Information",
7 | "Microsoft": "Information"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "IncludeScopes": false,
4 | "LogLevel": {
5 | "Default": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/BingSiteAuth.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | F70B4895D941149AD63F005E3DB3CD1D
4 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_75_dadada_1x400.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_2e83ff_256x240.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_454545_256x240.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_888888_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_888888_256x240.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v1/smoothness/images/ui-icons_cd0a0a_256x240.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v2/api-doc.min.css:
--------------------------------------------------------------------------------
1 | .menu{width:20%;margin:3rem 0;}.menu a{display:block;}.doc{margin-bottom:3rem;}.url{border:solid 2px #7cb342;padding:20px;margin-bottom:20px;}table{margin:20px 0;}table th{color:#7cb342;font-weight:bold;text-align:center;padding:10px;border:solid 1px #b0bec5;}table td{border:solid 1px #b0bec5;padding:10px;}.result{display:none;}
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v2/vendors/bootstrap.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.3.5 (http://getbootstrap.com)
3 | * Copyright 2011-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 | /*!
7 | * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=e5bc1febf22c3605d0a1)
8 | * Config saved to config.json and https://gist.github.com/e5bc1febf22c3605d0a1
9 | */
10 | /*!
11 | * Bootstrap v3.3.5 (http://getbootstrap.com)
12 | * Copyright 2011-2015 Twitter, Inc.
13 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
14 | */
15 | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
16 | html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media(min-width:768px){.container{width:750px}}@media(min-width:992px){.container{width:970px}}@media(min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media(min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media(min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media(min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}@media(max-width:575px){.col{width:100%}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/base/_base.scss:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 |
3 | *,
4 | *::before,
5 | *::after {
6 | box-sizing: inherit;
7 | }
8 |
9 | html {
10 | height: 100%;
11 | font-family: $font-family;
12 | font-size: 62.5%;
13 | color: $color-text;
14 | line-height: $line-height-base;
15 | box-sizing: border-box;
16 | }
17 |
18 | body {
19 | margin: 0;
20 | font-size: 1.4rem;
21 | background-color: $background-color-body;
22 |
23 | @media (min-width: $tablet) {
24 | font-size: 1.6rem;
25 | }
26 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/base/_color.scss:
--------------------------------------------------------------------------------
1 | // Base
2 |
3 | $mint: #49D38A;
4 | $dream: #9EBCF9;
5 |
6 | // Others (Texts, backgrounds, borders...)
7 |
8 | $air: #F4F6FA;
9 | $pearl: #E9E9F0;
10 | $silver: #D1D6DE;
11 | $flint: #BEBED7;
12 | $storm: #777D9C;
13 | $midnight: #2E2F5E;
14 |
15 | $dust: #9A9DA8;
16 |
17 | // States
18 |
19 | $emerald: #51BD7C;
20 | $sapphire: #54C0FC;
21 | $gold: #FF9D66;
22 | $ruby: #F45554;
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/base/_config.scss:
--------------------------------------------------------------------------------
1 | // Media Queries
2 | $largedesktop: 1200px !default;
3 | $smalldesktop: 992px !default;
4 | $tablet: 768px !default;
5 | $largephone: 480px !default;
6 | $smallphone: 320px !default;
7 |
8 | // Typography
9 | $font-family: "Open Sans", "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif !default;
10 |
11 | // Line height
12 | $line-height-base: 1.5 !default;
13 | $line-height-heading: 1.2 !default;
14 |
15 | // Base color
16 | $color-primary: $mint !default;
17 |
18 | // Font Colors
19 | $color-text: $midnight !default;
20 | $color-text-light: $storm !default;
21 |
22 | // Background Colors
23 | $background-color-body: $air !default;
24 |
25 | // Borders
26 | $border-color: $silver !default;
27 | $border-base: 1px solid $border-color !default;
28 |
29 | // States
30 | $color-success: $emerald;
31 | $color-info: $sapphire;
32 | $color-warning: $gold;
33 | $color-danger: $ruby;
34 |
35 | // States (disabled)
36 | $disabled-color-text: $storm !default;
37 | $disabled-color-background: $silver !default;
38 |
39 | // Focus
40 | $focus-outline-color: transparentize($color-primary, .25) !default;
41 | $focus-outline-width: 1px !default;
42 | $focus-outline: $focus-outline-width solid $focus-outline-color !default;
43 | $focus-outline-offset: 1px !default;
44 |
45 | // Other Sizes
46 | $border-radius-base: 5px !default;
47 |
48 | $spacing-base: 2em !default;
49 | $spacing-small: $spacing-base / 2 !default;
50 | $spacing-large: $spacing-base * 2 !default;
51 |
52 | // Animations
53 | $animation-duration: 250ms !default;
54 | $animation-timing: cubic-bezier(.65, 0, .45, 1) !default;
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/base/_normalize.scss:
--------------------------------------------------------------------------------
1 | // =============================================================================
2 | // Normalize.scss based on Nicolas Gallagher and Jonathan Neal's
3 | // normalize.css v2.1.3 | MIT License | git.io/normalize
4 | // =============================================================================
5 |
6 | // =============================================================================
7 | // Normalize.scss settings
8 | // =============================================================================
9 |
10 |
11 | // Set to true if you want to add support for IE6 and IE7
12 | // Notice: setting to true might render some elements
13 | // slightly differently than when set to false
14 | $legacy_support_for_ie: false !default; // Used also in Compass
15 |
16 |
17 | // Set the default font family here so you don't have to override it later
18 | $normalized_font_family: sans-serif !default;
19 |
20 | $normalize_headings: true !default;
21 |
22 | $h1_font_size: 2em !default;
23 | $h2_font_size: 1.5em !default;
24 | $h3_font_size: 1.17em !default;
25 | $h4_font_size: 1em !default;
26 | $h5_font_size: 0.83em !default;
27 | $h6_font_size: 0.75em !default;
28 |
29 | $h1_margin: 0.67em 0 !default;
30 | $h2_margin: 0.83em 0 !default;
31 | $h3_margin: 1em 0 !default;
32 | $h4_margin: 1.33em 0 !default;
33 | $h5_margin: 1.67em 0 !default;
34 | $h6_margin: 2.33em 0 !default;
35 |
36 | $background: #fff !default;
37 | $color: #000 !default;
38 |
39 | // =============================================================================
40 | // HTML5 display definitions
41 | // =============================================================================
42 |
43 | // Corrects block display not defined in IE6/7/8/9 & FF3
44 |
45 | article,
46 | aside,
47 | details,
48 | figcaption,
49 | figure,
50 | footer,
51 | header,
52 | hgroup,
53 | nav,
54 | section,
55 | summary {
56 | display: block;
57 | }
58 |
59 | // Corrects inline-block display not defined in IE6/7/8/9 & FF3
60 |
61 | audio,
62 | canvas,
63 | video {
64 | display: inline-block;
65 | @if $legacy_support_for_ie {
66 | *display: inline;
67 | *zoom: 1;
68 | }
69 | }
70 |
71 | // 1. Prevents modern browsers from displaying 'audio' without controls
72 | // 2. Remove excess height in iOS5 devices
73 |
74 | audio:not([controls]) {
75 | display: none; // 1
76 | height: 0; // 2
77 | }
78 |
79 | //
80 | // Address `[hidden]` styling not present in IE 8/9.
81 | // Hide the `template` element in IE, Safari, and Firefox < 22.
82 | //
83 |
84 | [hidden], template {
85 | display: none;
86 | }
87 |
88 | // =============================================================================
89 | // Base
90 | // =============================================================================
91 |
92 | // 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units
93 | // http://clagnut.com/blog/348/#c790
94 | // 2. Prevents iOS text size adjust after orientation change, without disabling user zoom
95 | // www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/
96 |
97 | html {
98 | @if $legacy_support_for_ie {
99 | font-size: 100%; // 1
100 | }
101 | background: $background;
102 | color: $color;
103 | -webkit-text-size-adjust: 100%; // 2
104 | -ms-text-size-adjust: 100%; // 2
105 | }
106 |
107 | // Addresses font-family inconsistency between 'textarea' and other form elements.
108 |
109 | html,
110 | button,
111 | input,
112 | select,
113 | textarea {
114 | font-family: $normalized_font_family;
115 | }
116 |
117 | // Addresses margins handled incorrectly in IE6/7
118 |
119 | body {
120 | margin: 0;
121 | }
122 |
123 | // =============================================================================
124 | // Links
125 | // =============================================================================
126 |
127 | // 1. Remove the gray background color from active links in IE 10.
128 | // 2. Addresses outline displayed oddly in Chrome
129 | // 3. Improves readability when focused and also mouse hovered in all browsers
130 | // people.opera.com/patrickl/experiments/keyboard/test
131 |
132 | a {
133 | // 1
134 |
135 | background: transparent;
136 |
137 | // 2
138 |
139 | &:focus {
140 | outline: thin dotted;
141 | }
142 |
143 | // 3
144 |
145 | &:hover,
146 | &:active {
147 | outline: 0;
148 | }
149 | }
150 |
151 | // =============================================================================
152 | // Typography
153 | // =============================================================================
154 |
155 | // Addresses font sizes and margins set differently in IE6/7
156 | // Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5
157 |
158 | @if $normalize_headings == true {
159 | h1 {
160 | font-size: $h1_font_size;
161 | margin: $h1_margin;
162 | }
163 |
164 | h2 {
165 | font-size: $h2_font_size;
166 | margin: $h2_margin;
167 | }
168 |
169 | h3 {
170 | font-size: $h3_font_size;
171 | margin: $h3_margin;
172 | }
173 |
174 | h4 {
175 | font-size: $h4_font_size;
176 | margin: $h4_margin;
177 | }
178 |
179 | h5 {
180 | font-size: $h5_font_size;
181 | margin: $h5_margin;
182 | }
183 |
184 | h6 {
185 | font-size: $h6_font_size;
186 | margin: $h6_margin;
187 | }
188 | }
189 |
190 | // Addresses styling not present in IE 8/9, S5, Chrome
191 |
192 | abbr[title] {
193 | border-bottom: 1px dotted;
194 | }
195 |
196 | // Addresses style set to 'bolder' in FF3+, S4/5, Chrome
197 |
198 | b,
199 | strong {
200 | font-weight: bold;
201 | }
202 |
203 | @if $legacy_support_for_ie {
204 | blockquote {
205 | margin: 1em 40px;
206 | }
207 | }
208 |
209 | // Addresses styling not present in S5, Chrome
210 |
211 | dfn {
212 | font-style: italic;
213 | }
214 |
215 | // Addresses styling not present in IE6/7/8/9
216 |
217 | mark {
218 | background: #ff0;
219 | color: #000;
220 | }
221 |
222 | // Addresses margins set differently in IE6/7
223 | @if $legacy_support_for_ie {
224 | p,
225 | pre {
226 | margin: 1em 0;
227 | }
228 | }
229 |
230 | // Corrects font family set oddly in IE6, S4/5, Chrome
231 | // en.wikipedia.org/wiki/User:Davidgothberg/Test59
232 |
233 | code,
234 | kbd,
235 | pre,
236 | samp {
237 | font-family: monospace, serif;
238 | @if $legacy_support_for_ie {
239 | _font-family: 'courier new', monospace;
240 | }
241 | font-size: 1em;
242 | }
243 |
244 | // Improves readability of pre-formatted text in all browsers
245 |
246 | pre {
247 | white-space: pre;
248 | white-space: pre-wrap;
249 | word-wrap: break-word;
250 | }
251 |
252 | // Set consistent quote types.
253 |
254 | q {
255 | quotes: "\201C" "\201D" "\2018" "\2019";
256 | }
257 |
258 | // 1. Addresses CSS quotes not supported in IE6/7
259 | // 2. Addresses quote property not supported in S4
260 |
261 | // 1
262 | @if $legacy_support_for_ie {
263 | q {
264 | quotes: none;
265 | }
266 | }
267 |
268 | // 2
269 | q {
270 | &:before,
271 | &:after {
272 | content: '';
273 | content: none;
274 | }
275 | }
276 |
277 | // Address inconsistent and variable font size in all browsers.
278 |
279 | small {
280 | font-size: 80%;
281 | }
282 |
283 | // Prevents sub and sup affecting line-height in all browsers
284 | // gist.github.com/413930
285 |
286 | sub,
287 | sup {
288 | font-size: 75%;
289 | line-height: 0;
290 | position: relative;
291 | vertical-align: baseline;
292 | }
293 |
294 | sup {
295 | top: -0.5em;
296 | }
297 |
298 | sub {
299 | bottom: -0.25em;
300 | }
301 |
302 | // =============================================================================
303 | // Lists
304 | // =============================================================================
305 |
306 | // Addresses margins set differently in IE6/7
307 | @if $legacy_support_for_ie {
308 | dl,
309 | menu,
310 | ol,
311 | ul {
312 | margin: 1em 0;
313 | }
314 | }
315 |
316 | @if $legacy_support_for_ie {
317 | dd {
318 | margin: 0 0 0 40px;
319 | }
320 | }
321 |
322 | // Addresses paddings set differently in IE6/7
323 | @if $legacy_support_for_ie {
324 | menu,
325 | ol,
326 | ul {
327 | padding: 0 0 0 40px;
328 | }
329 | }
330 |
331 | // Corrects list images handled incorrectly in IE7
332 |
333 | nav {
334 | ul,
335 | ol {
336 | @if $legacy_support_for_ie {
337 | list-style-image: none;
338 | }
339 | }
340 | }
341 |
342 | // =============================================================================
343 | // Embedded content
344 | // =============================================================================
345 |
346 | // 1. Removes border when inside 'a' element in IE6/7/8/9, FF3
347 | // 2. Improves image quality when scaled in IE7
348 | // code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/
349 |
350 | img {
351 | border: 0; // 1
352 | @if $legacy_support_for_ie {
353 | -ms-interpolation-mode: bicubic; // 2
354 | }
355 | }
356 |
357 | // Corrects overflow displayed oddly in IE9
358 |
359 | svg:not(:root) {
360 | overflow: hidden;
361 | }
362 |
363 | // =============================================================================
364 | // Figures
365 | // =============================================================================
366 |
367 | // Addresses margin not present in IE6/7/8/9, S5, O11
368 |
369 | figure {
370 | margin: 0;
371 | }
372 |
373 | // =============================================================================
374 | // Forms
375 | // =============================================================================
376 |
377 | // Corrects margin displayed oddly in IE6/7
378 | @if $legacy_support_for_ie {
379 | form {
380 | margin: 0;
381 | }
382 | }
383 |
384 | // Define consistent border, margin, and padding
385 |
386 | fieldset {
387 | border: 1px solid #c0c0c0;
388 | margin: 0 2px;
389 | padding: 0.35em 0.625em 0.75em;
390 | }
391 |
392 | // 1. Corrects color not being inherited in IE6/7/8/9
393 | // 2. Remove padding so people aren't caught out if they zero out fieldsets.
394 | // 3. Corrects text not wrapping in FF3
395 | // 4. Corrects alignment displayed oddly in IE6/7
396 |
397 | legend {
398 | border: 0; // 1
399 | padding: 0; // 2
400 | white-space: normal; // 3
401 | @if $legacy_support_for_ie {
402 | *margin-left: -7px; // 4
403 | }
404 | }
405 |
406 | // 1. Correct font family not being inherited in all browsers.
407 | // 2. Corrects font size not being inherited in all browsers
408 | // 3. Addresses margins set differently in IE6/7, FF3+, S5, Chrome
409 | // 4. Improves appearance and consistency in all browsers
410 |
411 | button,
412 | input,
413 | select,
414 | textarea {
415 | font-family: inherit; // 1
416 | font-size: 100%; // 2
417 | margin: 0; // 3
418 | vertical-align: baseline; // 4
419 | @if $legacy_support_for_ie {
420 | *vertical-align: middle; // 4
421 | }
422 | }
423 |
424 | // Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet
425 |
426 | button, input {
427 | line-height: normal;
428 | }
429 |
430 | // Address inconsistent `text-transform` inheritance for `button` and `select`.
431 | // All other form control elements do not inherit `text-transform` values.
432 | // Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
433 | // Correct `select` style inheritance in Firefox 4+ and Opera.
434 |
435 | button,
436 | select {
437 | text-transform: none;
438 | }
439 |
440 | // 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
441 | // and `video` controls
442 | // 2. Corrects inability to style clickable 'input' types in iOS
443 | // 3. Improves usability and consistency of cursor style between image-type
444 | // 'input' and others
445 | // 4. Removes inner spacing in IE7 without affecting normal text inputs
446 | // Known issue: inner spacing remains in IE6
447 |
448 | button,
449 | html input[type="button"], // 1
450 | input[type="reset"],
451 | input[type="submit"] {
452 | -webkit-appearance: button; // 2
453 | cursor: pointer; // 3
454 | @if $legacy_support_for_ie {
455 | *overflow: visible; // 4
456 | }
457 | }
458 |
459 | // Re-set default cursor for disabled elements
460 |
461 | button[disabled],
462 | input[disabled] {
463 | cursor: default;
464 | }
465 |
466 | // Removes inner padding and border in FF3+
467 | // www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/
468 |
469 | button, input {
470 | &::-moz-focus-inner {
471 | border: 0;
472 | padding: 0;
473 | }
474 | }
475 |
476 | // 1. Removes default vertical scrollbar in IE6/7/8/9
477 | // 2. Improves readability and alignment in all browsers
478 |
479 | textarea {
480 | overflow: auto; // 1
481 | vertical-align: top; // 2
482 | }
483 |
484 | // =============================================================================
485 | // Tables
486 | // =============================================================================
487 |
488 | // Remove most spacing between table cells
489 |
490 | table {
491 | border-collapse: collapse;
492 | border-spacing: 0;
493 | }
494 |
495 | input {
496 | // 1. Addresses appearance set to searchfield in S5, Chrome
497 | // 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof)
498 | &[type="search"] {
499 | -webkit-appearance: textfield; // 1
500 | -moz-box-sizing: content-box;
501 | -webkit-box-sizing: content-box; // 2
502 | box-sizing: content-box;
503 |
504 | // Remove inner padding and search cancel button in Safari 5 and Chrome
505 | // on OS X.
506 | &::-webkit-search-cancel-button,
507 | &::-webkit-search-decoration {
508 | -webkit-appearance: none;
509 | }
510 | }
511 |
512 | // 1. Address box sizing set to `content-box` in IE 8/9/10.
513 | // 2. Remove excess padding in IE 8/9/10.
514 | // 3. Removes excess padding in IE7
515 | // Known issue: excess padding remains in IE6
516 | &[type="checkbox"],
517 | &[type="radio"] {
518 | box-sizing: border-box; // 1
519 | padding: 0; // 2
520 | @if $legacy_support_for_ie {
521 | *height: 13px; // 3
522 | *width: 13px; // 3
523 | }
524 | }
525 | }
526 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/base/_typography.scss:
--------------------------------------------------------------------------------
1 | h1,
2 | h2,
3 | h3,
4 | h4,
5 | h5,
6 | h6 {
7 | font-family: $font-family;
8 | line-height: $line-height-heading;
9 | margin: 0 0 $spacing-small;
10 | }
11 |
12 | h1 {
13 | font-size: 3rem;
14 |
15 | @media (min-width: $largephone) {
16 | font-size: 3.6rem;
17 | }
18 |
19 | @media (min-width: $tablet) {
20 | font-size: 4.2rem;
21 | }
22 | }
23 |
24 | h2 {
25 | font-size: 2.4rem;
26 | font-weight: 600;
27 |
28 | @media (min-width: $tablet) {
29 | font-size: 3.4rem;
30 | }
31 | }
32 |
33 | h3 {
34 | font-size: 2rem;
35 | font-weight: 400;
36 |
37 | @media (min-width: $tablet) {
38 | font-size: 2.4rem;
39 | }
40 | }
41 |
42 | h4 {
43 | font-size: 1.8rem;
44 |
45 | @media (min-width: $tablet) {
46 | font-size: 2rem;
47 | }
48 | }
49 |
50 | h5 {
51 | font-size: 1.6rem;
52 |
53 | @media (min-width: $tablet) {
54 | font-size: 1.8rem;
55 | }
56 | }
57 |
58 | p {
59 | margin: 0 0 $spacing-small;
60 | }
61 |
62 | a {
63 | color: $color-primary;
64 | text-decoration: none;
65 | transition: color $animation-duration $animation-timing;
66 |
67 | &:hover {
68 | text-decoration: underline;
69 | }
70 |
71 | &:focus {
72 | outline: none;
73 | text-decoration: none;
74 | }
75 |
76 | &.link-block {
77 | display: block;
78 | white-space: nowrap;
79 | text-overflow: ellipsis;
80 | overflow: hidden;
81 | }
82 | }
83 |
84 | hr {
85 | border-top: 0;
86 | border-right: 0;
87 | border-bottom: $border-base;
88 | border-left: 0;
89 | margin: $spacing-base 0;
90 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/components/_alert.scss:
--------------------------------------------------------------------------------
1 | // Alerts - defaults
2 |
3 | .alert {
4 | display: flex;
5 | align-items: center;
6 | margin-bottom: 1em;
7 | padding: .75em 1em;
8 | color: #fff;
9 | font-size: 1.3rem;
10 | font-weight: 600;
11 | border-radius: $border-radius-base;
12 |
13 | @media (min-width: $largephone) {
14 | font-size: 1.4rem;
15 | }
16 |
17 | > * {
18 | flex: 0 0 auto;
19 | }
20 |
21 | svg {
22 | margin: 0 1.25em 0 .25em;
23 | font-size: 1.4rem;
24 |
25 | @media (min-width: $largephone) {
26 | font-size: 1.6rem;
27 | }
28 | }
29 |
30 | h1, .h1, h2, .h2, h3, .h3 {
31 | margin-bottom: .5em;
32 | }
33 |
34 | a {
35 | font-weight: 700;
36 |
37 | &:hover,
38 | &:focus,
39 | &:active {
40 | text-decoration: underline;
41 | }
42 | }
43 | }
44 |
45 | .alert-success {
46 | background-color: $color-success;
47 | }
48 |
49 | .alert-info {
50 | background-color: $color-info;
51 | }
52 |
53 | .alert-warning {
54 | background-color: $color-warning;
55 | }
56 |
57 | .alert-danger {
58 | background-color: $color-danger;
59 | }
60 |
61 | // Alerts - Text
62 |
63 | .message {
64 | display: block;
65 | font-weight: 600;
66 | text-decoration: none;
67 | }
68 |
69 | .message-success,
70 | .success {
71 | color: $color-success;
72 | }
73 |
74 | .message-info,
75 | .info {
76 | color: $color-info;
77 | }
78 |
79 | .message-warning,
80 | .success {
81 | color: $color-warning;
82 | }
83 |
84 | .message-danger,
85 | .danger {
86 | color: $color-danger;
87 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/components/_animation.scss:
--------------------------------------------------------------------------------
1 | %fill {
2 | position: relative;
3 | overflow: hidden;
4 |
5 | &:hover {
6 | &:before {
7 | transform: translate3d(0, 0, 0);
8 | }
9 | }
10 |
11 | &:before {
12 | position: absolute;
13 | z-index: 0;
14 | content: '';
15 | top: 0;
16 | width: 100%;
17 | height: 100%;
18 | background-color: $color-primary;
19 | transition: all $animation-duration $animation-timing;
20 | }
21 | }
22 |
23 | .fill-to-left {
24 | @extend %fill;
25 |
26 | &:before {
27 | right: 0;
28 | transform: translate3d(100%, 0, 0);
29 | }
30 | }
31 |
32 | .fill-to-right {
33 | @extend %fill;
34 |
35 | &:before {
36 | left: 0;
37 | transform: translate3d(-100%, 0, 0);
38 | }
39 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/components/_button.scss:
--------------------------------------------------------------------------------
1 | .btn {
2 | cursor: pointer;
3 | appearance: none;
4 | display: inline-block;
5 | margin: .6rem 0;
6 | padding: .6rem 1.2rem;
7 | font-size: 1.3rem;
8 | font-weight: 600;
9 | line-height: 1;
10 | text-align: center;
11 | text-decoration: none;
12 | -webkit-font-smoothing: antialiased;
13 | border: none;
14 | border-radius: $border-radius-base;
15 | user-select: none;
16 | vertical-align: middle;
17 | white-space: nowrap;
18 | transition: all $animation-duration $animation-timing;
19 |
20 | @media (min-width: $largephone) {
21 | padding: 1rem 2rem;
22 | font-size: 1.5rem;
23 | }
24 |
25 | &:hover,
26 | &:focus,
27 | &:active {
28 | color: #fff;
29 | outline: none;
30 | text-decoration: none;
31 | }
32 |
33 | &.disabled,
34 | &:disabled {
35 | pointer-events: none;
36 | cursor: default;
37 | color: $disabled-color-text;
38 | background-color: $disabled-color-background;
39 | }
40 |
41 | i {
42 | transition: none;
43 | }
44 | }
45 |
46 | // Gros boutons
47 |
48 | .btn-lg {
49 | padding: 1.5rem 2rem;
50 | font-size: 1.5rem;
51 |
52 | @media (min-width: $largephone) {
53 | padding: 2rem 4rem;
54 | font-size: 2rem;
55 | }
56 | }
57 |
58 | // Defaults
59 |
60 | .btn-primary {
61 | color: #fff;
62 | background-color: $color-primary;
63 |
64 | &:hover {
65 | background-color: darken($color-primary, 5%);
66 | }
67 | }
68 |
69 | .btn-secondary {
70 | color: $color-primary;
71 | box-shadow: inset 0 0 0 .2rem $color-primary;
72 |
73 | &:hover {
74 | color: #fff;
75 | background-color: darken($color-primary, 5%);
76 | box-shadow: inset 0 0 0 .2rem darken($color-primary, 5%);
77 | }
78 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/components/_icon.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/css/v3/components/_icon.scss
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/components/_list.scss:
--------------------------------------------------------------------------------
1 | ul,
2 | ol {
3 | list-style-type: none;
4 | margin: 0;
5 | padding: 0;
6 |
7 | &.list-styled {
8 | margin: 0 0 1em;
9 |
10 | li {
11 | position: relative;
12 | padding-left: 2rem;
13 |
14 | &:before {
15 | position: absolute;
16 | content: '-';
17 | left: 0;
18 | }
19 | }
20 | }
21 | }
22 |
23 | dl {
24 | margin: 0;
25 | }
26 |
27 | dt {
28 | font-weight: 600;
29 | margin: 0;
30 | }
31 |
32 | dd {
33 | margin: 0;
34 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/components/_media.scss:
--------------------------------------------------------------------------------
1 | figure {
2 | margin: 0;
3 | }
4 |
5 | img,
6 | picture {
7 | margin: 0;
8 | max-width: 100%;
9 | }
10 |
11 | .logo-wrapper {
12 | a {
13 | color: $color-text;
14 | text-decoration: none;
15 |
16 | &:before {
17 | display: none;
18 | }
19 | }
20 | }
21 |
22 | .logo {
23 | max-width: 18rem;
24 |
25 | @media (min-width: $largephone) {
26 | max-width: 20rem;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/components/_table.scss:
--------------------------------------------------------------------------------
1 | .table-wrapper {
2 | position: relative;
3 | width: 100%;
4 | max-width: 100%;
5 | margin: $spacing-base 0;
6 | overflow-x: auto;
7 | }
8 |
9 | table {
10 | width: 100%;
11 | text-align: left;
12 | border-collapse: collapse;
13 | }
14 |
15 | thead {
16 | line-height: $line-height-heading;
17 | vertical-align: bottom;
18 |
19 | th,
20 | td {
21 | font-weight: 600;
22 | color: #fff;
23 | background-color: $color-primary;
24 | }
25 |
26 | th {
27 | &:first-of-type {
28 | border-radius: $border-radius-base 0 0 $border-radius-base;
29 | }
30 | &:last-of-type {
31 | border-radius: 0 $border-radius-base $border-radius-base 0;
32 | }
33 | }
34 | }
35 |
36 | tbody {
37 | vertical-align: top;
38 |
39 | tr:nth-of-type(even) {
40 | background-color: #fff;
41 | }
42 | }
43 |
44 | th,
45 | td {
46 | padding: $spacing-small;
47 | white-space: nowrap;
48 | text-overflow: ellipsis;
49 | overflow: hidden;
50 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/layout/_article.scss:
--------------------------------------------------------------------------------
1 | article {
2 | + article {
3 | margin-top: 2.5rem;
4 |
5 | @media (min-width: $tablet) {
6 | margin-top: 5rem;
7 | }
8 |
9 | h2 {
10 | border-top: .2rem solid $border-color;
11 | }
12 | }
13 |
14 | section {
15 | + section {
16 | margin-top: 2em;
17 | }
18 | }
19 |
20 | h2 {
21 | padding-top: 2rem;
22 |
23 | @media (min-width: $tablet) {
24 | padding-top: 4rem;
25 | }
26 | }
27 |
28 | h3,
29 | h4 {
30 | white-space: nowrap;
31 | text-overflow: ellipsis;
32 | overflow: hidden;
33 | }
34 |
35 | h4 {
36 | margin: 0 0 .75em;
37 | }
38 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/layout/_footer.scss:
--------------------------------------------------------------------------------
1 | footer {
2 | padding: 1em 0;
3 |
4 | @media (min-width: $tablet) {
5 | padding: 2.5rem 0;
6 | }
7 |
8 | p {
9 | margin: 0;
10 | color: $color-text-light;
11 | font-size: 1.2rem;
12 |
13 | @media (min-width: $tablet) {
14 | font-size: 1.4rem;
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/layout/_grid.scss:
--------------------------------------------------------------------------------
1 | // Conteneurs
2 |
3 | .wrapper {
4 | min-height: 100vh;
5 |
6 | @media (min-width: $smalldesktop) {
7 | padding-left: 30rem;
8 | }
9 | }
10 |
11 | .main {
12 | margin-top: 2.5rem;
13 |
14 | @media (min-width: $tablet) {
15 | margin-top: 5rem;
16 | }
17 | }
18 |
19 | .container {
20 | margin: 0 auto;
21 | padding: 0 1.5rem;
22 |
23 | @media (min-width: $tablet) {
24 | width: 85%;
25 | padding: 0;
26 | }
27 |
28 | @media (min-width: $smalldesktop) {
29 | width: 75%;
30 | }
31 | }
32 |
33 | // Alignement
34 |
35 | .center {
36 | margin: 0 auto;
37 | text-align: center;
38 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/layout/_header.scss:
--------------------------------------------------------------------------------
1 | header {
2 | padding: 6.5rem 0 1rem;
3 | color: #fff;
4 | background-color: $color-primary;
5 |
6 | @media (min-width: $smalldesktop) {
7 | padding: 5rem 0;
8 | }
9 |
10 | h1 {
11 | margin: 0;
12 | }
13 |
14 | h2 {
15 | font-weight: 300;
16 | color: rgba(255, 255, 255, .5);
17 | }
18 |
19 | .version-number {
20 | margin: 0;
21 | padding-top: 1rem;
22 | color: #fff;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/layout/_navigation.scss:
--------------------------------------------------------------------------------
1 | .github-corner {
2 | &:hover {
3 | .octo-arm {
4 | animation: none;
5 |
6 | @media (min-width: $largephone) {
7 | animation: octocat-wave 560ms ease-in-out;
8 | }
9 | }
10 | }
11 |
12 | i {
13 | color: $color-primary;
14 | fill: #fff;
15 |
16 | @media (min-width: $largephone) {
17 | width: 6.4rem;
18 | height: 6.4rem;
19 | }
20 |
21 | @media (min-width: $largedesktop) {
22 | width: 8rem;
23 | height: 8rem;
24 | }
25 | }
26 | }
27 |
28 | @keyframes octocat-wave {
29 | 0%, 100% {
30 | transform: rotate(0);
31 | }
32 |
33 | 20%, 60% {
34 | transform: rotate(-25deg);
35 | }
36 |
37 | 40%, 80% {
38 | transform: rotate(10deg);
39 | }
40 | }
41 |
42 | .open-menu {
43 | position: fixed;
44 | top: 1.5rem;
45 | left: 1.5rem;
46 | min-width: 4rem;
47 | min-height: 4rem;
48 | padding: .5rem 1rem;
49 | color: $color-primary;
50 | font-size: 2rem;
51 | text-align: center;
52 | background-color: rgba(255, 255, 255, .75);
53 | border-radius: $border-radius-base;
54 |
55 | @media (min-width: $smalldesktop) {
56 | display: none;
57 | }
58 |
59 | &:hover {
60 | cursor: pointer;
61 | }
62 | }
63 |
64 | .summary {
65 | position: relative;
66 | padding: 0 0 2.5rem;
67 |
68 | @media (min-width: $tablet) {
69 | padding: 0 0 5rem;
70 | }
71 |
72 | h4 {
73 | position: relative;
74 | padding: 0 0 1rem;
75 | color: $color-text-light;
76 | font-weight: 400;
77 |
78 | @media (min-width: $tablet) {
79 | padding: .5em 0 1rem;
80 | }
81 |
82 | &:after {
83 | position: absolute;
84 | content: '';
85 | bottom: 0;
86 | left: 0;
87 | width: 33.33%;
88 | height: .2rem;
89 | background-color: $color-primary;
90 |
91 | @media (min-width: $tablet) {
92 | width: 25%;
93 | }
94 | }
95 | }
96 |
97 | li {
98 | position: relative;
99 | padding-left: 2rem;
100 | line-height: 2em;
101 |
102 | &:hover {
103 | &:before {
104 | opacity: 1;
105 | }
106 | }
107 |
108 | &:before {
109 | position: absolute;
110 | content: '';
111 | top: 50%;
112 | left: 0;
113 | width: .5rem;
114 | height: .5rem;
115 | background-color: $color-primary;
116 | border-radius: 5px;
117 | opacity: 0;
118 | transform: translateY(-50%);
119 | }
120 | }
121 |
122 | a {
123 | color: $color-text;
124 | font-size: 2rem;
125 | font-weight: 600;
126 |
127 | &:hover {
128 | text-decoration: none;
129 | }
130 | }
131 | }
132 |
133 | .back-to-top {
134 | position: fixed;
135 | top: 50%;
136 | display: none;
137 | border-radius: $border-radius-base;
138 | color: $color-text-light;
139 | background-color: transparent;
140 | transition: all $animation-duration $animation-timing;
141 | transform: translateY(-50%);
142 |
143 | @media (min-width: $tablet) {
144 | right: .5rem;
145 | width: 5rem;
146 | height: 5rem;
147 | display: block;
148 | padding: .5rem;
149 | font-size: 1.1rem;
150 | }
151 |
152 | @media (min-width: $smalldesktop) {
153 | right: 1rem;
154 | width: 7rem;
155 | height: 7rem;
156 | padding: 1rem;
157 | font-size: 1.3rem;
158 | }
159 |
160 | &:hover {
161 | color: #fff;
162 | background-color: darken($color-primary, 5%);
163 | text-decoration: none;
164 | }
165 |
166 | i {
167 | font-size: 2rem;
168 |
169 | @media (min-width: $smalldesktop) {
170 | font-size: 2.6rem;
171 | }
172 | }
173 | }
174 |
175 | .page-switch {
176 | display: flex;
177 | justify-content: center;
178 | padding-top: 4rem;
179 |
180 | @media (min-width: $tablet) {
181 | padding-top: 8rem;
182 | }
183 |
184 | a {
185 | flex: 1 1 auto;
186 | display: flex;
187 | justify-content: center;
188 | flex-direction: row;
189 | align-items: center;
190 | position: relative;
191 | width: 100%;
192 | padding: 1.5rem 0;
193 | font-size: 2.4rem;
194 | font-weight: 600;
195 | color: $color-text;
196 | transition: all $animation-duration $animation-timing;
197 |
198 | @media (min-width: $tablet) {
199 | padding: 2.5rem 0;
200 | font-size: 2rem;
201 | }
202 |
203 | &:hover {
204 | color: #fff;
205 | text-decoration: none;
206 | }
207 |
208 | &:first-of-type {
209 | i {
210 | margin-right: 1em;
211 | }
212 | }
213 |
214 | &:last-of-type {
215 | i {
216 | margin-left: 1em;
217 | }
218 | }
219 |
220 | i,
221 | span {
222 | position: relative;
223 | z-index: 5;
224 | }
225 |
226 | span {
227 | display: none;
228 |
229 | @media (min-width: $tablet) {
230 | display: inline-block;
231 | }
232 | }
233 | }
234 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/layout/_sidebar.scss:
--------------------------------------------------------------------------------
1 | .sidebar {
2 | position: fixed;
3 | z-index: 999;
4 | top: 0;
5 | bottom: 0;
6 | left: 0;
7 | right: 0;
8 | width: 25rem;
9 | background: #fff;
10 | box-shadow: 0 0 2rem 0 rgba(46, 47, 94, .05);
11 | overflow-x: hidden;
12 | overflow-y: auto;
13 | backface-visibility: hidden;
14 | will-change: transform;
15 | transform: translateX(-30rem);
16 | transition: all $animation-duration $animation-timing;
17 |
18 | @media (min-width: $largephone) {
19 | width: 30rem;
20 | }
21 |
22 | @media (min-width: $smalldesktop) {
23 | transform: translateX(0);
24 | }
25 |
26 | &.open {
27 | transform: translateX(0);
28 | box-shadow: 0 2px 3px 0 rgba(46, 47, 94, .25), 0 0 0 9999px rgba(46, 47, 94, .5);
29 | }
30 |
31 | .sidebar-wrapper {
32 | position: absolute;
33 | top: 0;
34 | bottom: 0;
35 | left: 0;
36 | right: 0;
37 | }
38 |
39 | > div {
40 | position: relative;
41 | min-height: 100%;
42 | padding-bottom: 8rem;
43 | box-sizing: border-box;
44 |
45 | @media (min-width: $largephone) {
46 | padding-bottom: 10rem;
47 | }
48 | }
49 |
50 | .logo-wrapper {
51 | padding: 2rem 2rem 0;
52 |
53 | @media (min-width: $largephone) {
54 | padding: 3rem 2rem 1rem;
55 | }
56 | }
57 |
58 | .version-number {
59 | color: $color-text-light;
60 | }
61 |
62 | .sidebar-nav {
63 | padding-bottom: 4rem;
64 |
65 | a {
66 | position: relative;
67 | padding: .8rem 1.5rem;
68 | display: block;
69 | font-size: 1.3rem;
70 | font-weight: 600;
71 | color: $color-text;
72 |
73 | @media (min-width: $largephone) {
74 | padding: 1rem 2rem;
75 | font-size: 1.4rem;
76 | }
77 |
78 | &:hover {
79 | text-decoration: none;
80 |
81 | &:before {
82 | opacity: .1;
83 | }
84 | }
85 |
86 | &.current {
87 | color: $color-primary;
88 | }
89 |
90 | &:before {
91 | position: absolute;
92 | z-index: 0;
93 | content: '';
94 | top: 0;
95 | left: 0;
96 | width: 100%;
97 | height: 100%;
98 | background-color: $color-primary;
99 | opacity: 0;
100 | }
101 | }
102 |
103 | i {
104 | margin-left: .25em;
105 | }
106 | }
107 |
108 | .collapsible {
109 | display: none;
110 |
111 | &.collapsed {
112 | display: block;
113 | }
114 |
115 | a {
116 | padding: .8rem 1.5rem .8rem 3rem;
117 | font-weight: 400;
118 |
119 | @media (min-width: $largephone) {
120 | padding: 1rem 2rem 1rem 4rem;
121 | }
122 | }
123 | }
124 |
125 | .theme-selector {
126 | position: absolute;
127 | bottom: 0;
128 | width: 100%;
129 | padding: 2rem;
130 | color: $color-text-light;
131 | font-size: 1.3rem;
132 |
133 | @media (min-width: $largephone) {
134 | padding: 1.5rem;
135 | font-size: 1.4rem;
136 | }
137 | }
138 |
139 | .themes {
140 | display: flex;
141 | align-items: center;
142 | padding-top: 1rem;
143 | }
144 |
145 | .theme {
146 | position: relative;
147 | flex: 1 1 auto;
148 | width: 2.4rem;
149 | max-width: 2.4rem;
150 | height: 2.4rem;
151 | max-height: 2.4rem;
152 | margin-right: 2em;
153 | border-radius: 50%;
154 | cursor: pointer;
155 |
156 | @media (min-width: $largephone) {
157 | width: 2.8rem;
158 | max-width: 2.8rem;
159 | height: 2.8rem;
160 | max-height: 2.8rem;
161 | }
162 |
163 | &.theme-active,
164 | &:hover {
165 | &:before {
166 | opacity: 1;
167 | }
168 | }
169 |
170 | &.theme-active {
171 | cursor: default;
172 | pointer-events: none;
173 | }
174 |
175 | &:before {
176 | position: absolute;
177 | content: '';
178 | top: 50%;
179 | left: 50%;
180 | width: 3.4rem;
181 | max-width: 3.4rem;
182 | height: 3.4rem;
183 | max-height: 3.4rem;
184 | border: .2rem solid $border-color;
185 | border-radius: 50%;
186 | opacity: 0;
187 | transform: translate3d(-50%, -50%, 0);
188 |
189 | @media (min-width: $largephone) {
190 | width: 4rem;
191 | max-width: 4rem;
192 | height: 4rem;
193 | max-height: 4rem;
194 | }
195 | }
196 | }
197 |
198 | li[class^="theme-"] {
199 | @extend .theme;
200 | }
201 |
202 | .theme-default {
203 | background-color: $mint;
204 |
205 | &.theme-active:before {
206 | border-color: $mint;
207 | }
208 | }
209 |
210 | .theme-blue {
211 | background-color: $dream;
212 |
213 | &.theme-active:before {
214 | border-color: $dream;
215 | }
216 | }
217 |
218 | .theme-night-mode {
219 | background-color: $midnight;
220 |
221 | &.theme-active:before {
222 | border-color: $midnight;
223 | }
224 | }
225 | }
226 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/main.scss:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 |
3 | // Base
4 |
5 | @import "base/normalize";
6 | @import "base/color";
7 | @import "base/config";
8 | @import "base/base";
9 | @import "base/typography";
10 |
11 | // Components
12 | @import "components/alert";
13 | @import "components/animation";
14 | @import "components/button";
15 | @import "components/icon";
16 | @import "components/list";
17 | @import "components/media";
18 | @import "components/table";
19 |
20 | // Layout
21 | @import "layout/grid";
22 | @import "layout/header";
23 | @import "layout/footer";
24 | @import "layout/sidebar";
25 | @import "layout/article";
26 | @import "layout/navigation";
27 |
28 | // Themes
29 | @import "themes/blue";
30 | @import "themes/night-mode";
31 |
32 | // Pages
33 | @import "pages/home";
34 |
35 | // Vendors
36 |
37 | @import "vendors/prism";
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/pages/_home.scss:
--------------------------------------------------------------------------------
1 | .list {
2 | width: 100%;
3 | display: flex;
4 | flex-wrap: wrap;
5 | flex-direction: column;
6 | margin: 1em 0;
7 |
8 | @media (min-width: $largephone) {
9 | flex-direction: row;
10 | margin: 3rem 0;
11 | }
12 |
13 | @media (min-width: $largedesktop) {
14 | margin: 10rem 0;
15 | }
16 |
17 | > .list-item {
18 | width: 100%;
19 | display: flex;
20 |
21 | @media (min-width: $largephone) {
22 | width: 50%;
23 | }
24 |
25 | &:hover {
26 | text-decoration: none;
27 | }
28 |
29 | &:nth-of-type(1) {
30 | order: 2;
31 | padding-bottom: 1em;
32 |
33 | @media (min-width: $largephone) {
34 | order: 1;
35 | padding: 0 1em 0 0;
36 | }
37 |
38 | @media (min-width: $largedesktop) {
39 | padding: 0 1em 0 5rem;
40 | }
41 | }
42 |
43 | &:nth-of-type(2) {
44 | order: 1;
45 | padding-bottom: 1em;
46 |
47 | @media (min-width: $largephone) {
48 | order: 2;
49 | padding: 0 0 0 1em;
50 | }
51 |
52 | @media (min-width: $largedesktop) {
53 | order: 2;
54 | padding: 0 5rem 0 1em;
55 | }
56 | }
57 | }
58 | }
59 |
60 | .list-content {
61 | width: 100%;
62 | display: flex;
63 | flex-direction: column;
64 | justify-content: center;
65 | align-items: center;
66 | padding: 2rem;
67 | color: $color-text;
68 | text-align: center;
69 | background-color: #fff;
70 | border-radius: $border-radius-base;
71 | box-shadow: 0 .5rem 2rem 0 rgba(46, 47, 94, .05);
72 | transition: all $animation-duration $animation-timing;
73 |
74 | @media (min-width: $largephone) {
75 | padding: 3rem;
76 | }
77 |
78 | @media (min-width: $largedesktop) {
79 | padding: 5rem;
80 | flex-direction: column;
81 | }
82 |
83 | &:hover {
84 | box-shadow: 0 .5rem 3rem 0 rgba(46, 47, 94, .15);
85 | transform: translateY(-.3rem);
86 | }
87 |
88 | &.list-content-key {
89 | span {
90 | color: $color-primary;
91 | background-color: transparent;
92 | box-shadow: inset 0 0 0 .2rem $color-primary;
93 | }
94 | }
95 |
96 | span {
97 | min-width: 4.8rem;
98 | width: 4.8rem;
99 | height: 4.8rem;
100 | display: flex;
101 | justify-content: center;
102 | align-items: center;
103 | margin-bottom: 1.5rem;
104 | color: #fff;
105 | font-size: 2rem;
106 | background-color: $color-primary;
107 | border-radius: 100%;
108 | transition: all $animation-duration $animation-timing;
109 |
110 | @media (min-width: $largephone) {
111 | min-width: 5.6rem;
112 | width: 5.6rem;
113 | height: 5.6rem;
114 | margin-bottom: 2rem;
115 | font-size: 2.4rem;
116 | }
117 |
118 | @media (min-width: $largedesktop) {
119 | min-width: 6.4rem;
120 | width: 6.4rem;
121 | height: 6.4rem;
122 | margin-bottom: 3rem;
123 | }
124 | }
125 |
126 | h3 {
127 | margin: 0;
128 | font-weight: 600;
129 |
130 | i {
131 | margin-left: .5em;
132 | }
133 | }
134 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/themes/_blue.scss:
--------------------------------------------------------------------------------
1 | .theme-blue {
2 | p > a,
3 | section li > a,
4 | .btn-secondary,
5 | .github-corner svg,
6 | .menu,
7 | .open-menu,
8 | .sidebar a.current,
9 | .list-content.list-content-key span {
10 | color: $dream;
11 | }
12 |
13 | .btn-secondary:hover {
14 | color: #fff;
15 | }
16 |
17 | header,
18 | .btn-primary,
19 | .fill:before,
20 | .fill-to-left:before,
21 | .fill-to-right:before,
22 | .sidebar-nav a:before,
23 | .summary h4:after,
24 | .summary li:before,
25 | thead td,
26 | thead th,
27 | .list-content span,
28 | .page-switch a:before,
29 | .back-to-top:hover,
30 | .back-to-top:focus,
31 | .back-to-top:active {
32 | background-color: $dream;
33 | }
34 |
35 | .btn-primary:hover,
36 | .btn-secondary:hover {
37 | background-color: darken($dream, 5%);
38 | }
39 |
40 | .btn-secondary,
41 | .list-content.list-content-key span {
42 | box-shadow: inset 0 0 0 .2rem $dream;
43 | }
44 |
45 | .btn-secondary:hover {
46 | box-shadow: inset 0 0 0 .2rem darken($dream, 5%);
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/themes/_night-mode.scss:
--------------------------------------------------------------------------------
1 | .theme-night-mode {
2 | color: #fff;
3 | background-color: $midnight;
4 |
5 | p > a,
6 | section li > a,
7 | .btn-primary:hover,
8 | .btn-primary:focus,
9 | .btn-primary:active,
10 | .btn-secondary,
11 | .btn-secondary:hover,
12 | .btn-secondary:focus,
13 | .btn-secondary:active,
14 | .summary a,
15 | .summary h4,
16 | article h2,
17 | .page-switch a,
18 | .back-to-top,
19 | footer p {
20 | color: #fff;
21 | }
22 |
23 | .github-corner svg,
24 | .menu,
25 | .open-menu,
26 | .sidebar .sidebar-nav a,
27 | .sidebar a.current,
28 | .list-content h3,
29 | .list-content.list-content-key span {
30 | color: $midnight;
31 | }
32 |
33 | header,
34 | .btn-primary:hover,
35 | .btn-primary:focus,
36 | .btn-primary:active,
37 | .btn-secondary:hover,
38 | .btn-secondary:focus,
39 | .btn-secondary:active,
40 | .fill:before,
41 | .fill-to-left:before,
42 | .fill-to-right:before,
43 | .sidebar-nav a:before,
44 | thead td,
45 | thead th,
46 | tbody tr:nth-of-type(even),
47 | .list-content span,
48 | .page-switch a:before,
49 | .back-to-top:hover,
50 | .back-to-top:focus,
51 | .back-to-top:active {
52 | background-color: darken($midnight, 5%);
53 | }
54 |
55 | thead tr {
56 | background-color: darken($midnight, 10%);
57 | }
58 |
59 | .sidebar,
60 | .summary h4:after,
61 | .summary li:before {
62 | background-color: #fff;
63 | }
64 |
65 | .btn-primary {
66 | color: $midnight;
67 | background-color: #fff;
68 | }
69 |
70 | .btn-secondary {
71 | box-shadow: inset 0 0 0 .2rem #fff;
72 | }
73 |
74 | .btn-secondary:hover {
75 | box-shadow: inset 0 0 0 .2rem darken($midnight, 5%);
76 | }
77 |
78 | .list-content.list-content-key span {
79 | box-shadow: inset 0 0 0 .2rem $midnight;
80 | }
81 |
82 | .sidebar .sidebar-nav a.current {
83 | font-weight: 700;
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/css/v3/vendors/_prism.scss:
--------------------------------------------------------------------------------
1 | /* PrismJS 1.13.0
2 | http://prismjs.com/download.html#themes=prism&languages=markup+clike+json */
3 | /**
4 | * prism.js default theme for JavaScript, CSS and HTML
5 | * Based on dabblet (http://dabblet.com)
6 | * @author Lea Verou
7 | */
8 |
9 | code[class*="language-"],
10 | pre[class*="language-"] {
11 | color: $color-text;
12 | text-shadow: 0 1px white;
13 | font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
14 | text-align: left;
15 | white-space: pre;
16 | word-spacing: normal;
17 | word-break: normal;
18 | word-wrap: normal;
19 | line-height: 1.5;
20 | background: none;
21 | border-radius: $border-radius-base;
22 |
23 | -moz-tab-size: 4;
24 | -o-tab-size: 4;
25 | tab-size: 4;
26 |
27 | -webkit-hyphens: none;
28 | -moz-hyphens: none;
29 | -ms-hyphens: none;
30 | hyphens: none;
31 | }
32 |
33 | pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
34 | code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
35 | text-shadow: none;
36 | background: #b3d4fc;
37 | }
38 |
39 | pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
40 | code[class*="language-"]::selection, code[class*="language-"] ::selection {
41 | text-shadow: none;
42 | background: #b3d4fc;
43 | }
44 |
45 | @media print {
46 | code[class*="language-"],
47 | pre[class*="language-"] {
48 | text-shadow: none;
49 | }
50 | }
51 |
52 | /* Code blocks */
53 | pre[class*="language-"] {
54 | padding: 0 1.5em;
55 | margin-bottom: 1em;
56 | overflow: auto;
57 | }
58 |
59 | :not(pre) > code[class*="language-"],
60 | pre[class*="language-"] {
61 | background: #fff;
62 | box-shadow: 0 .5rem 2rem 0 rgba(46, 47, 94, .05);
63 | }
64 |
65 | /* Inline code */
66 | :not(pre) > code[class*="language-"] {
67 | padding: .1em;
68 | border-radius: .3em;
69 | white-space: normal;
70 | }
71 |
72 | .token.comment,
73 | .token.prolog,
74 | .token.doctype,
75 | .token.cdata {
76 | color: slategray;
77 | }
78 |
79 | .token.punctuation {
80 | color: #999;
81 | }
82 |
83 | .namespace {
84 | opacity: .7;
85 | }
86 |
87 | .token.property,
88 | .token.tag,
89 | .token.boolean,
90 | .token.number,
91 | .token.constant,
92 | .token.symbol,
93 | .token.deleted {
94 | color: #905;
95 | }
96 |
97 | .token.selector,
98 | .token.attr-name,
99 | .token.string,
100 | .token.char,
101 | .token.builtin,
102 | .token.inserted {
103 | color: #690;
104 | }
105 |
106 | .token.operator,
107 | .token.entity,
108 | .token.url,
109 | .language-css .token.string,
110 | .style .token.string {
111 | color: #9a6e3a;
112 | background: hsla(0, 0%, 100%, .5);
113 | }
114 |
115 | .token.atrule,
116 | .token.attr-value,
117 | .token.keyword {
118 | color: #07a;
119 | }
120 |
121 | .token.function,
122 | .token.class-name {
123 | color: #DD4A68;
124 | }
125 |
126 | .token.regex,
127 | .token.important,
128 | .token.variable {
129 | color: #e90;
130 | }
131 |
132 | .token.important,
133 | .token.bold {
134 | font-weight: bold;
135 | }
136 | .token.italic {
137 | font-style: italic;
138 | }
139 |
140 | .token.entity {
141 | cursor: help;
142 | }
143 |
144 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/ButterflyEffect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/ButterflyEffect.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/api-gears.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/api-gears.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/api-help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/api-help.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/api-search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/api-search.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/api-secure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/api-secure.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/coeur.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/coeur.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-carenews.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-carenews.jpg
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-humano-games.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-humano-games.jpg
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-pages-jaunes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-pages-jaunes.jpg
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-sfr-large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-sfr-large.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-wesignit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/logo-wesignit.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v1/téléchargement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v1/téléchargement.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-bfm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-bfm.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-france-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-france-2.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-france-info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-france-info.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-la-tribune.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-la-tribune.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-le-monde.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-le-monde.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-les-echos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-footer-presse-les-echos.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-lemonway-grey.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
25 |
26 |
27 |
28 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
45 |
46 |
47 |
48 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
66 |
67 |
68 |
69 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
87 |
88 |
89 |
90 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
107 |
108 |
109 |
110 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
127 |
128 |
129 |
130 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
147 |
148 |
149 |
150 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
173 |
174 |
175 |
176 |
177 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-logo-gris.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-logo-gris.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloAsso/HelloAsso.Api.Doc/6cb936cd33f0ab7beb8b6cbb15abbc446f198e48/HelloAsso.Api.Doc/wwwroot/assets/images/v2/helloasso-logo.png
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/images/v3/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/js/v3/date.js:
--------------------------------------------------------------------------------
1 | function dynamicDate() {
2 | var date = new Date();
3 | var pad = '00';
4 |
5 | var year = date.getFullYear();
6 | var month = date.getMonth();
7 | var monthIso = (date.getMonth() + 1) + '';
8 | monthIso = pad.substring(0, pad.length - monthIso.length) + monthIso;
9 | var months = new Array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
10 | var day = date.getDate();
11 | if (day == 1) {
12 | day = day + 'er';
13 | }
14 | var dayIso = date.getDate() + '';
15 | dayIso = pad.substring(0, pad.length - dayIso.length) + dayIso;
16 | var hour = date.getHours() + '';
17 | hour = pad.substring(0, pad.length - hour.length) + hour;
18 | var minutes = date.getMinutes() + '';
19 | minutes = pad.substring(0, pad.length - minutes.length) + minutes;
20 | var seconds = date.getSeconds() + '';
21 | seconds = pad.substring(0, pad.length - seconds.length) + seconds;
22 |
23 | var fullDate = day + ' ' + months[month] + ' ' + year + ' à ' + hour + 'h' + minutes;
24 | document.querySelector('.full-date').innerHTML = fullDate;
25 |
26 | var apiDate = year + '-' + monthIso + '-' + dayIso + 'T' + hour + ':' + minutes + ':' + seconds;
27 | document.querySelector('.api-date').innerHTML = apiDate;
28 | }
29 |
30 | function initDate() {
31 | dynamicDate();
32 | };
33 |
34 | window.onload = initDate();
35 | window.setInterval(function () {
36 | initDate();
37 | }, 1000);
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/js/v3/date.min.js:
--------------------------------------------------------------------------------
1 | function dynamicDate(){var e=new Date,t="00",n=e.getFullYear(),r=e.getMonth(),a=e.getMonth()+1+"";a=t.substring(0,t.length-a.length)+a;var i=new Array("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"),g=e.getDate();1==g&&(g+="er");var l=e.getDate()+"";l=t.substring(0,t.length-l.length)+l;var o=e.getHours()+"";o=t.substring(0,t.length-o.length)+o;var u=e.getMinutes()+"";u=t.substring(0,t.length-u.length)+u;var s=e.getSeconds()+"";s=t.substring(0,t.length-s.length)+s;var h=g+" "+i[r]+" "+n+" à "+o+"h"+u;document.querySelector(".full-date").innerHTML=h;var v=n+"-"+a+"-"+l+"T"+o+":"+u+":"+s;document.querySelector(".api-date").innerHTML=v}function initDate(){dynamicDate()}window.onload=initDate(),window.setInterval(function(){initDate()},1e3);
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/js/v3/main.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | (function Api() {
4 |
5 | // Noms des pages à afficher
6 | var pageNames = {
7 | "index": "Introduction",
8 | "description": "Description de l'API HelloAsso",
9 | "format": "Format des échanges",
10 | "responses": "Types des réponses",
11 | "resources": "Ressources",
12 | "notifications": "Notifications",
13 | "public": "API publique"
14 | }
15 |
16 | // Applique le nom de la page courante au header
17 | var refreshPageName = function() {
18 | var url = document.location.pathname;
19 | var urlSplit = url.substring(url.lastIndexOf('/') + 1);
20 | var pageTitle = document.querySelector('[data-content="title"]');
21 |
22 | if (pageTitle) {
23 | pageTitle.innerHTML = pageNames[urlSplit];
24 | }
25 | }
26 |
27 | // Surligne la page courante dans la sidebar
28 | var highlightCurrentPage = function() {
29 | var url = document.location.pathname;
30 | var urlSplit = url.substring(url.lastIndexOf('/') + 1);
31 | var pageLinks = document.querySelectorAll('[data-link="' + urlSplit + '"]');
32 |
33 | // Déplie le submenu au clic sur un lien de la sidebar
34 | for (var i = 0; i < pageLinks.length; i++) {
35 | var pageLink = pageLinks[i];
36 | var currentLink = pageLink.querySelector('a');
37 | var currentSubmenu = pageLink.querySelector('.collapsible');
38 |
39 | window.api.addClass(currentLink, 'current');
40 | window.api.addClass(currentSubmenu, 'collapsed');
41 | }
42 | }
43 |
44 | this.addClass = function(element, className) {
45 | if (element == null) {
46 | return;
47 | }
48 |
49 | if (element.getAttribute('class') == null) {
50 | element.setAttribute('class', className);
51 | } else {
52 | var classes = element.getAttribute('class').split(" ");
53 |
54 | if (classes.indexOf(className) == -1) {
55 | element.setAttribute('class', element.getAttribute('class') + " " + className);
56 | }
57 | }
58 | }
59 |
60 | // Ajoute une classe sur un élément cible
61 | this.addClassWithAttribute = function(el) {
62 | var currentAddClass = el.getAttribute('data-addclass');
63 | var currentAddClassTarget = el.getAttribute('data-target');
64 | var target = document.querySelector(currentAddClassTarget);
65 |
66 | window.api.addClass(target, currentAddClass);
67 | }
68 |
69 | this.removeClass = function(element, className) {
70 | if (element == null) {
71 | return;
72 | }
73 |
74 | if (element.getAttribute('class') != null) {
75 | var classLeft = element.getAttribute('class').replace(className, '');
76 | element.setAttribute('class', classLeft);
77 | }
78 | }
79 |
80 | // Alterner un état sur un élément via une classe
81 | this.toggleClass = function(element, className) {
82 | if (element == null) {
83 | return;
84 | }
85 |
86 | var classes = element.getAttribute('class').split(" ");
87 |
88 | if (classes.indexOf(className) == -1) {
89 | window.api.addClass(element, className);
90 | } else {
91 | window.api.removeClass(element, className);
92 | }
93 | }
94 |
95 | // Tester si le parent ou son enfant comporte une classe
96 | this.childOrParentHasClass = function(child, className) {
97 | var noClass = child.getAttribute('class') == null;
98 | var classes = [];
99 |
100 | if (!noClass) {
101 | classes = child.getAttribute('class').split(" ");
102 | }
103 |
104 | if (classes.indexOf(className) == -1 || noClass) {
105 | var parent = child.parentNode;
106 | while (parent != null && parent != document) {
107 | var noClassParent = parent.getAttribute('class') == null;
108 | var parentClasses = [];
109 |
110 | if (!noClassParent) {
111 | parentClasses = parent.getAttribute('class').split(" ");
112 | }
113 |
114 | if (parentClasses.indexOf(className) == -1 || noClassParent) {
115 | parent = parent.parentNode;
116 | } else {
117 | return true;
118 | }
119 | }
120 | return false;
121 | } else {
122 | return true;
123 | }
124 | }
125 |
126 | // Création du cookie ThemeSaver (enregistrement et application du theme au chargement de la page)
127 | this.setCookie = function(cname, cvalue, exdays) {
128 | var d = new Date();
129 | d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
130 |
131 | var expires = "expires="+d.toUTCString();
132 | document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
133 | }
134 |
135 | // Smooth Scroll
136 | this.scrollTo = function(element, to, duration) {
137 | if (duration < 0) return;
138 | var difference = to - element.scrollTop;
139 | var perTick = difference / duration * 10;
140 |
141 | setTimeout(function () {
142 | element.scrollTop = element.scrollTop + perTick;
143 | if (element.scrollTop == to) return;
144 | window.api.scrollTo(element, to, duration - 10);
145 | }, 10);
146 | }
147 |
148 | this.scrollToAnchor = function (link) {
149 | var anchor = link.href.split('#')[1];
150 | var target = document.getElementById(anchor);
151 |
152 | // Hack IE10 pour savoir si on utilise body ou documentElement
153 | var oldScroll = document.documentElement.scrollTop;
154 | document.documentElement.scrollTop = oldScroll + 10;
155 | var newScroll = document.documentElement.scrollTop;
156 | document.documentElement.scrollTop = oldScroll;
157 |
158 | var content = document.body;
159 | if (oldScroll != newScroll) {
160 | content = document.documentElement;
161 | }
162 |
163 | if (window.innerWidth > 992) {
164 | setTimeout(window.api.scrollTo(content, target.offsetTop, 500), 250);
165 | } else {
166 | setTimeout(window.api.scrollTo(content, target.offsetTop - 55, 500), 250);
167 | }
168 | };
169 |
170 | this.init = function() {
171 | refreshPageName();
172 | highlightCurrentPage();
173 |
174 | // Application ciblée de la fonction addClass
175 | var elements = document.querySelectorAll('[data-addclass]');
176 | for (var elementsIdx = 0; elementsIdx < elements.length; elementsIdx++) {
177 | var item = elements[elementsIdx];
178 |
179 | item.addEventListener('click', function(event) {
180 | var current = event.currentTarget;
181 | window.api.addClassWithAttribute(current);
182 | });
183 | }
184 |
185 | // Sélection du theme
186 | var themeSelector = document.querySelectorAll('[data-theme]');
187 | for (var i = 0; i < themeSelector.length; i++) {
188 |
189 | themeSelector[i].addEventListener('click', function(e) {
190 | var body = document.querySelector('body');
191 | var currentTheme = e.currentTarget.getAttribute('data-theme');
192 |
193 | window.api.setCookie('themeSaver', currentTheme, 365);
194 |
195 | body.setAttribute('class', '');
196 | window.api.addClass(body, currentTheme);
197 |
198 | var themeSelectorToSelect = document.querySelectorAll('[data-theme]');
199 | for (var j = 0; j < themeSelectorToSelect.length; j++) {
200 | if (themeSelectorToSelect[j] != e.currentTarget) {
201 | window.api.removeClass(themeSelectorToSelect[j], 'theme-active');
202 | } else {
203 | window.api.addClass(e.currentTarget, 'theme-active');
204 | }
205 | }
206 | });
207 | }
208 |
209 | // Smooth scroll
210 | var links = document.querySelectorAll('a');
211 | for (var i = 0; i < links.length; i++) {
212 | if (links[i].href.indexOf('#') > -1) {
213 | var anchor = links[i].href.split('#')[1];
214 | if (anchor.trim() != '' && document.querySelector('#' + anchor)) {
215 | links[i].addEventListener("click", function (e) {
216 | e.preventDefault();
217 | window.api.scrollToAnchor(e.currentTarget);
218 | });
219 | }
220 | }
221 | }
222 |
223 | // Menu
224 | var navLinks = document.querySelectorAll('.sidebar-nav li');
225 | for (var i = 0; i < navLinks.length; i++) {
226 | var navLink = navLinks[i];
227 |
228 | navLink.addEventListener('click', function(event) {
229 | var current = event.currentTarget;
230 | var submenu = current.querySelector('.collapsible');
231 | var navLinksToCollapse = document.querySelectorAll('.sidebar-nav .collapsible');
232 |
233 | for (var j = 0; j < navLinksToCollapse.length; j++) {
234 | if (navLinksToCollapse[j] != submenu) {
235 | window.api.removeClass(navLinksToCollapse[j], 'collapsed');
236 | }
237 | }
238 |
239 | window.api.toggleClass(submenu, 'collapsed');
240 | });
241 | }
242 |
243 | // Ouverture/fermeture du menu (responsive)
244 | document.addEventListener('click', function(event) {
245 | // Sidebar
246 | var sidebar = document.querySelector('.sidebar');
247 |
248 | if (!window.api.childOrParentHasClass(event.target, 'sidebar') && !window.api.childOrParentHasClass(event.target, 'open-menu')) {
249 | window.api.removeClass(sidebar, 'open');
250 | }
251 | });
252 | }
253 |
254 | }).call(window.api = window.api || {});
255 |
256 | document.addEventListener('DOMContentLoaded', function() {
257 | window.api.init();
258 | });
--------------------------------------------------------------------------------
/HelloAsso.Api.Doc/wwwroot/assets/js/v3/main.min.js:
--------------------------------------------------------------------------------
1 | "use strict";(function(){var d={index:"Introduction",description:"Description de l'API HelloAsso",format:"Format des échanges",responses:"Types des réponses",resources:"Ressources",notifications:"Notifications",public:"API publique"};this.addClass=function(e,t){null!=e&&(null==e.getAttribute("class")?e.setAttribute("class",t):-1==e.getAttribute("class").split(" ").indexOf(t)&&e.setAttribute("class",e.getAttribute("class")+" "+t))},this.addClassWithAttribute=function(e){var t=e.getAttribute("data-addclass"),n=e.getAttribute("data-target"),o=document.querySelector(n);window.api.addClass(o,t)},this.removeClass=function(e,t){if(null!=e&&null!=e.getAttribute("class")){var n=e.getAttribute("class").replace(t,"");e.setAttribute("class",n)}},this.toggleClass=function(e,t){null!=e&&(-1==e.getAttribute("class").split(" ").indexOf(t)?window.api.addClass(e,t):window.api.removeClass(e,t))},this.childOrParentHasClass=function(e,t){var n=null==e.getAttribute("class"),o=[];if(n||(o=e.getAttribute("class").split(" ")),-1==o.indexOf(t)||n){for(var r=e.parentNode;null!=r&&r!=document;){var i=null==r.getAttribute("class"),a=[];if(i||(a=r.getAttribute("class").split(" ")),-1!=a.indexOf(t)&&!i)return!0;r=r.parentNode}return!1}return!0},this.setCookie=function(e,t,n){var o=new Date;o.setTime(o.getTime()+24*n*60*60*1e3);var r="expires="+o.toUTCString();document.cookie=e+"="+t+";"+r+";path=/"},this.scrollTo=function(e,t,n){if(!(n<0)){var o=(t-e.scrollTop)/n*10;setTimeout(function(){e.scrollTop=e.scrollTop+o,e.scrollTop!=t&&window.api.scrollTo(e,t,n-10)},10)}},this.scrollToAnchor=function(e){var t=e.href.split("#")[1],n=document.getElementById(t),o=document.documentElement.scrollTop;document.documentElement.scrollTop=o+10;var r=document.documentElement.scrollTop;document.documentElement.scrollTop=o;var i=document.body;o!=r&&(i=document.documentElement),992
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {867CB265-545C-4B18-93DC-40C4AFA18AD3}
8 | Exe
9 | HelloAsso.Api.Samples
10 | HelloAsso.Api.Samples
11 | v4.6.1
12 | 512
13 | true
14 |
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/curl/actions.sh:
--------------------------------------------------------------------------------
1 | # You need to set MyBasicToken to your token base64(id:key)
2 |
3 | # list actions
4 | curl -X GET \
5 | https://api.helloasso.com/v3/actions.json \
6 | -H 'Authorization: Basic MyBasicToken' \
7 |
8 | # list organization's actions
9 | curl -X GET \
10 | https://api.helloasso.com/v3/organizations/000000249671/actions.json \
11 | -H 'Authorization: Basic MyBasicToken' \
12 |
13 | # list campaign's actions
14 | curl -X GET \
15 | https://api.helloasso.com/v3/organizations/000000249671/campaigns/000000026934/actions.json \
16 | -H 'Authorization: Basic MyBasicToken' \
17 |
18 | # list donation actions
19 | curl -X GET \
20 | https://api.helloasso.com/v3/actions.json?type=DONATION \
21 | -H 'Authorization: Basic MyBasicToken' \
22 |
23 | # list actions created after 01/01/2018 and before 31/01/2018
24 | curl -X GET \
25 | https://api.helloasso.com/v3/actions.json?from=2018-01-01T00:00:00&to=2018-01-31T00:00:00 \
26 | -H 'Authorization: Basic MyBasicToken' \
27 |
28 | # get action detail
29 | curl -X GET \
30 | https://api.helloasso.com/v3/actions/000034043170.json \
31 | -H 'Authorization: Basic MyBasicToken'
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/curl/campaigns.sh:
--------------------------------------------------------------------------------
1 | # You need to set MyBasicToken to your token base64(id:key)
2 |
3 | # list campaigns
4 | curl -X GET \
5 | https://api.helloasso.com/v3/campaigns.json \
6 | -H 'Authorization: Basic MyBasicToken'
7 |
8 | # list organization's campaigns
9 | curl -X GET \
10 | https://api.helloasso.com/v3/organizations/000000249671/campaigns.json \
11 | -H 'Authorization: Basic MyBasicToken'
12 |
13 | # list event campaigns
14 | curl -X GET \
15 | https://api.helloasso.com/v3/campaigns.json?type=EVENT \
16 | -H 'Authorization: Basic MyBasicToken'
17 |
18 | # list event created after 01/01/2018 and before 01/02/2018, updated after 15/01/2018 and before 30/01/2018
19 | curl -X GET \
20 | https://api.helloasso.com/v3/campaigns.json?type=EVENT&createdFrom=2018-01-01T00:00:00&createdTo=2018-02-01T00:00:00&updatedFrom=2018-01-15T00:00:00&updatedTo=2018-01-30T00:00:00 \
21 | -H 'Authorization: Basic MyBasicToken'
22 |
23 | # get campaign detail
24 | curl -X GET \
25 | https://api.helloasso.com/v3/campaigns/000000329511.json \
26 | -H 'Authorization: Basic MyBasicToken'
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/curl/organizations.sh:
--------------------------------------------------------------------------------
1 | # You need to set MyBasicToken to your token base64(id:key)
2 |
3 | # list organizations
4 | curl -X GET \
5 | https://api.helloasso.com/v3/organizations.json \
6 | -H 'Authorization: Basic MyBasicToken'
7 |
8 | # get organizations detail
9 | curl -X GET \
10 | https://api.helloasso.com/v3/organizations/000000249671.json \
11 | -H 'Authorization: Basic MyBasicToken'
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/curl/payments.sh:
--------------------------------------------------------------------------------
1 | # You need to set MyBasicToken to your token base64(id:key)
2 |
3 | # list payments
4 | curl -X GET \
5 | https://api.helloasso.com/v3/payments.json \
6 | -H 'Authorization: Basic MyBasicToken' \
7 |
8 | # list organization's payments
9 | curl -X GET \
10 | https://api.helloasso.com/v3/organizations/000000249671/payments.json \
11 | -H 'Authorization: Basic MyBasicToken' \
12 |
13 | # list campaign's payments
14 | curl -X GET \
15 | https://api.helloasso.com/v3/organizations/000000249671/campaigns/000000026934/payments.json \
16 | -H 'Authorization: Basic MyBasicToken' \
17 |
18 | # list credit payments
19 | curl -X GET \
20 | https://api.helloasso.com/v3/payments.json?type=CREDIT \
21 | -H 'Authorization: Basic MyBasicToken' \
22 |
23 | # list payments created after 01/01/2018 and before 31/01/2018
24 | curl -X GET \
25 | https://api.helloasso.com/v3/payments.json?from=2018-01-01T00:00:00&to=2018-01-31T00:00:00 \
26 | -H 'Authorization: Basic MyBasicToken' \
27 |
28 | # get payment detail
29 | curl -X GET \
30 | https://api.helloasso.com/v3/payments/000017607661.json \
31 | -H 'Authorization: Basic MyBasicToken'
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/go/actions.go:
--------------------------------------------------------------------------------
1 | package actions
2 |
3 | import (
4 | "fmt"
5 | "net/http"
6 | "io/ioutil"
7 | "encoding/base64"
8 | )
9 |
10 | // You need to set id and key
11 | id := ""
12 | key := ""
13 | data := []byte(id + ":" + key)
14 | token := base64.StdEncoding.EncodeToString(data)
15 |
16 | // list actions
17 | func ListActions() {
18 |
19 | url := "https://api.helloasso.com/v3/actions.json"
20 |
21 | req, _ := http.NewRequest("GET", url, nil)
22 |
23 | req.Header.Add("Authorization", "Basic " + token)
24 |
25 | res, _ := http.DefaultClient.Do(req)
26 |
27 | defer res.Body.Close()
28 | body, _ := ioutil.ReadAll(res.Body)
29 |
30 | fmt.Println(res)
31 | fmt.Println(string(body))
32 |
33 | }
34 |
35 | // list organization's actions
36 | func ListOrganizationActions() {
37 |
38 | url := "https://api.helloasso.com/v3/organizations/000000249671/actions.json"
39 |
40 | req, _ := http.NewRequest("GET", url, nil)
41 |
42 | req.Header.Add("Authorization", "Basic " + token)
43 |
44 | res, _ := http.DefaultClient.Do(req)
45 |
46 | defer res.Body.Close()
47 | body, _ := ioutil.ReadAll(res.Body)
48 |
49 | fmt.Println(res)
50 | fmt.Println(string(body))
51 |
52 | }
53 |
54 | // list campaign's actions
55 | func ListCampaignActions() {
56 |
57 | url := "https://api.helloasso.com/v3/organizations/000000249671/campaigns/000000026934/actions.json"
58 |
59 | req, _ := http.NewRequest("GET", url, nil)
60 |
61 | req.Header.Add("Authorization", "Basic " + token)
62 |
63 | res, _ := http.DefaultClient.Do(req)
64 |
65 | defer res.Body.Close()
66 | body, _ := ioutil.ReadAll(res.Body)
67 |
68 | fmt.Println(res)
69 | fmt.Println(string(body))
70 |
71 | }
72 |
73 | // list donation actions
74 | func LisDonationActions() {
75 |
76 | url := "https://api.helloasso.com/v3/actions.json?type=DONATION"
77 |
78 | req, _ := http.NewRequest("GET", url, nil)
79 |
80 | req.Header.Add("Authorization", "Basic " + token)
81 |
82 | res, _ := http.DefaultClient.Do(req)
83 |
84 | defer res.Body.Close()
85 | body, _ := ioutil.ReadAll(res.Body)
86 |
87 | fmt.Println(res)
88 | fmt.Println(string(body))
89 |
90 | }
91 |
92 | // list actions created after 01/01/2018 and before 31/01/2018
93 | func ListActionByDate() {
94 |
95 | url := "https://api.helloasso.com/v3/actions.json?from=2018-01-01T00:00:00&to=2018-01-31T00:00:00"
96 |
97 | req, _ := http.NewRequest("GET", url, nil)
98 |
99 | req.Header.Add("Authorization", "Basic " + token)
100 |
101 | res, _ := http.DefaultClient.Do(req)
102 |
103 | defer res.Body.Close()
104 | body, _ := ioutil.ReadAll(res.Body)
105 |
106 | fmt.Println(res)
107 | fmt.Println(string(body))
108 |
109 | }
110 |
111 | // get action detail
112 | func GetActionDetail() {
113 |
114 | url := "https://api.helloasso.com/v3/actions/000034043170.json"
115 |
116 | req, _ := http.NewRequest("GET", url, nil)
117 |
118 | req.Header.Add("Authorization", "Basic " + token)
119 |
120 | res, _ := http.DefaultClient.Do(req)
121 |
122 | defer res.Body.Close()
123 | body, _ := ioutil.ReadAll(res.Body)
124 |
125 | fmt.Println(res)
126 | fmt.Println(string(body))
127 |
128 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/go/campaigns.go:
--------------------------------------------------------------------------------
1 | package campaigns
2 |
3 | import (
4 | "fmt"
5 | "net/http"
6 | "io/ioutil"
7 | "encoding/base64"
8 | )
9 |
10 | // You need to set id and key
11 | id := ""
12 | key := ""
13 | data := []byte(id + ":" + key)
14 | token := base64.StdEncoding.EncodeToString(data)
15 |
16 | // list campaigns
17 | func ListCampaigns() {
18 |
19 | url := "https://api.helloasso.com/v3/campaigns.json"
20 |
21 | req, _ := http.NewRequest("GET", url, nil)
22 |
23 | req.Header.Add("Authorization", "Basic " + token)
24 |
25 | res, _ := http.DefaultClient.Do(req)
26 |
27 | defer res.Body.Close()
28 | body, _ := ioutil.ReadAll(res.Body)
29 |
30 | fmt.Println(res)
31 | fmt.Println(string(body))
32 |
33 | }
34 |
35 | // list organization's campaigns
36 | func ListOrganizationCampaigns() {
37 |
38 | url := "https://api.helloasso.com/v3/organizations/000000249671/campaigns.json"
39 |
40 | req, _ := http.NewRequest("GET", url, nil)
41 |
42 | req.Header.Add("Authorization", "Basic " + token)
43 |
44 | res, _ := http.DefaultClient.Do(req)
45 |
46 | defer res.Body.Close()
47 | body, _ := ioutil.ReadAll(res.Body)
48 |
49 | fmt.Println(res)
50 | fmt.Println(string(body))
51 |
52 | }
53 |
54 | // list event campaigns
55 | func ListEventCampaigns() {
56 |
57 | url := "https://api.helloasso.com/v3/campaigns.json?type=EVENT"
58 |
59 | req, _ := http.NewRequest("GET", url, nil)
60 |
61 | req.Header.Add("Authorization", "Basic " + token)
62 |
63 | res, _ := http.DefaultClient.Do(req)
64 |
65 | defer res.Body.Close()
66 | body, _ := ioutil.ReadAll(res.Body)
67 |
68 | fmt.Println(res)
69 | fmt.Println(string(body))
70 |
71 | }
72 |
73 | // list event created after 01/01/2018 and before 01/02/2018, updated after 15/01/2018 and before 30/01/2018
74 | func ListEventByDate() {
75 |
76 | url := "https://api.helloasso.com/v3/campaigns.json?type=EVENT&createdFrom=2018-01-01T00:00:00&createdTo=2018-02-01T00:00:00&updatedFrom=2018-01-15T00:00:00&updatedTo=2018-01-30T00:00:00"
77 |
78 | req, _ := http.NewRequest("GET", url, nil)
79 |
80 | req.Header.Add("Authorization", "Basic " + token)
81 |
82 | res, _ := http.DefaultClient.Do(req)
83 |
84 | defer res.Body.Close()
85 | body, _ := ioutil.ReadAll(res.Body)
86 |
87 | fmt.Println(res)
88 | fmt.Println(string(body))
89 |
90 | }
91 |
92 | // get campaign detail
93 | func GetCampaignDetail() {
94 |
95 | url := "https://api.helloasso.com/v3/campaigns/000000329511.json"
96 |
97 | req, _ := http.NewRequest("GET", url, nil)
98 |
99 | req.Header.Add("Authorization", "Basic " + token)
100 |
101 | res, _ := http.DefaultClient.Do(req)
102 |
103 | defer res.Body.Close()
104 | body, _ := ioutil.ReadAll(res.Body)
105 |
106 | fmt.Println(res)
107 | fmt.Println(string(body))
108 |
109 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/go/organizations.go:
--------------------------------------------------------------------------------
1 | package organizations
2 |
3 | import (
4 | "fmt"
5 | "net/http"
6 | "io/ioutil"
7 | "encoding/base64"
8 | )
9 |
10 | // You need to set id and key
11 | id := ""
12 | key := ""
13 | data := []byte(id + ":" + key)
14 | token := base64.StdEncoding.EncodeToString(data)
15 |
16 | // list organizations
17 | func ListOrganizations() {
18 |
19 | url := "https://api.helloasso.com/v3/organizations.json"
20 |
21 | req, _ := http.NewRequest("GET", url, nil)
22 |
23 | req.Header.Add("Authorization", "Basic " + token)
24 |
25 | res, _ := http.DefaultClient.Do(req)
26 |
27 | defer res.Body.Close()
28 | body, _ := ioutil.ReadAll(res.Body)
29 |
30 | fmt.Println(res)
31 | fmt.Println(string(body))
32 |
33 | }
34 |
35 | // get organizations detail
36 | func GetOrganizationDetail() {
37 |
38 | url := "https://api.helloasso.com/v3/organizations/000000249671.json"
39 |
40 | req, _ := http.NewRequest("GET", url, nil)
41 |
42 | req.Header.Add("Authorization", "Basic " + token)
43 |
44 | res, _ := http.DefaultClient.Do(req)
45 |
46 | defer res.Body.Close()
47 | body, _ := ioutil.ReadAll(res.Body)
48 |
49 | fmt.Println(res)
50 | fmt.Println(string(body))
51 |
52 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/go/payments.go:
--------------------------------------------------------------------------------
1 | package payments
2 |
3 | import (
4 | "fmt"
5 | "net/http"
6 | "io/ioutil"
7 | "encoding/base64"
8 | )
9 |
10 | // You need to set id and key
11 | id := ""
12 | key := ""
13 | data := []byte(id + ":" + key)
14 | token := base64.StdEncoding.EncodeToString(data)
15 |
16 | // list payments
17 | func ListPayments() {
18 |
19 | url := "https://api.helloasso.com/v3/payments.json"
20 |
21 | req, _ := http.NewRequest("GET", url, nil)
22 |
23 | req.Header.Add("Authorization", "Basic " + token)
24 |
25 | res, _ := http.DefaultClient.Do(req)
26 |
27 | defer res.Body.Close()
28 | body, _ := ioutil.ReadAll(res.Body)
29 |
30 | fmt.Println(res)
31 | fmt.Println(string(body))
32 |
33 | }
34 |
35 | // list organization's payments
36 | func ListOrganizationPayments() {
37 |
38 | url := "https://api.helloasso.com/v3/organizations/000000249671/payments.json"
39 |
40 | req, _ := http.NewRequest("GET", url, nil)
41 |
42 | req.Header.Add("Authorization", "Basic " + token)
43 |
44 | res, _ := http.DefaultClient.Do(req)
45 |
46 | defer res.Body.Close()
47 | body, _ := ioutil.ReadAll(res.Body)
48 |
49 | fmt.Println(res)
50 | fmt.Println(string(body))
51 |
52 | }
53 |
54 | // list campaign's payments
55 | func ListCampaignPayments() {
56 |
57 | url := "https://api.helloasso.com/v3/organizations/000000249671/campaigns/000000026934/payments.json"
58 |
59 | req, _ := http.NewRequest("GET", url, nil)
60 |
61 | req.Header.Add("Authorization", "Basic " + token)
62 |
63 | res, _ := http.DefaultClient.Do(req)
64 |
65 | defer res.Body.Close()
66 | body, _ := ioutil.ReadAll(res.Body)
67 |
68 | fmt.Println(res)
69 | fmt.Println(string(body))
70 |
71 | }
72 |
73 | // list credit payments
74 | func ListCreditPayments() {
75 |
76 | url := "https://api.helloasso.com/v3/payments.json?type=CREDIT"
77 |
78 | req, _ := http.NewRequest("GET", url, nil)
79 |
80 | req.Header.Add("Authorization", "Basic " + token)
81 |
82 | res, _ := http.DefaultClient.Do(req)
83 |
84 | defer res.Body.Close()
85 | body, _ := ioutil.ReadAll(res.Body)
86 |
87 | fmt.Println(res)
88 | fmt.Println(string(body))
89 |
90 | }
91 |
92 | // list payments created after 01/01/2018 and before 31/01/2018
93 | func ListPaymentsByDate() {
94 |
95 | url := "https://api.helloasso.com/v3/payments.json?from=2018-01-01T00:00:00&to=2018-01-31T00:00:00"
96 |
97 | req, _ := http.NewRequest("GET", url, nil)
98 |
99 | req.Header.Add("Authorization", "Basic " + token)
100 |
101 | res, _ := http.DefaultClient.Do(req)
102 |
103 | defer res.Body.Close()
104 | body, _ := ioutil.ReadAll(res.Body)
105 |
106 | fmt.Println(res)
107 | fmt.Println(string(body))
108 |
109 | }
110 |
111 | // get payment detail
112 | func GetPaymentDetail() {
113 |
114 | url := "https://api.helloasso.com/v3/payments/000017607661.json"
115 |
116 | req, _ := http.NewRequest("GET", url, nil)
117 |
118 | req.Header.Add("Authorization", "Basic " + token)
119 |
120 | res, _ := http.DefaultClient.Do(req)
121 |
122 | defer res.Body.Close()
123 | body, _ := ioutil.ReadAll(res.Body)
124 |
125 | fmt.Println(res)
126 | fmt.Println(string(body))
127 |
128 | }
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/nodejs/README.md:
--------------------------------------------------------------------------------
1 | Pour voir l'exemple merci de vous reporter au dépot GitHub :
2 | https://github.com/Mailforgood/HelloAsso.NodeJs.NotificationServer
3 |
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/php/helloasso_stat.php:
--------------------------------------------------------------------------------
1 | resources as $action) {
24 | echo "action de type $action->type d'un montant $action->montant effectuée le $action->date ";
25 |
26 | if(count($action->custom_infos) > 0) {
27 | echo "Liste des informations additionnelles: ";
28 | echo "";
29 | foreach ($action->custom_infos as $info) {
30 | echo "$info->label : $info->value ";
31 | }
32 | echo " ";
33 | }
34 | else {
35 | echo "Sans information additionnelle ";
36 | }
37 | }
38 |
39 | // Display only some specific custom informations
40 | foreach ($json->resources as $action) {
41 | // We get only action with custom informations
42 | if(count($action->custom_infos) > 0) {
43 |
44 | // First we have to get index
45 | $phoneIndex = findIndex($action->custom_infos, "Numéro de téléphone");
46 | $emailIndex = findIndex($action->custom_infos, "Email");
47 | $photoIndex = findIndex($action->custom_infos, "Photo d'identité");
48 |
49 | // Then value
50 | $phoneValue = $phoneIndex == null ? "" : $action->custom_infos[$phoneIndex]->value;
51 | $emailValue = $emailIndex == null ? "" : $action->custom_infos[$emailIndex]->value;
52 | $photoValue = $photoIndex == null ? "" : $action->custom_infos[$photoIndex]->value;
53 |
54 | // Now display summary with only id picture
55 | echo "action de type $action->type d'un montant $action->montant effectuée le $action->date avec cette photo $photoValue ";
56 | }
57 | }
58 |
59 | /*
60 | * Small function to find index of label value in custom_infos array
61 | */
62 | function findIndex($array, $value) {
63 | $index = 0;
64 | foreach ($array as $item) {
65 | if($item->label == $value){
66 | return $index;
67 | }
68 |
69 | $index++;
70 | }
71 |
72 | return null;
73 | }
74 |
75 | ?>
--------------------------------------------------------------------------------
/HelloAsso.Api.Samples/php/helloasso_stat_total.php:
--------------------------------------------------------------------------------
1 | parameter and iniate $sum and $nb with past transaction
20 | curl_setopt($curl, CURLOPT_URL, "https://api.helloasso.com/v3/actions.json");
21 | curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
22 |
23 | $json = json_decode(curl_exec($curl));
24 | curl_close($curl);
25 |
26 | $sum = 0;
27 | $nb = 0;
28 |
29 | foreach ($json->resources as $payment) {
30 | $sum += $payment->amount;
31 | $nb++;
32 | }
33 |
34 | echo "" . $sum . "
" . $nb . "
";
35 |
36 | ?>
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # HelloAsso.Api.Doc
2 |
3 | Ce repository contient la documentation des différentes versions de l'API HelloAsso et des exemples d'appels et d'utilisation.
4 |
5 | * HelloAsso.Api.Doc est le site disponible à cette adresse: https://dev.helloasso.com
6 | * HelloAsso.Api.Samples contient les exemples regroupé par langage de programmation
7 |
8 |
--------------------------------------------------------------------------------