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,89 @@
|
|
|
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
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
import type { MapFeature } from './MapFeature';
|
|
17
|
+
import {
|
|
18
|
+
MapFeatureFromJSON,
|
|
19
|
+
MapFeatureFromJSONTyped,
|
|
20
|
+
MapFeatureToJSON,
|
|
21
|
+
MapFeatureToJSONTyped,
|
|
22
|
+
} from './MapFeature';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* GeoJSON FeatureCollection of all geocoded locations with at least one active meeting. Cached 5 minutes.
|
|
26
|
+
* @export
|
|
27
|
+
* @interface MapFeatureCollection
|
|
28
|
+
*/
|
|
29
|
+
export interface MapFeatureCollection {
|
|
30
|
+
/**
|
|
31
|
+
*
|
|
32
|
+
* @type {string}
|
|
33
|
+
* @memberof MapFeatureCollection
|
|
34
|
+
*/
|
|
35
|
+
type?: string;
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @type {Date}
|
|
39
|
+
* @memberof MapFeatureCollection
|
|
40
|
+
*/
|
|
41
|
+
generatedAt?: Date;
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* @type {Array<MapFeature>}
|
|
45
|
+
* @memberof MapFeatureCollection
|
|
46
|
+
*/
|
|
47
|
+
features?: Array<MapFeature>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Check if a given object implements the MapFeatureCollection interface.
|
|
52
|
+
*/
|
|
53
|
+
export function instanceOfMapFeatureCollection(value: object): value is MapFeatureCollection {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function MapFeatureCollectionFromJSON(json: any): MapFeatureCollection {
|
|
58
|
+
return MapFeatureCollectionFromJSONTyped(json, false);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function MapFeatureCollectionFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapFeatureCollection {
|
|
62
|
+
if (json == null) {
|
|
63
|
+
return json;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
|
|
67
|
+
'type': json['type'] == null ? undefined : json['type'],
|
|
68
|
+
'generatedAt': json['generated_at'] == null ? undefined : (new Date(json['generated_at'])),
|
|
69
|
+
'features': json['features'] == null ? undefined : ((json['features'] as Array<any>).map(MapFeatureFromJSON)),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function MapFeatureCollectionToJSON(json: any): MapFeatureCollection {
|
|
74
|
+
return MapFeatureCollectionToJSONTyped(json, false);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function MapFeatureCollectionToJSONTyped(value?: MapFeatureCollection | null, ignoreDiscriminator: boolean = false): any {
|
|
78
|
+
if (value == null) {
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return {
|
|
83
|
+
|
|
84
|
+
'type': value['type'],
|
|
85
|
+
'generated_at': value['generatedAt'] == null ? value['generatedAt'] : value['generatedAt'].toISOString(),
|
|
86
|
+
'features': value['features'] == null ? undefined : ((value['features'] as Array<any>).map(MapFeatureToJSON)),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
/**
|
|
17
|
+
* GeoJSON point geometry for a MapFeature.
|
|
18
|
+
* @export
|
|
19
|
+
* @interface MapFeatureGeometry
|
|
20
|
+
*/
|
|
21
|
+
export interface MapFeatureGeometry {
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @type {string}
|
|
25
|
+
* @memberof MapFeatureGeometry
|
|
26
|
+
*/
|
|
27
|
+
type?: string;
|
|
28
|
+
/**
|
|
29
|
+
* [longitude, latitude] — GeoJSON order.
|
|
30
|
+
* @type {Array<number>}
|
|
31
|
+
* @memberof MapFeatureGeometry
|
|
32
|
+
*/
|
|
33
|
+
coordinates?: Array<number>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Check if a given object implements the MapFeatureGeometry interface.
|
|
38
|
+
*/
|
|
39
|
+
export function instanceOfMapFeatureGeometry(value: object): value is MapFeatureGeometry {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function MapFeatureGeometryFromJSON(json: any): MapFeatureGeometry {
|
|
44
|
+
return MapFeatureGeometryFromJSONTyped(json, false);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function MapFeatureGeometryFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapFeatureGeometry {
|
|
48
|
+
if (json == null) {
|
|
49
|
+
return json;
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
|
|
53
|
+
'type': json['type'] == null ? undefined : json['type'],
|
|
54
|
+
'coordinates': json['coordinates'] == null ? undefined : json['coordinates'],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function MapFeatureGeometryToJSON(json: any): MapFeatureGeometry {
|
|
59
|
+
return MapFeatureGeometryToJSONTyped(json, false);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function MapFeatureGeometryToJSONTyped(value?: MapFeatureGeometry | null, ignoreDiscriminator: boolean = false): any {
|
|
63
|
+
if (value == null) {
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return {
|
|
68
|
+
|
|
69
|
+
'type': value['type'],
|
|
70
|
+
'coordinates': value['coordinates'],
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
@@ -0,0 +1,121 @@
|
|
|
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
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
import type { MapMeeting } from './MapMeeting';
|
|
17
|
+
import {
|
|
18
|
+
MapMeetingFromJSON,
|
|
19
|
+
MapMeetingFromJSONTyped,
|
|
20
|
+
MapMeetingToJSON,
|
|
21
|
+
MapMeetingToJSONTyped,
|
|
22
|
+
} from './MapMeeting';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Per-location properties on a MapFeature — name/city/state plus the list of active meetings there.
|
|
26
|
+
* @export
|
|
27
|
+
* @interface MapFeatureProperties
|
|
28
|
+
*/
|
|
29
|
+
export interface MapFeatureProperties {
|
|
30
|
+
/**
|
|
31
|
+
* Location id.
|
|
32
|
+
* @type {number}
|
|
33
|
+
* @memberof MapFeatureProperties
|
|
34
|
+
*/
|
|
35
|
+
id?: number;
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @type {string}
|
|
39
|
+
* @memberof MapFeatureProperties
|
|
40
|
+
*/
|
|
41
|
+
name?: string | null;
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* @type {string}
|
|
45
|
+
* @memberof MapFeatureProperties
|
|
46
|
+
*/
|
|
47
|
+
city?: string | null;
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
* @type {string}
|
|
51
|
+
* @memberof MapFeatureProperties
|
|
52
|
+
*/
|
|
53
|
+
state?: string | null;
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @type {number}
|
|
57
|
+
* @memberof MapFeatureProperties
|
|
58
|
+
*/
|
|
59
|
+
meetingCount?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Sorted unique program codes hosted at this location — clients can use this to overlay/toggle per-program views without scanning the meetings list.
|
|
62
|
+
* @type {Array<string>}
|
|
63
|
+
* @memberof MapFeatureProperties
|
|
64
|
+
*/
|
|
65
|
+
programs?: Array<string>;
|
|
66
|
+
/**
|
|
67
|
+
*
|
|
68
|
+
* @type {Array<MapMeeting>}
|
|
69
|
+
* @memberof MapFeatureProperties
|
|
70
|
+
*/
|
|
71
|
+
meetings?: Array<MapMeeting>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Check if a given object implements the MapFeatureProperties interface.
|
|
76
|
+
*/
|
|
77
|
+
export function instanceOfMapFeatureProperties(value: object): value is MapFeatureProperties {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function MapFeaturePropertiesFromJSON(json: any): MapFeatureProperties {
|
|
82
|
+
return MapFeaturePropertiesFromJSONTyped(json, false);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function MapFeaturePropertiesFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapFeatureProperties {
|
|
86
|
+
if (json == null) {
|
|
87
|
+
return json;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
|
|
91
|
+
'id': json['id'] == null ? undefined : json['id'],
|
|
92
|
+
'name': json['name'] == null ? undefined : json['name'],
|
|
93
|
+
'city': json['city'] == null ? undefined : json['city'],
|
|
94
|
+
'state': json['state'] == null ? undefined : json['state'],
|
|
95
|
+
'meetingCount': json['meeting_count'] == null ? undefined : json['meeting_count'],
|
|
96
|
+
'programs': json['programs'] == null ? undefined : json['programs'],
|
|
97
|
+
'meetings': json['meetings'] == null ? undefined : ((json['meetings'] as Array<any>).map(MapMeetingFromJSON)),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function MapFeaturePropertiesToJSON(json: any): MapFeatureProperties {
|
|
102
|
+
return MapFeaturePropertiesToJSONTyped(json, false);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export function MapFeaturePropertiesToJSONTyped(value?: MapFeatureProperties | null, ignoreDiscriminator: boolean = false): any {
|
|
106
|
+
if (value == null) {
|
|
107
|
+
return value;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return {
|
|
111
|
+
|
|
112
|
+
'id': value['id'],
|
|
113
|
+
'name': value['name'],
|
|
114
|
+
'city': value['city'],
|
|
115
|
+
'state': value['state'],
|
|
116
|
+
'meeting_count': value['meetingCount'],
|
|
117
|
+
'programs': value['programs'],
|
|
118
|
+
'meetings': value['meetings'] == null ? undefined : ((value['meetings'] as Array<any>).map(MapMeetingToJSON)),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
@@ -0,0 +1,89 @@
|
|
|
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
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
/**
|
|
17
|
+
* Minimal meeting shape embedded in a MapFeature.properties.meetings array.
|
|
18
|
+
* @export
|
|
19
|
+
* @interface MapMeeting
|
|
20
|
+
*/
|
|
21
|
+
export interface MapMeeting {
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @type {string}
|
|
25
|
+
* @memberof MapMeeting
|
|
26
|
+
*/
|
|
27
|
+
name?: string | null;
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @type {number}
|
|
31
|
+
* @memberof MapMeeting
|
|
32
|
+
*/
|
|
33
|
+
day?: number | null;
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* @type {string}
|
|
37
|
+
* @memberof MapMeeting
|
|
38
|
+
*/
|
|
39
|
+
time?: string | null;
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* @type {string}
|
|
43
|
+
* @memberof MapMeeting
|
|
44
|
+
*/
|
|
45
|
+
program?: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Check if a given object implements the MapMeeting interface.
|
|
50
|
+
*/
|
|
51
|
+
export function instanceOfMapMeeting(value: object): value is MapMeeting {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function MapMeetingFromJSON(json: any): MapMeeting {
|
|
56
|
+
return MapMeetingFromJSONTyped(json, false);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function MapMeetingFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapMeeting {
|
|
60
|
+
if (json == null) {
|
|
61
|
+
return json;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
|
|
65
|
+
'name': json['name'] == null ? undefined : json['name'],
|
|
66
|
+
'day': json['day'] == null ? undefined : json['day'],
|
|
67
|
+
'time': json['time'] == null ? undefined : json['time'],
|
|
68
|
+
'program': json['program'] == null ? undefined : json['program'],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export function MapMeetingToJSON(json: any): MapMeeting {
|
|
73
|
+
return MapMeetingToJSONTyped(json, false);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function MapMeetingToJSONTyped(value?: MapMeeting | null, ignoreDiscriminator: boolean = false): any {
|
|
77
|
+
if (value == null) {
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
|
|
83
|
+
'name': value['name'],
|
|
84
|
+
'day': value['day'],
|
|
85
|
+
'time': value['time'],
|
|
86
|
+
'program': value['program'],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|