c4r-aggregator-client 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/ts.iml +9 -0
- package/.idea/vcs.xml +6 -0
- package/.openapi-generator/FILES +91 -0
- package/.openapi-generator/VERSION +1 -0
- package/.openapi-generator-ignore +23 -0
- package/README.md +174 -0
- package/dist/apis/AdminApi.d.ts +187 -0
- package/dist/apis/AdminApi.js +515 -0
- package/dist/apis/CatalogApi.d.ts +84 -0
- package/dist/apis/CatalogApi.js +191 -0
- package/dist/apis/MeetingsApi.d.ts +98 -0
- package/dist/apis/MeetingsApi.js +235 -0
- package/dist/apis/SourcesApi.d.ts +35 -0
- package/dist/apis/SourcesApi.js +73 -0
- package/dist/apis/index.d.ts +4 -0
- package/dist/apis/index.js +22 -0
- package/dist/esm/apis/AdminApi.d.ts +187 -0
- package/dist/esm/apis/AdminApi.js +511 -0
- package/dist/esm/apis/CatalogApi.d.ts +84 -0
- package/dist/esm/apis/CatalogApi.js +187 -0
- package/dist/esm/apis/MeetingsApi.d.ts +98 -0
- package/dist/esm/apis/MeetingsApi.js +231 -0
- package/dist/esm/apis/SourcesApi.d.ts +35 -0
- package/dist/esm/apis/SourcesApi.js +69 -0
- package/dist/esm/apis/index.d.ts +4 -0
- package/dist/esm/apis/index.js +6 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/models/AdminSource.d.ts +190 -0
- package/dist/esm/models/AdminSource.js +112 -0
- package/dist/esm/models/AuthError.d.ts +32 -0
- package/dist/esm/models/AuthError.js +41 -0
- package/dist/esm/models/CreateSourceRequest.d.ts +76 -0
- package/dist/esm/models/CreateSourceRequest.js +64 -0
- package/dist/esm/models/CreateSourceResponse.d.ts +45 -0
- package/dist/esm/models/CreateSourceResponse.js +46 -0
- package/dist/esm/models/DedupCounters.d.ts +86 -0
- package/dist/esm/models/DedupCounters.js +59 -0
- package/dist/esm/models/DedupStats.d.ts +65 -0
- package/dist/esm/models/DedupStats.js +54 -0
- package/dist/esm/models/DedupStatsLatestRun.d.ts +60 -0
- package/dist/esm/models/DedupStatsLatestRun.js +56 -0
- package/dist/esm/models/DedupStatsRecentRunsInner.d.ts +45 -0
- package/dist/esm/models/DedupStatsRecentRunsInner.js +46 -0
- package/dist/esm/models/FeedValidationError.d.ts +54 -0
- package/dist/esm/models/FeedValidationError.js +54 -0
- package/dist/esm/models/IngestRun.d.ts +107 -0
- package/dist/esm/models/IngestRun.js +71 -0
- package/dist/esm/models/MapFeature.d.ts +46 -0
- package/dist/esm/models/MapFeature.js +47 -0
- package/dist/esm/models/MapFeatureCollection.d.ts +45 -0
- package/dist/esm/models/MapFeatureCollection.js +46 -0
- package/dist/esm/models/MapFeatureGeometry.d.ts +38 -0
- package/dist/esm/models/MapFeatureGeometry.js +43 -0
- package/dist/esm/models/MapFeatureProperties.d.ts +69 -0
- package/dist/esm/models/MapFeatureProperties.js +54 -0
- package/dist/esm/models/MapMeeting.d.ts +50 -0
- package/dist/esm/models/MapMeeting.js +47 -0
- package/dist/esm/models/Meeting.d.ts +272 -0
- package/dist/esm/models/Meeting.js +131 -0
- package/dist/esm/models/MeetingPage.d.ts +47 -0
- package/dist/esm/models/MeetingPage.js +48 -0
- package/dist/esm/models/MeetingPageLinks.d.ts +50 -0
- package/dist/esm/models/MeetingPageLinks.js +47 -0
- package/dist/esm/models/MeetingPageMeta.d.ts +50 -0
- package/dist/esm/models/MeetingPageMeta.js +47 -0
- package/dist/esm/models/MeetingType.d.ts +56 -0
- package/dist/esm/models/MeetingType.js +49 -0
- package/dist/esm/models/MeetingsFilterError.d.ts +44 -0
- package/dist/esm/models/MeetingsFilterError.js +45 -0
- package/dist/esm/models/Program.d.ts +44 -0
- package/dist/esm/models/Program.js +45 -0
- package/dist/esm/models/PublicSource.d.ts +113 -0
- package/dist/esm/models/PublicSource.js +80 -0
- package/dist/esm/models/SourceEnvelope.d.ts +33 -0
- package/dist/esm/models/SourceEnvelope.js +42 -0
- package/dist/esm/models/SourceRefreshResponse.d.ts +39 -0
- package/dist/esm/models/SourceRefreshResponse.js +44 -0
- package/dist/esm/models/Stats.d.ts +86 -0
- package/dist/esm/models/Stats.js +63 -0
- package/dist/esm/models/StatsGroups.d.ts +32 -0
- package/dist/esm/models/StatsGroups.js +41 -0
- package/dist/esm/models/StatsLocations.d.ts +38 -0
- package/dist/esm/models/StatsLocations.js +43 -0
- package/dist/esm/models/StatsMeetingTypes.d.ts +32 -0
- package/dist/esm/models/StatsMeetingTypes.js +41 -0
- package/dist/esm/models/StatsMeetings.d.ts +68 -0
- package/dist/esm/models/StatsMeetings.js +51 -0
- package/dist/esm/models/StatsProgramsBreakdownInner.d.ts +62 -0
- package/dist/esm/models/StatsProgramsBreakdownInner.js +51 -0
- package/dist/esm/models/StatsSources.d.ts +47 -0
- package/dist/esm/models/StatsSources.js +46 -0
- package/dist/esm/models/StatsSourcesTopByMeetingCountInner.d.ts +44 -0
- package/dist/esm/models/StatsSourcesTopByMeetingCountInner.js +45 -0
- package/dist/esm/models/StoreSourceValidationError.d.ts +23 -0
- package/dist/esm/models/StoreSourceValidationError.js +51 -0
- package/dist/esm/models/UpdateSourceRequest.d.ts +70 -0
- package/dist/esm/models/UpdateSourceRequest.js +58 -0
- package/dist/esm/models/ValidationError.d.ts +40 -0
- package/dist/esm/models/ValidationError.js +43 -0
- package/dist/esm/models/index.d.ts +36 -0
- package/dist/esm/models/index.js +38 -0
- package/dist/esm/runtime.d.ts +184 -0
- package/dist/esm/runtime.js +349 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +21 -0
- package/dist/models/AdminSource.d.ts +190 -0
- package/dist/models/AdminSource.js +120 -0
- package/dist/models/AuthError.d.ts +32 -0
- package/dist/models/AuthError.js +48 -0
- package/dist/models/CreateSourceRequest.d.ts +76 -0
- package/dist/models/CreateSourceRequest.js +72 -0
- package/dist/models/CreateSourceResponse.d.ts +45 -0
- package/dist/models/CreateSourceResponse.js +53 -0
- package/dist/models/DedupCounters.d.ts +86 -0
- package/dist/models/DedupCounters.js +66 -0
- package/dist/models/DedupStats.d.ts +65 -0
- package/dist/models/DedupStats.js +61 -0
- package/dist/models/DedupStatsLatestRun.d.ts +60 -0
- package/dist/models/DedupStatsLatestRun.js +64 -0
- package/dist/models/DedupStatsRecentRunsInner.d.ts +45 -0
- package/dist/models/DedupStatsRecentRunsInner.js +53 -0
- package/dist/models/FeedValidationError.d.ts +54 -0
- package/dist/models/FeedValidationError.js +62 -0
- package/dist/models/IngestRun.d.ts +107 -0
- package/dist/models/IngestRun.js +79 -0
- package/dist/models/MapFeature.d.ts +46 -0
- package/dist/models/MapFeature.js +54 -0
- package/dist/models/MapFeatureCollection.d.ts +45 -0
- package/dist/models/MapFeatureCollection.js +53 -0
- package/dist/models/MapFeatureGeometry.d.ts +38 -0
- package/dist/models/MapFeatureGeometry.js +50 -0
- package/dist/models/MapFeatureProperties.d.ts +69 -0
- package/dist/models/MapFeatureProperties.js +61 -0
- package/dist/models/MapMeeting.d.ts +50 -0
- package/dist/models/MapMeeting.js +54 -0
- package/dist/models/Meeting.d.ts +272 -0
- package/dist/models/Meeting.js +139 -0
- package/dist/models/MeetingPage.d.ts +47 -0
- package/dist/models/MeetingPage.js +55 -0
- package/dist/models/MeetingPageLinks.d.ts +50 -0
- package/dist/models/MeetingPageLinks.js +54 -0
- package/dist/models/MeetingPageMeta.d.ts +50 -0
- package/dist/models/MeetingPageMeta.js +54 -0
- package/dist/models/MeetingType.d.ts +56 -0
- package/dist/models/MeetingType.js +56 -0
- package/dist/models/MeetingsFilterError.d.ts +44 -0
- package/dist/models/MeetingsFilterError.js +52 -0
- package/dist/models/Program.d.ts +44 -0
- package/dist/models/Program.js +52 -0
- package/dist/models/PublicSource.d.ts +113 -0
- package/dist/models/PublicSource.js +88 -0
- package/dist/models/SourceEnvelope.d.ts +33 -0
- package/dist/models/SourceEnvelope.js +49 -0
- package/dist/models/SourceRefreshResponse.d.ts +39 -0
- package/dist/models/SourceRefreshResponse.js +51 -0
- package/dist/models/Stats.d.ts +86 -0
- package/dist/models/Stats.js +70 -0
- package/dist/models/StatsGroups.d.ts +32 -0
- package/dist/models/StatsGroups.js +48 -0
- package/dist/models/StatsLocations.d.ts +38 -0
- package/dist/models/StatsLocations.js +50 -0
- package/dist/models/StatsMeetingTypes.d.ts +32 -0
- package/dist/models/StatsMeetingTypes.js +48 -0
- package/dist/models/StatsMeetings.d.ts +68 -0
- package/dist/models/StatsMeetings.js +58 -0
- package/dist/models/StatsProgramsBreakdownInner.d.ts +62 -0
- package/dist/models/StatsProgramsBreakdownInner.js +58 -0
- package/dist/models/StatsSources.d.ts +47 -0
- package/dist/models/StatsSources.js +53 -0
- package/dist/models/StatsSourcesTopByMeetingCountInner.d.ts +44 -0
- package/dist/models/StatsSourcesTopByMeetingCountInner.js +52 -0
- package/dist/models/StoreSourceValidationError.d.ts +23 -0
- package/dist/models/StoreSourceValidationError.js +57 -0
- package/dist/models/UpdateSourceRequest.d.ts +70 -0
- package/dist/models/UpdateSourceRequest.js +66 -0
- package/dist/models/ValidationError.d.ts +40 -0
- package/dist/models/ValidationError.js +50 -0
- package/dist/models/index.d.ts +36 -0
- package/dist/models/index.js +54 -0
- package/dist/runtime.d.ts +184 -0
- package/dist/runtime.js +365 -0
- package/docs/AdminApi.md +734 -0
- package/docs/AdminSource.md +77 -0
- package/docs/AuthError.md +34 -0
- package/docs/CatalogApi.md +270 -0
- package/docs/CreateSourceRequest.md +46 -0
- package/docs/CreateSourceResponse.md +38 -0
- package/docs/DedupCounters.md +53 -0
- package/docs/DedupStats.md +45 -0
- package/docs/DedupStatsLatestRun.md +41 -0
- package/docs/DedupStatsRecentRunsInner.md +39 -0
- package/docs/FeedValidationError.md +39 -0
- package/docs/IngestRun.md +57 -0
- package/docs/MapFeature.md +39 -0
- package/docs/MapFeatureCollection.md +39 -0
- package/docs/MapFeatureGeometry.md +37 -0
- package/docs/MapFeatureProperties.md +47 -0
- package/docs/MapMeeting.md +41 -0
- package/docs/Meeting.md +109 -0
- package/docs/MeetingPage.md +39 -0
- package/docs/MeetingPageLinks.md +41 -0
- package/docs/MeetingPageMeta.md +41 -0
- package/docs/MeetingType.md +42 -0
- package/docs/MeetingsApi.md +323 -0
- package/docs/MeetingsFilterError.md +39 -0
- package/docs/Program.md +38 -0
- package/docs/PublicSource.md +55 -0
- package/docs/SourceEnvelope.md +35 -0
- package/docs/SourceRefreshResponse.md +37 -0
- package/docs/SourcesApi.md +76 -0
- package/docs/Stats.md +51 -0
- package/docs/StatsGroups.md +35 -0
- package/docs/StatsLocations.md +37 -0
- package/docs/StatsMeetingTypes.md +35 -0
- package/docs/StatsMeetings.md +45 -0
- package/docs/StatsProgramsBreakdownInner.md +45 -0
- package/docs/StatsSources.md +39 -0
- package/docs/StatsSourcesTopByMeetingCountInner.md +39 -0
- package/docs/StoreSourceValidationError.md +41 -0
- package/docs/UpdateSourceRequest.md +44 -0
- package/docs/ValidationError.md +36 -0
- package/package.json +21 -0
- package/src/apis/AdminApi.ts +659 -0
- package/src/apis/CatalogApi.ts +220 -0
- package/src/apis/MeetingsApi.ts +305 -0
- package/src/apis/SourcesApi.ts +74 -0
- package/src/apis/index.ts +6 -0
- package/src/index.ts +5 -0
- package/src/models/AdminSource.ts +270 -0
- package/src/models/AuthError.ts +65 -0
- package/src/models/CreateSourceRequest.ts +126 -0
- package/src/models/CreateSourceResponse.ts +89 -0
- package/src/models/DedupCounters.ts +137 -0
- package/src/models/DedupStats.ts +127 -0
- package/src/models/DedupStatsLatestRun.ts +109 -0
- package/src/models/DedupStatsRecentRunsInner.ts +89 -0
- package/src/models/FeedValidationError.ts +94 -0
- package/src/models/IngestRun.ts +165 -0
- package/src/models/MapFeature.ts +96 -0
- package/src/models/MapFeatureCollection.ts +89 -0
- package/src/models/MapFeatureGeometry.ts +73 -0
- package/src/models/MapFeatureProperties.ts +121 -0
- package/src/models/MapMeeting.ts +89 -0
- package/src/models/Meeting.ts +383 -0
- package/src/models/MeetingPage.ts +103 -0
- package/src/models/MeetingPageLinks.ts +89 -0
- package/src/models/MeetingPageMeta.ts +89 -0
- package/src/models/MeetingType.ts +97 -0
- package/src/models/MeetingsFilterError.ts +81 -0
- package/src/models/Program.ts +81 -0
- package/src/models/PublicSource.ts +170 -0
- package/src/models/SourceEnvelope.ts +73 -0
- package/src/models/SourceRefreshResponse.ts +81 -0
- package/src/models/Stats.ts +172 -0
- package/src/models/StatsGroups.ts +65 -0
- package/src/models/StatsLocations.ts +73 -0
- package/src/models/StatsMeetingTypes.ts +65 -0
- package/src/models/StatsMeetings.ts +105 -0
- package/src/models/StatsProgramsBreakdownInner.ts +105 -0
- package/src/models/StatsSources.ts +89 -0
- package/src/models/StatsSourcesTopByMeetingCountInner.ts +81 -0
- package/src/models/StoreSourceValidationError.ts +76 -0
- package/src/models/UpdateSourceRequest.ts +116 -0
- package/src/models/ValidationError.ts +73 -0
- package/src/models/index.ts +38 -0
- package/src/runtime.ts +449 -0
- package/tsconfig.esm.json +7 -0
- package/tsconfig.json +16 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* C4R Aggregator API
|
|
5
|
+
* Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 1.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Check if a given object implements the MapMeeting interface.
|
|
16
|
+
*/
|
|
17
|
+
export function instanceOfMapMeeting(value) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
export function MapMeetingFromJSON(json) {
|
|
21
|
+
return MapMeetingFromJSONTyped(json, false);
|
|
22
|
+
}
|
|
23
|
+
export function MapMeetingFromJSONTyped(json, ignoreDiscriminator) {
|
|
24
|
+
if (json == null) {
|
|
25
|
+
return json;
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
'name': json['name'] == null ? undefined : json['name'],
|
|
29
|
+
'day': json['day'] == null ? undefined : json['day'],
|
|
30
|
+
'time': json['time'] == null ? undefined : json['time'],
|
|
31
|
+
'program': json['program'] == null ? undefined : json['program'],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function MapMeetingToJSON(json) {
|
|
35
|
+
return MapMeetingToJSONTyped(json, false);
|
|
36
|
+
}
|
|
37
|
+
export function MapMeetingToJSONTyped(value, ignoreDiscriminator = false) {
|
|
38
|
+
if (value == null) {
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
'name': value['name'],
|
|
43
|
+
'day': value['day'],
|
|
44
|
+
'time': value['time'],
|
|
45
|
+
'program': value['program'],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C4R Aggregator API
|
|
3
|
+
* Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Meeting Guide API-compliant meeting row. Location and group fields are denormalized for drop-in client compatibility. Adds non-spec `data_freshness_days`.
|
|
14
|
+
* @export
|
|
15
|
+
* @interface Meeting
|
|
16
|
+
*/
|
|
17
|
+
export interface Meeting {
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @type {number}
|
|
21
|
+
* @memberof Meeting
|
|
22
|
+
*/
|
|
23
|
+
id?: number;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @type {string}
|
|
27
|
+
* @memberof Meeting
|
|
28
|
+
*/
|
|
29
|
+
name?: string;
|
|
30
|
+
/**
|
|
31
|
+
*
|
|
32
|
+
* @type {string}
|
|
33
|
+
* @memberof Meeting
|
|
34
|
+
*/
|
|
35
|
+
slug?: string;
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @type {number}
|
|
39
|
+
* @memberof Meeting
|
|
40
|
+
*/
|
|
41
|
+
day?: number | null;
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* @type {string}
|
|
45
|
+
* @memberof Meeting
|
|
46
|
+
*/
|
|
47
|
+
time?: string | null;
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
* @type {string}
|
|
51
|
+
* @memberof Meeting
|
|
52
|
+
*/
|
|
53
|
+
endTime?: string | null;
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @type {string}
|
|
57
|
+
* @memberof Meeting
|
|
58
|
+
*/
|
|
59
|
+
timeFormatted?: string | null;
|
|
60
|
+
/**
|
|
61
|
+
*
|
|
62
|
+
* @type {Date}
|
|
63
|
+
* @memberof Meeting
|
|
64
|
+
*/
|
|
65
|
+
updated?: Date | null;
|
|
66
|
+
/**
|
|
67
|
+
*
|
|
68
|
+
* @type {Array<string>}
|
|
69
|
+
* @memberof Meeting
|
|
70
|
+
*/
|
|
71
|
+
types?: Array<string>;
|
|
72
|
+
/**
|
|
73
|
+
*
|
|
74
|
+
* @type {string}
|
|
75
|
+
* @memberof Meeting
|
|
76
|
+
*/
|
|
77
|
+
notes?: string | null;
|
|
78
|
+
/**
|
|
79
|
+
*
|
|
80
|
+
* @type {MeetingApproximateEnum}
|
|
81
|
+
* @memberof Meeting
|
|
82
|
+
*/
|
|
83
|
+
approximate?: MeetingApproximateEnum;
|
|
84
|
+
/**
|
|
85
|
+
*
|
|
86
|
+
* @type {MeetingAttendanceOptionEnum}
|
|
87
|
+
* @memberof Meeting
|
|
88
|
+
*/
|
|
89
|
+
attendanceOption?: MeetingAttendanceOptionEnum;
|
|
90
|
+
/**
|
|
91
|
+
*
|
|
92
|
+
* @type {string}
|
|
93
|
+
* @memberof Meeting
|
|
94
|
+
*/
|
|
95
|
+
conferenceUrl?: string | null;
|
|
96
|
+
/**
|
|
97
|
+
*
|
|
98
|
+
* @type {string}
|
|
99
|
+
* @memberof Meeting
|
|
100
|
+
*/
|
|
101
|
+
conferenceUrlNotes?: string | null;
|
|
102
|
+
/**
|
|
103
|
+
*
|
|
104
|
+
* @type {string}
|
|
105
|
+
* @memberof Meeting
|
|
106
|
+
*/
|
|
107
|
+
conferencePhone?: string | null;
|
|
108
|
+
/**
|
|
109
|
+
*
|
|
110
|
+
* @type {string}
|
|
111
|
+
* @memberof Meeting
|
|
112
|
+
*/
|
|
113
|
+
conferencePhoneNotes?: string | null;
|
|
114
|
+
/**
|
|
115
|
+
*
|
|
116
|
+
* @type {string}
|
|
117
|
+
* @memberof Meeting
|
|
118
|
+
*/
|
|
119
|
+
location?: string | null;
|
|
120
|
+
/**
|
|
121
|
+
*
|
|
122
|
+
* @type {string}
|
|
123
|
+
* @memberof Meeting
|
|
124
|
+
*/
|
|
125
|
+
locationNotes?: string | null;
|
|
126
|
+
/**
|
|
127
|
+
*
|
|
128
|
+
* @type {string}
|
|
129
|
+
* @memberof Meeting
|
|
130
|
+
*/
|
|
131
|
+
formattedAddress?: string | null;
|
|
132
|
+
/**
|
|
133
|
+
*
|
|
134
|
+
* @type {string}
|
|
135
|
+
* @memberof Meeting
|
|
136
|
+
*/
|
|
137
|
+
address?: string | null;
|
|
138
|
+
/**
|
|
139
|
+
*
|
|
140
|
+
* @type {string}
|
|
141
|
+
* @memberof Meeting
|
|
142
|
+
*/
|
|
143
|
+
city?: string | null;
|
|
144
|
+
/**
|
|
145
|
+
*
|
|
146
|
+
* @type {string}
|
|
147
|
+
* @memberof Meeting
|
|
148
|
+
*/
|
|
149
|
+
state?: string | null;
|
|
150
|
+
/**
|
|
151
|
+
*
|
|
152
|
+
* @type {string}
|
|
153
|
+
* @memberof Meeting
|
|
154
|
+
*/
|
|
155
|
+
postalCode?: string | null;
|
|
156
|
+
/**
|
|
157
|
+
*
|
|
158
|
+
* @type {string}
|
|
159
|
+
* @memberof Meeting
|
|
160
|
+
*/
|
|
161
|
+
country?: string | null;
|
|
162
|
+
/**
|
|
163
|
+
*
|
|
164
|
+
* @type {number}
|
|
165
|
+
* @memberof Meeting
|
|
166
|
+
*/
|
|
167
|
+
latitude?: number | null;
|
|
168
|
+
/**
|
|
169
|
+
*
|
|
170
|
+
* @type {number}
|
|
171
|
+
* @memberof Meeting
|
|
172
|
+
*/
|
|
173
|
+
longitude?: number | null;
|
|
174
|
+
/**
|
|
175
|
+
*
|
|
176
|
+
* @type {string}
|
|
177
|
+
* @memberof Meeting
|
|
178
|
+
*/
|
|
179
|
+
timezone?: string | null;
|
|
180
|
+
/**
|
|
181
|
+
*
|
|
182
|
+
* @type {string}
|
|
183
|
+
* @memberof Meeting
|
|
184
|
+
*/
|
|
185
|
+
region?: string | null;
|
|
186
|
+
/**
|
|
187
|
+
*
|
|
188
|
+
* @type {string}
|
|
189
|
+
* @memberof Meeting
|
|
190
|
+
*/
|
|
191
|
+
group?: string | null;
|
|
192
|
+
/**
|
|
193
|
+
*
|
|
194
|
+
* @type {string}
|
|
195
|
+
* @memberof Meeting
|
|
196
|
+
*/
|
|
197
|
+
district?: string | null;
|
|
198
|
+
/**
|
|
199
|
+
*
|
|
200
|
+
* @type {string}
|
|
201
|
+
* @memberof Meeting
|
|
202
|
+
*/
|
|
203
|
+
subDistrict?: string | null;
|
|
204
|
+
/**
|
|
205
|
+
*
|
|
206
|
+
* @type {string}
|
|
207
|
+
* @memberof Meeting
|
|
208
|
+
*/
|
|
209
|
+
website?: string | null;
|
|
210
|
+
/**
|
|
211
|
+
*
|
|
212
|
+
* @type {string}
|
|
213
|
+
* @memberof Meeting
|
|
214
|
+
*/
|
|
215
|
+
email?: string | null;
|
|
216
|
+
/**
|
|
217
|
+
*
|
|
218
|
+
* @type {string}
|
|
219
|
+
* @memberof Meeting
|
|
220
|
+
*/
|
|
221
|
+
phone?: string | null;
|
|
222
|
+
/**
|
|
223
|
+
*
|
|
224
|
+
* @type {string}
|
|
225
|
+
* @memberof Meeting
|
|
226
|
+
*/
|
|
227
|
+
venmo?: string | null;
|
|
228
|
+
/**
|
|
229
|
+
*
|
|
230
|
+
* @type {string}
|
|
231
|
+
* @memberof Meeting
|
|
232
|
+
*/
|
|
233
|
+
paypal?: string | null;
|
|
234
|
+
/**
|
|
235
|
+
*
|
|
236
|
+
* @type {string}
|
|
237
|
+
* @memberof Meeting
|
|
238
|
+
*/
|
|
239
|
+
square?: string | null;
|
|
240
|
+
/**
|
|
241
|
+
* Days since the meeting was last seen from an `active`-state source. Null if never seen from active.
|
|
242
|
+
* @type {number}
|
|
243
|
+
* @memberof Meeting
|
|
244
|
+
*/
|
|
245
|
+
dataFreshnessDays?: number | null;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* @export
|
|
249
|
+
*/
|
|
250
|
+
export declare const MeetingApproximateEnum: {
|
|
251
|
+
readonly Yes: "yes";
|
|
252
|
+
readonly No: "no";
|
|
253
|
+
};
|
|
254
|
+
export type MeetingApproximateEnum = typeof MeetingApproximateEnum[keyof typeof MeetingApproximateEnum];
|
|
255
|
+
/**
|
|
256
|
+
* @export
|
|
257
|
+
*/
|
|
258
|
+
export declare const MeetingAttendanceOptionEnum: {
|
|
259
|
+
readonly InPerson: "in_person";
|
|
260
|
+
readonly Online: "online";
|
|
261
|
+
readonly Hybrid: "hybrid";
|
|
262
|
+
readonly Inactive: "inactive";
|
|
263
|
+
};
|
|
264
|
+
export type MeetingAttendanceOptionEnum = typeof MeetingAttendanceOptionEnum[keyof typeof MeetingAttendanceOptionEnum];
|
|
265
|
+
/**
|
|
266
|
+
* Check if a given object implements the Meeting interface.
|
|
267
|
+
*/
|
|
268
|
+
export declare function instanceOfMeeting(value: object): value is Meeting;
|
|
269
|
+
export declare function MeetingFromJSON(json: any): Meeting;
|
|
270
|
+
export declare function MeetingFromJSONTyped(json: any, ignoreDiscriminator: boolean): Meeting;
|
|
271
|
+
export declare function MeetingToJSON(json: any): Meeting;
|
|
272
|
+
export declare function MeetingToJSONTyped(value?: Meeting | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* C4R Aggregator API
|
|
5
|
+
* Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 1.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* @export
|
|
16
|
+
*/
|
|
17
|
+
export const MeetingApproximateEnum = {
|
|
18
|
+
Yes: 'yes',
|
|
19
|
+
No: 'no'
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* @export
|
|
23
|
+
*/
|
|
24
|
+
export const MeetingAttendanceOptionEnum = {
|
|
25
|
+
InPerson: 'in_person',
|
|
26
|
+
Online: 'online',
|
|
27
|
+
Hybrid: 'hybrid',
|
|
28
|
+
Inactive: 'inactive'
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Check if a given object implements the Meeting interface.
|
|
32
|
+
*/
|
|
33
|
+
export function instanceOfMeeting(value) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
export function MeetingFromJSON(json) {
|
|
37
|
+
return MeetingFromJSONTyped(json, false);
|
|
38
|
+
}
|
|
39
|
+
export function MeetingFromJSONTyped(json, ignoreDiscriminator) {
|
|
40
|
+
if (json == null) {
|
|
41
|
+
return json;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
'id': json['id'] == null ? undefined : json['id'],
|
|
45
|
+
'name': json['name'] == null ? undefined : json['name'],
|
|
46
|
+
'slug': json['slug'] == null ? undefined : json['slug'],
|
|
47
|
+
'day': json['day'] == null ? undefined : json['day'],
|
|
48
|
+
'time': json['time'] == null ? undefined : json['time'],
|
|
49
|
+
'endTime': json['end_time'] == null ? undefined : json['end_time'],
|
|
50
|
+
'timeFormatted': json['time_formatted'] == null ? undefined : json['time_formatted'],
|
|
51
|
+
'updated': json['updated'] == null ? undefined : (new Date(json['updated'])),
|
|
52
|
+
'types': json['types'] == null ? undefined : json['types'],
|
|
53
|
+
'notes': json['notes'] == null ? undefined : json['notes'],
|
|
54
|
+
'approximate': json['approximate'] == null ? undefined : json['approximate'],
|
|
55
|
+
'attendanceOption': json['attendance_option'] == null ? undefined : json['attendance_option'],
|
|
56
|
+
'conferenceUrl': json['conference_url'] == null ? undefined : json['conference_url'],
|
|
57
|
+
'conferenceUrlNotes': json['conference_url_notes'] == null ? undefined : json['conference_url_notes'],
|
|
58
|
+
'conferencePhone': json['conference_phone'] == null ? undefined : json['conference_phone'],
|
|
59
|
+
'conferencePhoneNotes': json['conference_phone_notes'] == null ? undefined : json['conference_phone_notes'],
|
|
60
|
+
'location': json['location'] == null ? undefined : json['location'],
|
|
61
|
+
'locationNotes': json['location_notes'] == null ? undefined : json['location_notes'],
|
|
62
|
+
'formattedAddress': json['formatted_address'] == null ? undefined : json['formatted_address'],
|
|
63
|
+
'address': json['address'] == null ? undefined : json['address'],
|
|
64
|
+
'city': json['city'] == null ? undefined : json['city'],
|
|
65
|
+
'state': json['state'] == null ? undefined : json['state'],
|
|
66
|
+
'postalCode': json['postal_code'] == null ? undefined : json['postal_code'],
|
|
67
|
+
'country': json['country'] == null ? undefined : json['country'],
|
|
68
|
+
'latitude': json['latitude'] == null ? undefined : json['latitude'],
|
|
69
|
+
'longitude': json['longitude'] == null ? undefined : json['longitude'],
|
|
70
|
+
'timezone': json['timezone'] == null ? undefined : json['timezone'],
|
|
71
|
+
'region': json['region'] == null ? undefined : json['region'],
|
|
72
|
+
'group': json['group'] == null ? undefined : json['group'],
|
|
73
|
+
'district': json['district'] == null ? undefined : json['district'],
|
|
74
|
+
'subDistrict': json['sub_district'] == null ? undefined : json['sub_district'],
|
|
75
|
+
'website': json['website'] == null ? undefined : json['website'],
|
|
76
|
+
'email': json['email'] == null ? undefined : json['email'],
|
|
77
|
+
'phone': json['phone'] == null ? undefined : json['phone'],
|
|
78
|
+
'venmo': json['venmo'] == null ? undefined : json['venmo'],
|
|
79
|
+
'paypal': json['paypal'] == null ? undefined : json['paypal'],
|
|
80
|
+
'square': json['square'] == null ? undefined : json['square'],
|
|
81
|
+
'dataFreshnessDays': json['data_freshness_days'] == null ? undefined : json['data_freshness_days'],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export function MeetingToJSON(json) {
|
|
85
|
+
return MeetingToJSONTyped(json, false);
|
|
86
|
+
}
|
|
87
|
+
export function MeetingToJSONTyped(value, ignoreDiscriminator = false) {
|
|
88
|
+
if (value == null) {
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
'id': value['id'],
|
|
93
|
+
'name': value['name'],
|
|
94
|
+
'slug': value['slug'],
|
|
95
|
+
'day': value['day'],
|
|
96
|
+
'time': value['time'],
|
|
97
|
+
'end_time': value['endTime'],
|
|
98
|
+
'time_formatted': value['timeFormatted'],
|
|
99
|
+
'updated': value['updated'] == null ? value['updated'] : value['updated'].toISOString(),
|
|
100
|
+
'types': value['types'],
|
|
101
|
+
'notes': value['notes'],
|
|
102
|
+
'approximate': value['approximate'],
|
|
103
|
+
'attendance_option': value['attendanceOption'],
|
|
104
|
+
'conference_url': value['conferenceUrl'],
|
|
105
|
+
'conference_url_notes': value['conferenceUrlNotes'],
|
|
106
|
+
'conference_phone': value['conferencePhone'],
|
|
107
|
+
'conference_phone_notes': value['conferencePhoneNotes'],
|
|
108
|
+
'location': value['location'],
|
|
109
|
+
'location_notes': value['locationNotes'],
|
|
110
|
+
'formatted_address': value['formattedAddress'],
|
|
111
|
+
'address': value['address'],
|
|
112
|
+
'city': value['city'],
|
|
113
|
+
'state': value['state'],
|
|
114
|
+
'postal_code': value['postalCode'],
|
|
115
|
+
'country': value['country'],
|
|
116
|
+
'latitude': value['latitude'],
|
|
117
|
+
'longitude': value['longitude'],
|
|
118
|
+
'timezone': value['timezone'],
|
|
119
|
+
'region': value['region'],
|
|
120
|
+
'group': value['group'],
|
|
121
|
+
'district': value['district'],
|
|
122
|
+
'sub_district': value['subDistrict'],
|
|
123
|
+
'website': value['website'],
|
|
124
|
+
'email': value['email'],
|
|
125
|
+
'phone': value['phone'],
|
|
126
|
+
'venmo': value['venmo'],
|
|
127
|
+
'paypal': value['paypal'],
|
|
128
|
+
'square': value['square'],
|
|
129
|
+
'data_freshness_days': value['dataFreshnessDays'],
|
|
130
|
+
};
|
|
131
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C4R Aggregator API
|
|
3
|
+
* Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
import type { MeetingPageLinks } from './MeetingPageLinks';
|
|
13
|
+
import type { Meeting } from './Meeting';
|
|
14
|
+
import type { MeetingPageMeta } from './MeetingPageMeta';
|
|
15
|
+
/**
|
|
16
|
+
* Cursor-paginated envelope returned by `GET /meetings`
|
|
17
|
+
* @export
|
|
18
|
+
* @interface MeetingPage
|
|
19
|
+
*/
|
|
20
|
+
export interface MeetingPage {
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @type {Array<Meeting>}
|
|
24
|
+
* @memberof MeetingPage
|
|
25
|
+
*/
|
|
26
|
+
data?: Array<Meeting>;
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
* @type {MeetingPageLinks}
|
|
30
|
+
* @memberof MeetingPage
|
|
31
|
+
*/
|
|
32
|
+
links?: MeetingPageLinks;
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
* @type {MeetingPageMeta}
|
|
36
|
+
* @memberof MeetingPage
|
|
37
|
+
*/
|
|
38
|
+
meta?: MeetingPageMeta;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Check if a given object implements the MeetingPage interface.
|
|
42
|
+
*/
|
|
43
|
+
export declare function instanceOfMeetingPage(value: object): value is MeetingPage;
|
|
44
|
+
export declare function MeetingPageFromJSON(json: any): MeetingPage;
|
|
45
|
+
export declare function MeetingPageFromJSONTyped(json: any, ignoreDiscriminator: boolean): MeetingPage;
|
|
46
|
+
export declare function MeetingPageToJSON(json: any): MeetingPage;
|
|
47
|
+
export declare function MeetingPageToJSONTyped(value?: MeetingPage | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* C4R Aggregator API
|
|
5
|
+
* Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 1.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
import { MeetingPageLinksFromJSON, MeetingPageLinksToJSON, } from './MeetingPageLinks';
|
|
15
|
+
import { MeetingFromJSON, MeetingToJSON, } from './Meeting';
|
|
16
|
+
import { MeetingPageMetaFromJSON, MeetingPageMetaToJSON, } from './MeetingPageMeta';
|
|
17
|
+
/**
|
|
18
|
+
* Check if a given object implements the MeetingPage interface.
|
|
19
|
+
*/
|
|
20
|
+
export function instanceOfMeetingPage(value) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
export function MeetingPageFromJSON(json) {
|
|
24
|
+
return MeetingPageFromJSONTyped(json, false);
|
|
25
|
+
}
|
|
26
|
+
export function MeetingPageFromJSONTyped(json, ignoreDiscriminator) {
|
|
27
|
+
if (json == null) {
|
|
28
|
+
return json;
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
'data': json['data'] == null ? undefined : (json['data'].map(MeetingFromJSON)),
|
|
32
|
+
'links': json['links'] == null ? undefined : MeetingPageLinksFromJSON(json['links']),
|
|
33
|
+
'meta': json['meta'] == null ? undefined : MeetingPageMetaFromJSON(json['meta']),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function MeetingPageToJSON(json) {
|
|
37
|
+
return MeetingPageToJSONTyped(json, false);
|
|
38
|
+
}
|
|
39
|
+
export function MeetingPageToJSONTyped(value, ignoreDiscriminator = false) {
|
|
40
|
+
if (value == null) {
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
'data': value['data'] == null ? undefined : (value['data'].map(MeetingToJSON)),
|
|
45
|
+
'links': MeetingPageLinksToJSON(value['links']),
|
|
46
|
+
'meta': MeetingPageMetaToJSON(value['meta']),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C4R Aggregator API
|
|
3
|
+
* Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Pagination cursor links for MeetingPage.
|
|
14
|
+
* @export
|
|
15
|
+
* @interface MeetingPageLinks
|
|
16
|
+
*/
|
|
17
|
+
export interface MeetingPageLinks {
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @type {string}
|
|
21
|
+
* @memberof MeetingPageLinks
|
|
22
|
+
*/
|
|
23
|
+
first?: string | null;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @type {string}
|
|
27
|
+
* @memberof MeetingPageLinks
|
|
28
|
+
*/
|
|
29
|
+
last?: string | null;
|
|
30
|
+
/**
|
|
31
|
+
*
|
|
32
|
+
* @type {string}
|
|
33
|
+
* @memberof MeetingPageLinks
|
|
34
|
+
*/
|
|
35
|
+
prev?: string | null;
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @type {string}
|
|
39
|
+
* @memberof MeetingPageLinks
|
|
40
|
+
*/
|
|
41
|
+
next?: string | null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if a given object implements the MeetingPageLinks interface.
|
|
45
|
+
*/
|
|
46
|
+
export declare function instanceOfMeetingPageLinks(value: object): value is MeetingPageLinks;
|
|
47
|
+
export declare function MeetingPageLinksFromJSON(json: any): MeetingPageLinks;
|
|
48
|
+
export declare function MeetingPageLinksFromJSONTyped(json: any, ignoreDiscriminator: boolean): MeetingPageLinks;
|
|
49
|
+
export declare function MeetingPageLinksToJSON(json: any): MeetingPageLinks;
|
|
50
|
+
export declare function MeetingPageLinksToJSONTyped(value?: MeetingPageLinks | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* C4R Aggregator API
|
|
5
|
+
* Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 1.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Check if a given object implements the MeetingPageLinks interface.
|
|
16
|
+
*/
|
|
17
|
+
export function instanceOfMeetingPageLinks(value) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
export function MeetingPageLinksFromJSON(json) {
|
|
21
|
+
return MeetingPageLinksFromJSONTyped(json, false);
|
|
22
|
+
}
|
|
23
|
+
export function MeetingPageLinksFromJSONTyped(json, ignoreDiscriminator) {
|
|
24
|
+
if (json == null) {
|
|
25
|
+
return json;
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
'first': json['first'] == null ? undefined : json['first'],
|
|
29
|
+
'last': json['last'] == null ? undefined : json['last'],
|
|
30
|
+
'prev': json['prev'] == null ? undefined : json['prev'],
|
|
31
|
+
'next': json['next'] == null ? undefined : json['next'],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function MeetingPageLinksToJSON(json) {
|
|
35
|
+
return MeetingPageLinksToJSONTyped(json, false);
|
|
36
|
+
}
|
|
37
|
+
export function MeetingPageLinksToJSONTyped(value, ignoreDiscriminator = false) {
|
|
38
|
+
if (value == null) {
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
'first': value['first'],
|
|
43
|
+
'last': value['last'],
|
|
44
|
+
'prev': value['prev'],
|
|
45
|
+
'next': value['next'],
|
|
46
|
+
};
|
|
47
|
+
}
|