mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-11 19:04:35 +00:00
Amend examples (#211)
This commit is contained in:
@@ -1,202 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -1,3 +0,0 @@
|
||||
# Micro Go Client
|
||||
|
||||
This directory contains the Go clients for micro services
|
||||
@@ -27,7 +27,6 @@ import (
|
||||
"github.com/micro/services/clients/go/sms"
|
||||
"github.com/micro/services/clients/go/stock"
|
||||
"github.com/micro/services/clients/go/stream"
|
||||
"github.com/micro/services/clients/go/sunnah"
|
||||
"github.com/micro/services/clients/go/thumbnail"
|
||||
"github.com/micro/services/clients/go/time"
|
||||
"github.com/micro/services/clients/go/twitter"
|
||||
@@ -66,7 +65,6 @@ func NewClient(token string) *Client {
|
||||
SmsService: sms.NewSmsService(token),
|
||||
StockService: stock.NewStockService(token),
|
||||
StreamService: stream.NewStreamService(token),
|
||||
SunnahService: sunnah.NewSunnahService(token),
|
||||
ThumbnailService: thumbnail.NewThumbnailService(token),
|
||||
TimeService: time.NewTimeService(token),
|
||||
TwitterService: twitter.NewTwitterService(token),
|
||||
@@ -105,7 +103,6 @@ type Client struct {
|
||||
SmsService *sms.SmsService
|
||||
StockService *stock.StockService
|
||||
StreamService *stream.StreamService
|
||||
SunnahService *sunnah.SunnahService
|
||||
ThumbnailService *thumbnail.ThumbnailService
|
||||
TimeService *time.TimeService
|
||||
TwitterService *twitter.TwitterService
|
||||
|
||||
@@ -87,7 +87,7 @@ type Result struct {
|
||||
// The associated arabic text
|
||||
Text string `json:"text"`
|
||||
// The related translations to the text
|
||||
Translations []Translation `json:"translations"`
|
||||
Translations []Interpretation `json:"translations"`
|
||||
// The unique verse id across the Quran
|
||||
VerseId int32 `json:"verseId"`
|
||||
// The verse key e.g 1:1
|
||||
|
||||
@@ -1,183 +0,0 @@
|
||||
package sunnah
|
||||
|
||||
import (
|
||||
"github.com/m3o/m3o-go/client"
|
||||
)
|
||||
|
||||
func NewSunnahService(token string) *SunnahService {
|
||||
return &SunnahService{
|
||||
client: client.NewClient(&client.Options{
|
||||
Token: token,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
type SunnahService struct {
|
||||
client *client.Client
|
||||
}
|
||||
|
||||
// Get a list of books from within a collection. A book can contain many chapters
|
||||
// each with its own hadiths.
|
||||
func (t *SunnahService) Books(request *BooksRequest) (*BooksResponse, error) {
|
||||
rsp := &BooksResponse{}
|
||||
return rsp, t.client.Call("sunnah", "Books", request, rsp)
|
||||
}
|
||||
|
||||
// Get all the chapters of a given book within a collection.
|
||||
func (t *SunnahService) Chapters(request *ChaptersRequest) (*ChaptersResponse, error) {
|
||||
rsp := &ChaptersResponse{}
|
||||
return rsp, t.client.Call("sunnah", "Chapters", request, rsp)
|
||||
}
|
||||
|
||||
// Get a list of available collections. A collection is
|
||||
// a compilation of hadiths collected and written by an author.
|
||||
func (t *SunnahService) Collections(request *CollectionsRequest) (*CollectionsResponse, error) {
|
||||
rsp := &CollectionsResponse{}
|
||||
return rsp, t.client.Call("sunnah", "Collections", request, rsp)
|
||||
}
|
||||
|
||||
// Hadiths returns a list of hadiths and their corresponding text for a
|
||||
// given book within a collection.
|
||||
func (t *SunnahService) Hadiths(request *HadithsRequest) (*HadithsResponse, error) {
|
||||
rsp := &HadithsResponse{}
|
||||
return rsp, t.client.Call("sunnah", "Hadiths", request, rsp)
|
||||
}
|
||||
|
||||
type Book struct {
|
||||
// arabic name of the book
|
||||
ArabicName string `json:"arabicName"`
|
||||
// number of hadiths in the book
|
||||
Hadiths int32 `json:"hadiths"`
|
||||
// number of the book e.g 1
|
||||
Id int32 `json:"id"`
|
||||
// name of the book
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
type BooksRequest struct {
|
||||
// Name of the collection
|
||||
Collection string `json:"collection"`
|
||||
// Limit the number of books returned
|
||||
Limit int32 `json:"limit"`
|
||||
// The page in the pagination
|
||||
Page int32 `json:"page"`
|
||||
}
|
||||
|
||||
type BooksResponse struct {
|
||||
// A list of books
|
||||
Books []Book `json:"books"`
|
||||
// Name of the collection
|
||||
Collection string `json:"collection"`
|
||||
// The limit specified
|
||||
Limit int32 `json:"limit"`
|
||||
// The page requested
|
||||
Page int32 `json:"page"`
|
||||
// The total overall books
|
||||
Total int32 `json:"total"`
|
||||
}
|
||||
|
||||
type Chapter struct {
|
||||
// arabic title
|
||||
ArabicTitle string `json:"arabicTitle"`
|
||||
// the book number
|
||||
Book int32 `json:"book"`
|
||||
// the chapter id e.g 1
|
||||
Id int32 `json:"id"`
|
||||
// the chapter key e.g 1.00
|
||||
Key string `json:"key"`
|
||||
// title of the chapter
|
||||
Title string `json:"title"`
|
||||
}
|
||||
|
||||
type ChaptersRequest struct {
|
||||
// number of the book
|
||||
Book int32 `json:"book"`
|
||||
// name of the collection
|
||||
Collection string `json:"collection"`
|
||||
// Limit the number of chapters returned
|
||||
Limit int32 `json:"limit"`
|
||||
// The page in the pagination
|
||||
Page int32 `json:"page"`
|
||||
}
|
||||
|
||||
type ChaptersResponse struct {
|
||||
// number of the book
|
||||
Book int32 `json:"book"`
|
||||
// The chapters of the book
|
||||
Chapters []Chapter `json:"chapters"`
|
||||
// name of the collection
|
||||
Collection string `json:"collection"`
|
||||
// Limit the number of chapters returned
|
||||
Limit int32 `json:"limit"`
|
||||
// The page in the pagination
|
||||
Page int32 `json:"page"`
|
||||
// Total chapters in the book
|
||||
Total int32 `json:"total"`
|
||||
}
|
||||
|
||||
type Collection struct {
|
||||
// Arabic title if available
|
||||
ArabicTitle string `json:"arabicTitle"`
|
||||
// Total hadiths in the collection
|
||||
Hadiths int32 `json:"hadiths"`
|
||||
// Name of the collection e.g bukhari
|
||||
Name string `json:"name"`
|
||||
// An introduction explaining the collection
|
||||
Summary string `json:"summary"`
|
||||
// Title of the collection e.g Sahih al-Bukhari
|
||||
Title string `json:"title"`
|
||||
}
|
||||
|
||||
type CollectionsRequest struct {
|
||||
// Number of collections to limit to
|
||||
Limit int32 `json:"limit"`
|
||||
// The page in the pagination
|
||||
Page int32 `json:"page"`
|
||||
}
|
||||
|
||||
type CollectionsResponse struct {
|
||||
Collections []Collection `json:"collections"`
|
||||
}
|
||||
|
||||
type Hadith struct {
|
||||
// the arabic chapter title
|
||||
ArabicChapterTitle string `json:"arabicChapterTitle"`
|
||||
// the arabic text
|
||||
ArabicText string `json:"arabicText"`
|
||||
// the chapter id
|
||||
Chapter int32 `json:"chapter"`
|
||||
// the chapter key
|
||||
ChapterKey string `json:"chapterKey"`
|
||||
// the chapter title
|
||||
ChapterTitle string `json:"chapterTitle"`
|
||||
// hadith id
|
||||
Id int32 `json:"id"`
|
||||
// hadith text
|
||||
Text string `json:"text"`
|
||||
}
|
||||
|
||||
type HadithsRequest struct {
|
||||
// number of the book
|
||||
Book int32 `json:"book"`
|
||||
// name of the collection
|
||||
Collection string `json:"collection"`
|
||||
// Limit the number of hadiths
|
||||
Limit int32 `json:"limit"`
|
||||
// The page in the pagination
|
||||
Page int32 `json:"page"`
|
||||
}
|
||||
|
||||
type HadithsResponse struct {
|
||||
// number of the book
|
||||
Book int32 `json:"book"`
|
||||
// name of the collection
|
||||
Collection string `json:"collection"`
|
||||
// The hadiths of the book
|
||||
Hadiths []Hadith `json:"hadiths"`
|
||||
// Limit the number of hadiths returned
|
||||
Limit int32 `json:"limit"`
|
||||
// The page in the pagination
|
||||
Page int32 `json:"page"`
|
||||
// Total hadiths in the book
|
||||
Total int32 `json:"total"`
|
||||
}
|
||||
@@ -24,7 +24,6 @@ import * as sentiment from "./sentiment";
|
||||
import * as sms from "./sms";
|
||||
import * as stock from "./stock";
|
||||
import * as stream from "./stream";
|
||||
import * as sunnah from "./sunnah";
|
||||
import * as thumbnail from "./thumbnail";
|
||||
import * as time from "./time";
|
||||
import * as twitter from "./twitter";
|
||||
@@ -60,7 +59,6 @@ export class Client {
|
||||
this.smsService = new sms.SmsService(token);
|
||||
this.stockService = new stock.StockService(token);
|
||||
this.streamService = new stream.StreamService(token);
|
||||
this.sunnahService = new sunnah.SunnahService(token);
|
||||
this.thumbnailService = new thumbnail.ThumbnailService(token);
|
||||
this.timeService = new time.TimeService(token);
|
||||
this.twitterService = new twitter.TwitterService(token);
|
||||
@@ -95,7 +93,6 @@ export class Client {
|
||||
smsService: sms.SmsService;
|
||||
stockService: stock.StockService;
|
||||
streamService: stream.StreamService;
|
||||
sunnahService: sunnah.SunnahService;
|
||||
thumbnailService: thumbnail.ThumbnailService;
|
||||
timeService: time.TimeService;
|
||||
twitterService: twitter.TwitterService;
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
"./sms": "./dist/sms/index.js",
|
||||
"./stock": "./dist/stock/index.js",
|
||||
"./stream": "./dist/stream/index.js",
|
||||
"./sunnah": "./dist/sunnah/index.js",
|
||||
"./test": "./dist/test/index.js",
|
||||
"./thumbnail": "./dist/thumbnail/index.js",
|
||||
"./time": "./dist/time/index.js",
|
||||
@@ -59,5 +58,5 @@
|
||||
},
|
||||
"type": "module",
|
||||
"types": "dist/index.d.ts",
|
||||
"version": "1.0.520"
|
||||
"version": "1.0.521"
|
||||
}
|
||||
@@ -149,7 +149,7 @@ export interface Verse {
|
||||
// The unique id of the verse in the whole book
|
||||
id?: number;
|
||||
// The interpretations of the verse
|
||||
interpretations?: Translation[];
|
||||
interpretations?: Interpretation[];
|
||||
// The key of this verse (chapter:verse) e.g 1:1
|
||||
key?: string;
|
||||
// The verse number in this chapter
|
||||
@@ -161,7 +161,7 @@ export interface Verse {
|
||||
// The basic translation of the verse
|
||||
translatedText?: string;
|
||||
// The alternative translations for the verse
|
||||
translations?: Translation[];
|
||||
translations?: Interpretation[];
|
||||
// The phonetic transliteration from arabic
|
||||
transliteration?: string;
|
||||
// The individual words within the verse (Ayah)
|
||||
|
||||
@@ -1,183 +0,0 @@
|
||||
import * as m3o from "@m3o/m3o-node";
|
||||
|
||||
export class SunnahService {
|
||||
private client: m3o.Client;
|
||||
|
||||
constructor(token: string) {
|
||||
this.client = new m3o.Client({ token: token });
|
||||
}
|
||||
// Get a list of books from within a collection. A book can contain many chapters
|
||||
// each with its own hadiths.
|
||||
books(request: BooksRequest): Promise<BooksResponse> {
|
||||
return this.client.call(
|
||||
"sunnah",
|
||||
"Books",
|
||||
request
|
||||
) as Promise<BooksResponse>;
|
||||
}
|
||||
// Get all the chapters of a given book within a collection.
|
||||
chapters(request: ChaptersRequest): Promise<ChaptersResponse> {
|
||||
return this.client.call(
|
||||
"sunnah",
|
||||
"Chapters",
|
||||
request
|
||||
) as Promise<ChaptersResponse>;
|
||||
}
|
||||
// Get a list of available collections. A collection is
|
||||
// a compilation of hadiths collected and written by an author.
|
||||
collections(request: CollectionsRequest): Promise<CollectionsResponse> {
|
||||
return this.client.call(
|
||||
"sunnah",
|
||||
"Collections",
|
||||
request
|
||||
) as Promise<CollectionsResponse>;
|
||||
}
|
||||
// Hadiths returns a list of hadiths and their corresponding text for a
|
||||
// given book within a collection.
|
||||
hadiths(request: HadithsRequest): Promise<HadithsResponse> {
|
||||
return this.client.call(
|
||||
"sunnah",
|
||||
"Hadiths",
|
||||
request
|
||||
) as Promise<HadithsResponse>;
|
||||
}
|
||||
}
|
||||
|
||||
export interface Book {
|
||||
// arabic name of the book
|
||||
arabicName?: string;
|
||||
// number of hadiths in the book
|
||||
hadiths?: number;
|
||||
// number of the book e.g 1
|
||||
id?: number;
|
||||
// name of the book
|
||||
name?: string;
|
||||
}
|
||||
|
||||
export interface BooksRequest {
|
||||
// Name of the collection
|
||||
collection?: string;
|
||||
// Limit the number of books returned
|
||||
limit?: number;
|
||||
// The page in the pagination
|
||||
page?: number;
|
||||
}
|
||||
|
||||
export interface BooksResponse {
|
||||
// A list of books
|
||||
books?: Book[];
|
||||
// Name of the collection
|
||||
collection?: string;
|
||||
// The limit specified
|
||||
limit?: number;
|
||||
// The page requested
|
||||
page?: number;
|
||||
// The total overall books
|
||||
total?: number;
|
||||
}
|
||||
|
||||
export interface Chapter {
|
||||
// arabic title
|
||||
arabicTitle?: string;
|
||||
// the book number
|
||||
book?: number;
|
||||
// the chapter id e.g 1
|
||||
id?: number;
|
||||
// the chapter key e.g 1.00
|
||||
key?: string;
|
||||
// title of the chapter
|
||||
title?: string;
|
||||
}
|
||||
|
||||
export interface ChaptersRequest {
|
||||
// number of the book
|
||||
book?: number;
|
||||
// name of the collection
|
||||
collection?: string;
|
||||
// Limit the number of chapters returned
|
||||
limit?: number;
|
||||
// The page in the pagination
|
||||
page?: number;
|
||||
}
|
||||
|
||||
export interface ChaptersResponse {
|
||||
// number of the book
|
||||
book?: number;
|
||||
// The chapters of the book
|
||||
chapters?: Chapter[];
|
||||
// name of the collection
|
||||
collection?: string;
|
||||
// Limit the number of chapters returned
|
||||
limit?: number;
|
||||
// The page in the pagination
|
||||
page?: number;
|
||||
// Total chapters in the book
|
||||
total?: number;
|
||||
}
|
||||
|
||||
export interface Collection {
|
||||
// Arabic title if available
|
||||
arabicTitle?: string;
|
||||
// Total hadiths in the collection
|
||||
hadiths?: number;
|
||||
// Name of the collection e.g bukhari
|
||||
name?: string;
|
||||
// An introduction explaining the collection
|
||||
summary?: string;
|
||||
// Title of the collection e.g Sahih al-Bukhari
|
||||
title?: string;
|
||||
}
|
||||
|
||||
export interface CollectionsRequest {
|
||||
// Number of collections to limit to
|
||||
limit?: number;
|
||||
// The page in the pagination
|
||||
page?: number;
|
||||
}
|
||||
|
||||
export interface CollectionsResponse {
|
||||
collections?: Collection[];
|
||||
}
|
||||
|
||||
export interface Hadith {
|
||||
// the arabic chapter title
|
||||
arabicChapterTitle?: string;
|
||||
// the arabic text
|
||||
arabicText?: string;
|
||||
// the chapter id
|
||||
chapter?: number;
|
||||
// the chapter key
|
||||
chapterKey?: string;
|
||||
// the chapter title
|
||||
chapterTitle?: string;
|
||||
// hadith id
|
||||
id?: number;
|
||||
// hadith text
|
||||
text?: string;
|
||||
}
|
||||
|
||||
export interface HadithsRequest {
|
||||
// number of the book
|
||||
book?: number;
|
||||
// name of the collection
|
||||
collection?: string;
|
||||
// Limit the number of hadiths
|
||||
limit?: number;
|
||||
// The page in the pagination
|
||||
page?: number;
|
||||
}
|
||||
|
||||
export interface HadithsResponse {
|
||||
// number of the book
|
||||
book?: number;
|
||||
// name of the collection
|
||||
collection?: string;
|
||||
// The hadiths of the book
|
||||
hadiths?: Hadith[];
|
||||
// Limit the number of hadiths returned
|
||||
limit?: number;
|
||||
// The page in the pagination
|
||||
page?: number;
|
||||
// Total hadiths in the book
|
||||
total?: number;
|
||||
}
|
||||
@@ -264,7 +264,9 @@ func main() {
|
||||
fmt.Println(string(exam), err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if len(service.Spec.Paths) != len(m) {
|
||||
fmt.Printf("Service has %v endpoints, but only %v examples\n", len(service.Spec.Paths), len(m))
|
||||
}
|
||||
for endpoint, examples := range m {
|
||||
for _, example := range examples {
|
||||
title := regexp.MustCompile("[^a-zA-Z0-9]+").ReplaceAllString(strcase.LowerCamelCase(strings.Replace(example.Title, " ", "_", -1)), "")
|
||||
|
||||
@@ -1,45 +1,76 @@
|
||||
|
||||
{
|
||||
"price": [{
|
||||
"title": "Get cryptocurrency price",
|
||||
"description": "Returns the last traded price of a currency",
|
||||
"request": {
|
||||
"symbol": "BTCUSD"
|
||||
},
|
||||
"response": {
|
||||
"symbol": "BTCUSD",
|
||||
"price": 34682.74
|
||||
}
|
||||
}],
|
||||
"quote": [{
|
||||
"title": "Get a cryptocurrency quote",
|
||||
"description": "Returns the last quote for a currency including bid and ask prices",
|
||||
"request": {
|
||||
"symbol": "BTCUSD"
|
||||
},
|
||||
"response": {
|
||||
"symbol": "BTCUSD",
|
||||
"ask_price": 34679.87,
|
||||
"bid_price": 34679.86,
|
||||
"ask_size": 0.595412,
|
||||
"bid_size": 0.122235,
|
||||
"timestamp": "2021-06-20T17:25:50.772Z"
|
||||
}
|
||||
}],
|
||||
"history": [{
|
||||
"title": "Get previous close",
|
||||
"description": "Returns the history for the previous close",
|
||||
"request": {
|
||||
"symbol": "BTCUSD"
|
||||
},
|
||||
"response": {
|
||||
"symbol": "btcusd",
|
||||
"open": 35483.72,
|
||||
"close": 34470.8,
|
||||
"high": 35922,
|
||||
"low": 33336,
|
||||
"volume": 66202.264956,
|
||||
"date": "2021-06-20"
|
||||
}
|
||||
}]
|
||||
"news": [
|
||||
{
|
||||
"title": "Get cryptocurrency news",
|
||||
"request": {
|
||||
"symbol": "BTCUSD"
|
||||
},
|
||||
"response": {
|
||||
"articles": [
|
||||
{
|
||||
"title": "$80 Billion Brazilian Investment Bank Launches Bitcoin and Crypto Trading App",
|
||||
"description": "Brazilian investment bank BTG Pactual becomes first large financial institution in Brazil to enable customers to make direct investments in Bitcoin.",
|
||||
"url": "https://bitcoinmagazine.com/culture/80-billion-brazilian-investment-bank-launches-bitcoin-and-crypto-trading-app",
|
||||
"date": "2021-09-21T13:13:01+00:00",
|
||||
"source": "Bitcoin Magazine"
|
||||
},
|
||||
{
|
||||
"title": "Bitcoin at $40,000, Ethereum at $2,800 Very Important Levels to Watch Now: Mike Novogratz",
|
||||
"description": "Head of Galaxy Digital Mike Novogratz explains what levels are important for BTC and Ether now that the Chinese real-estate monster crisis is hitting the crypto market",
|
||||
"url": "https://u.today/bitcoin-at-40000-ethereum-at-2800-very-important-levels-to-watch-now-mike-novogratz",
|
||||
"date": "2021-09-21T12:51:00+00:00",
|
||||
"source": "UToday"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"price": [
|
||||
{
|
||||
"title": "Get cryptocurrency price",
|
||||
"description": "Returns the last traded price of a currency",
|
||||
"request": {
|
||||
"symbol": "BTCUSD"
|
||||
},
|
||||
"response": {
|
||||
"symbol": "BTCUSD",
|
||||
"price": 34682.74
|
||||
}
|
||||
}
|
||||
],
|
||||
"quote": [
|
||||
{
|
||||
"title": "Get a cryptocurrency quote",
|
||||
"description": "Returns the last quote for a currency including bid and ask prices",
|
||||
"request": {
|
||||
"symbol": "BTCUSD"
|
||||
},
|
||||
"response": {
|
||||
"symbol": "BTCUSD",
|
||||
"ask_price": 34679.87,
|
||||
"bid_price": 34679.86,
|
||||
"ask_size": 0.595412,
|
||||
"bid_size": 0.122235,
|
||||
"timestamp": "2021-06-20T17:25:50.772Z"
|
||||
}
|
||||
}
|
||||
],
|
||||
"history": [
|
||||
{
|
||||
"title": "Get previous close",
|
||||
"description": "Returns the history for the previous close",
|
||||
"request": {
|
||||
"symbol": "BTCUSD"
|
||||
},
|
||||
"response": {
|
||||
"symbol": "btcusd",
|
||||
"open": 35483.72,
|
||||
"close": 34470.8,
|
||||
"high": 35922,
|
||||
"low": 33336,
|
||||
"volume": 66202.264956,
|
||||
"date": "2021-06-20"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,86 +1,159 @@
|
||||
|
||||
{
|
||||
"codes": [{
|
||||
"title": "Get supported codes",
|
||||
"description": "Returns the supported currency codes (example response)",
|
||||
"run_check": true,
|
||||
"request": {},
|
||||
"response": {
|
||||
"codes": [
|
||||
{
|
||||
"name": "AED",
|
||||
"currency": "UAE Dirham"
|
||||
},
|
||||
{
|
||||
"name": "AFN",
|
||||
"currency": "Afghan Afghani"
|
||||
},
|
||||
{
|
||||
"name": "ALL",
|
||||
"currency": "Albanian Lek"
|
||||
},
|
||||
{
|
||||
"name": "AMD",
|
||||
"currency": "Armenian Dram"
|
||||
},
|
||||
{
|
||||
"name": "ANG",
|
||||
"currency": "Netherlands Antillian Guilder"
|
||||
}
|
||||
]
|
||||
"codes": [
|
||||
{
|
||||
"title": "Get supported codes",
|
||||
"description": "Returns the supported currency codes (example response)",
|
||||
"run_check": true,
|
||||
"request": {},
|
||||
"response": {
|
||||
"codes": [
|
||||
{
|
||||
"name": "AED",
|
||||
"currency": "UAE Dirham"
|
||||
},
|
||||
{
|
||||
"name": "AFN",
|
||||
"currency": "Afghan Afghani"
|
||||
},
|
||||
{
|
||||
"name": "ALL",
|
||||
"currency": "Albanian Lek"
|
||||
},
|
||||
{
|
||||
"name": "AMD",
|
||||
"currency": "Armenian Dram"
|
||||
},
|
||||
{
|
||||
"name": "ANG",
|
||||
"currency": "Netherlands Antillian Guilder"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"rates": [
|
||||
{
|
||||
"title": "Get rates for USD",
|
||||
"description": "Returns the rates for USD (sample response)",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"code": "USD"
|
||||
},
|
||||
"response": {
|
||||
"code": "usd",
|
||||
"rates": {
|
||||
"AED": 3.6725,
|
||||
"AFN": 79.0514,
|
||||
"ALL": 101.6054,
|
||||
"AMD": 515.68,
|
||||
"ANG": 1.79,
|
||||
"AOA": 646.8737,
|
||||
"ARS": 95.3433,
|
||||
"AUD": 1.2998,
|
||||
"AWG": 1.79,
|
||||
"AZN": 1.7013
|
||||
}
|
||||
}],
|
||||
"rates": [{
|
||||
"title": "Get rates for USD",
|
||||
"description": "Returns the rates for USD (sample response)",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"code": "USD"
|
||||
},
|
||||
"response": {
|
||||
"code": "usd",
|
||||
"rates": {
|
||||
"AED": 3.6725,
|
||||
"AFN": 79.0514,
|
||||
"ALL": 101.6054,
|
||||
"AMD": 515.68,
|
||||
"ANG": 1.79,
|
||||
"AOA": 646.8737,
|
||||
"ARS": 95.3433,
|
||||
"AUD": 1.2998,
|
||||
"AWG": 1.79,
|
||||
"AZN": 1.7013
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"convert": [
|
||||
{
|
||||
"title": "Convert USD to GBP",
|
||||
"description": "Convert from USD to GBP",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"from": "USD",
|
||||
"to": "GBP"
|
||||
},
|
||||
"response": {
|
||||
"from": "USD",
|
||||
"to": "GBP",
|
||||
"rate": 0.7104
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Convert $10 USD to GBP",
|
||||
"description": "Convert $10 from USD to GBP",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"from": "USD",
|
||||
"to": "GBP",
|
||||
"amount": 10.0
|
||||
},
|
||||
"response": {
|
||||
"from": "USD",
|
||||
"to": "GBP",
|
||||
"rate": 0.7104,
|
||||
"amount": 7.104
|
||||
}
|
||||
}
|
||||
],
|
||||
"history": [
|
||||
{
|
||||
"title": "Historic rates for a currency",
|
||||
"description": "Date is in format YYYY-MM-DD",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"code": "USD",
|
||||
"date": "2021-05-30"
|
||||
},
|
||||
"response": {
|
||||
"code": "USD",
|
||||
"date": "2020-05-30",
|
||||
"rates": {
|
||||
"AED": 3.672,
|
||||
"ARS": 68.3238,
|
||||
"AUD": 1.5017,
|
||||
"BGN": 1.7573,
|
||||
"BRL": 5.372,
|
||||
"BSD": 1,
|
||||
"CAD": 1.3758,
|
||||
"CHF": 0.9625,
|
||||
"CLP": 810.6932,
|
||||
"CNY": 7.1408,
|
||||
"COP": 3711.2273,
|
||||
"CZK": 24.2592,
|
||||
"DKK": 6.7076,
|
||||
"DOP": 55.3539,
|
||||
"EGP": 15.8108,
|
||||
"EUR": 0.9004,
|
||||
"FJD": 2.2202,
|
||||
"GBP": 0.8108,
|
||||
"GTQ": 7.6924,
|
||||
"HKD": 7.753,
|
||||
"HRK": 6.8175,
|
||||
"HUF": 313.7167,
|
||||
"IDR": 14536.6684,
|
||||
"ILS": 3.5082,
|
||||
"INR": 75.5508,
|
||||
"ISK": 135.7104,
|
||||
"JPY": 107.4223,
|
||||
"KRW": 1236.3642,
|
||||
"KZT": 412.3586,
|
||||
"MXN": 22.1514,
|
||||
"MYR": 4.3465,
|
||||
"NOK": 9.7236,
|
||||
"NZD": 1.61,
|
||||
"PAB": 1,
|
||||
"PEN": 3.4361,
|
||||
"PHP": 50.5076,
|
||||
"PKR": 160.0922,
|
||||
"PLN": 4.0015,
|
||||
"PYG": 6803.9167,
|
||||
"RON": 4.361,
|
||||
"RUB": 70.561,
|
||||
"SAR": 3.7548,
|
||||
"SEK": 9.4421,
|
||||
"SGD": 1.4125,
|
||||
"THB": 31.8255,
|
||||
"TRY": 6.8228,
|
||||
"TWD": 30.0096,
|
||||
"UAH": 26.8391,
|
||||
"USD": 1,
|
||||
"UYU": 43.0401,
|
||||
"ZAR": 17.5029
|
||||
}
|
||||
}],
|
||||
"convert": [{
|
||||
"title": "Convert USD to GBP",
|
||||
"description": "Convert from USD to GBP",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"from": "USD",
|
||||
"to": "GBP"
|
||||
},
|
||||
"response": {
|
||||
"from": "USD",
|
||||
"to": "GBP",
|
||||
"rate": 0.7104
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Convert $10 USD to GBP",
|
||||
"description": "Convert $10 from USD to GBP",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"from": "USD",
|
||||
"to": "GBP",
|
||||
"amount": 10.0
|
||||
},
|
||||
"response": {
|
||||
"from": "USD",
|
||||
"to": "GBP",
|
||||
"rate": 0.7104,
|
||||
"amount": 7.104
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
curl "https://api.m3o.com/v1/sunnah/Books" \
|
||||
curl "https://api.m3o.com/v1/crypto/News" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"collection": "bukhari"
|
||||
"symbol": "BTCUSD"
|
||||
}'
|
||||
16
examples/crypto/news/go/getCryptocurrencyNews.go
Executable file
16
examples/crypto/news/go/getCryptocurrencyNews.go
Executable file
@@ -0,0 +1,16 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/crypto"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Get news related to a currency
|
||||
func GetCryptocurrencyNews() {
|
||||
cryptoService := crypto.NewCryptoService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := cryptoService.News(&crypto.NewsRequest{
|
||||
Symbol: "BTCUSD",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
12
examples/crypto/news/node/getCryptocurrencyNews.js
Executable file
12
examples/crypto/news/node/getCryptocurrencyNews.js
Executable file
@@ -0,0 +1,12 @@
|
||||
import * as crypto from "m3o/crypto";
|
||||
|
||||
// Get news related to a currency
|
||||
async function GetCryptocurrencyNews() {
|
||||
let cryptoService = new crypto.CryptoService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await cryptoService.news({
|
||||
symbol: "BTCUSD",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await GetCryptocurrencyNews();
|
||||
7
examples/currency/history/curl/historicRatesForACurrency.sh
Executable file
7
examples/currency/history/curl/historicRatesForACurrency.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
curl "https://api.m3o.com/v1/currency/History" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"code": "USD",
|
||||
"date": "2021-05-30"
|
||||
}'
|
||||
17
examples/currency/history/go/historicRatesForACurrency.go
Executable file
17
examples/currency/history/go/historicRatesForACurrency.go
Executable file
@@ -0,0 +1,17 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/currency"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Returns the historic rates for a currency on a given date
|
||||
func HistoricRatesForAcurrency() {
|
||||
currencyService := currency.NewCurrencyService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := currencyService.History(¤cy.HistoryRequest{
|
||||
Code: "USD",
|
||||
Date: "2021-05-30",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
15
examples/currency/history/node/historicRatesForACurrency.js
Executable file
15
examples/currency/history/node/historicRatesForACurrency.js
Executable file
@@ -0,0 +1,15 @@
|
||||
import * as currency from "m3o/currency";
|
||||
|
||||
// Returns the historic rates for a currency on a given date
|
||||
async function HistoricRatesForAcurrency() {
|
||||
let currencyService = new currency.CurrencyService(
|
||||
process.env.MICRO_API_TOKEN
|
||||
);
|
||||
let rsp = await currencyService.history({
|
||||
code: "USD",
|
||||
date: "2021-05-30",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await HistoricRatesForAcurrency();
|
||||
@@ -1,7 +1,6 @@
|
||||
curl "https://api.m3o.com/v1/sunnah/Hadiths" \
|
||||
curl "https://api.m3o.com/v1/helloworld/Stream" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"book": 1,
|
||||
"collection": "bukhari"
|
||||
"name": "not supported"
|
||||
}'
|
||||
@@ -0,0 +1,16 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/helloworld"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Stream returns a stream of "Hello $name" responses
|
||||
func StreamsAreCurrentlyTemporarilyNotSupportedInClients() {
|
||||
helloworldService := helloworld.NewHelloworldService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := helloworldService.Stream(&helloworld.StreamRequest{
|
||||
Name: "not supported",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import * as helloworld from "m3o/helloworld";
|
||||
|
||||
// Stream returns a stream of "Hello $name" responses
|
||||
async function StreamsAreCurrentlyTemporarilyNotSupportedInClients() {
|
||||
let helloworldService = new helloworld.HelloworldService(
|
||||
process.env.MICRO_API_TOKEN
|
||||
);
|
||||
let rsp = await helloworldService.stream({
|
||||
name: "not supported",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await StreamsAreCurrentlyTemporarilyNotSupportedInClients();
|
||||
@@ -1,4 +1,4 @@
|
||||
curl "https://api.m3o.com/v1/sunnah/Collections" \
|
||||
curl "https://api.m3o.com/v1/id/Types" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{}'
|
||||
14
examples/id/types/go/listTheTypesOfIdsAvailable.go
Executable file
14
examples/id/types/go/listTheTypesOfIdsAvailable.go
Executable file
@@ -0,0 +1,14 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/id"
|
||||
"os"
|
||||
)
|
||||
|
||||
// List the types of IDs available. No query params needed.
|
||||
func ListTheTypesOfIdsAvailable() {
|
||||
idService := id.NewIdService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := idService.Types(&id.TypesRequest{})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
10
examples/id/types/node/listTheTypesOfIdsAvailable.js
Executable file
10
examples/id/types/node/listTheTypesOfIdsAvailable.js
Executable file
@@ -0,0 +1,10 @@
|
||||
import * as id from "m3o/id";
|
||||
|
||||
// List the types of IDs available. No query params needed.
|
||||
async function ListTheTypesOfIdsAvailable() {
|
||||
let idService = new id.IdService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await idService.types({});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await ListTheTypesOfIdsAvailable();
|
||||
@@ -1,17 +0,0 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/sunnah"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Get a list of books from within a collection. A book can contain many chapters
|
||||
// each with its own hadiths.
|
||||
func GetTheBooksWithinAcollection() {
|
||||
sunnahService := sunnah.NewSunnahService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := sunnahService.Books(&sunnah.BooksRequest{
|
||||
Collection: "bukhari",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
import * as sunnah from "m3o/sunnah";
|
||||
|
||||
// Get a list of books from within a collection. A book can contain many chapters
|
||||
// each with its own hadiths.
|
||||
async function GetTheBooksWithinAcollection() {
|
||||
let sunnahService = new sunnah.SunnahService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await sunnahService.books({
|
||||
collection: "bukhari",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await GetTheBooksWithinAcollection();
|
||||
@@ -1,17 +0,0 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/sunnah"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Get all the chapters of a given book within a collection.
|
||||
func ListTheChaptersInAbook() {
|
||||
sunnahService := sunnah.NewSunnahService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := sunnahService.Chapters(&sunnah.ChaptersRequest{
|
||||
Book: 1,
|
||||
Collection: "bukhari",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
import * as sunnah from "m3o/sunnah";
|
||||
|
||||
// Get all the chapters of a given book within a collection.
|
||||
async function ListTheChaptersInAbook() {
|
||||
let sunnahService = new sunnah.SunnahService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await sunnahService.chapters({
|
||||
book: 1,
|
||||
collection: "bukhari",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await ListTheChaptersInAbook();
|
||||
@@ -1,15 +0,0 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/sunnah"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Get a list of available collections. A collection is
|
||||
// a compilation of hadiths collected and written by an author.
|
||||
func ListAvailableCollections() {
|
||||
sunnahService := sunnah.NewSunnahService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := sunnahService.Collections(&sunnah.CollectionsRequest{})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
import * as sunnah from "m3o/sunnah";
|
||||
|
||||
// Get a list of available collections. A collection is
|
||||
// a compilation of hadiths collected and written by an author.
|
||||
async function ListAvailableCollections() {
|
||||
let sunnahService = new sunnah.SunnahService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await sunnahService.collections({});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await ListAvailableCollections();
|
||||
@@ -1,18 +0,0 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/sunnah"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Hadiths returns a list of hadiths and their corresponding text for a
|
||||
// given book within a collection.
|
||||
func ListTheHadithsInAbook() {
|
||||
sunnahService := sunnah.NewSunnahService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := sunnahService.Hadiths(&sunnah.HadithsRequest{
|
||||
Book: 1,
|
||||
Collection: "bukhari",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
import * as sunnah from "m3o/sunnah";
|
||||
|
||||
// Hadiths returns a list of hadiths and their corresponding text for a
|
||||
// given book within a collection.
|
||||
async function ListTheHadithsInAbook() {
|
||||
let sunnahService = new sunnah.SunnahService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await sunnahService.hadiths({
|
||||
book: 1,
|
||||
collection: "bukhari",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await ListTheHadithsInAbook();
|
||||
@@ -1,7 +1,6 @@
|
||||
curl "https://api.m3o.com/v1/sunnah/Chapters" \
|
||||
curl "https://api.m3o.com/v1/twitter/Search" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"book": 1,
|
||||
"collection": "bukhari"
|
||||
"query": "cats"
|
||||
}'
|
||||
16
examples/twitter/search/go/searchForTweets.go
Executable file
16
examples/twitter/search/go/searchForTweets.go
Executable file
@@ -0,0 +1,16 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/twitter"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Search for tweets with a simple query
|
||||
func SearchForTweets() {
|
||||
twitterService := twitter.NewTwitterService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := twitterService.Search(&twitter.SearchRequest{
|
||||
Query: "cats",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
12
examples/twitter/search/node/searchForTweets.js
Executable file
12
examples/twitter/search/node/searchForTweets.js
Executable file
@@ -0,0 +1,12 @@
|
||||
import * as twitter from "m3o/twitter";
|
||||
|
||||
// Search for tweets with a simple query
|
||||
async function SearchForTweets() {
|
||||
let twitterService = new twitter.TwitterService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await twitterService.search({
|
||||
query: "cats",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await SearchForTweets();
|
||||
4
examples/twitter/trends/curl/getTheCurrentGlobalTrendingTopics.sh
Executable file
4
examples/twitter/trends/curl/getTheCurrentGlobalTrendingTopics.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
curl "https://api.m3o.com/v1/twitter/Trends" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{}'
|
||||
14
examples/twitter/trends/go/getTheCurrentGlobalTrendingTopics.go
Executable file
14
examples/twitter/trends/go/getTheCurrentGlobalTrendingTopics.go
Executable file
@@ -0,0 +1,14 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/twitter"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Get the current global trending topics
|
||||
func GetTheCurrentGlobalTrendingTopics() {
|
||||
twitterService := twitter.NewTwitterService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := twitterService.Trends(&twitter.TrendsRequest{})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
10
examples/twitter/trends/node/getTheCurrentGlobalTrendingTopics.js
Executable file
10
examples/twitter/trends/node/getTheCurrentGlobalTrendingTopics.js
Executable file
@@ -0,0 +1,10 @@
|
||||
import * as twitter from "m3o/twitter";
|
||||
|
||||
// Get the current global trending topics
|
||||
async function GetTheCurrentGlobalTrendingTopics() {
|
||||
let twitterService = new twitter.TwitterService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await twitterService.trends({});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await GetTheCurrentGlobalTrendingTopics();
|
||||
6
examples/twitter/user/curl/getAUsersTwitterProfile.sh
Executable file
6
examples/twitter/user/curl/getAUsersTwitterProfile.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
curl "https://api.m3o.com/v1/twitter/User" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"username": "crufter"
|
||||
}'
|
||||
16
examples/twitter/user/go/getAUsersTwitterProfile.go
Executable file
16
examples/twitter/user/go/getAUsersTwitterProfile.go
Executable file
@@ -0,0 +1,16 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/twitter"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Get a user's twitter profile
|
||||
func GetAusersTwitterProfile() {
|
||||
twitterService := twitter.NewTwitterService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := twitterService.User(&twitter.UserRequest{
|
||||
Username: "crufter",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
12
examples/twitter/user/node/getAUsersTwitterProfile.js
Executable file
12
examples/twitter/user/node/getAUsersTwitterProfile.js
Executable file
@@ -0,0 +1,12 @@
|
||||
import * as twitter from "m3o/twitter";
|
||||
|
||||
// Get a user's twitter profile
|
||||
async function GetAusersTwitterProfile() {
|
||||
let twitterService = new twitter.TwitterService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await twitterService.user({
|
||||
username: "crufter",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await GetAusersTwitterProfile();
|
||||
6
examples/user/readSession/curl/readASessionByTheSessionId.sh
Executable file
6
examples/user/readSession/curl/readASessionByTheSessionId.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
curl "https://api.m3o.com/v1/user/ReadSession" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"sessionId": "sds34s34s34-s34s34-s43s43s34-s4s34s"
|
||||
}'
|
||||
16
examples/user/readSession/go/readASessionByTheSessionId.go
Executable file
16
examples/user/readSession/go/readASessionByTheSessionId.go
Executable file
@@ -0,0 +1,16 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/user"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Read a session by the session id. In the event it has expired or is not found and error is returned.
|
||||
func ReadAsessionByTheSessionId() {
|
||||
userService := user.NewUserService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := userService.ReadSession(&user.ReadSessionRequest{
|
||||
SessionId: "sds34s34s34-s34s34-s43s43s34-s4s34s",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
12
examples/user/readSession/node/readASessionByTheSessionId.js
Executable file
12
examples/user/readSession/node/readASessionByTheSessionId.js
Executable file
@@ -0,0 +1,12 @@
|
||||
import * as user from "m3o/user";
|
||||
|
||||
// Read a session by the session id. In the event it has expired or is not found and error is returned.
|
||||
async function ReadAsessionByTheSessionId() {
|
||||
let userService = new user.UserService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await userService.readSession({
|
||||
sessionId: "sds34s34s34-s34s34-s43s43s34-s4s34s",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await ReadAsessionByTheSessionId();
|
||||
7
examples/user/update/curl/updateAnAccount.sh
Executable file
7
examples/user/update/curl/updateAnAccount.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
curl "https://api.m3o.com/v1/user/Update" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"email": "joeotheremail@example.com",
|
||||
"id": "usrid-1"
|
||||
}'
|
||||
17
examples/user/update/go/updateAnAccount.go
Executable file
17
examples/user/update/go/updateAnAccount.go
Executable file
@@ -0,0 +1,17 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/user"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Update the account username or email
|
||||
func UpdateAnAccount() {
|
||||
userService := user.NewUserService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := userService.Update(&user.UpdateRequest{
|
||||
Email: "joeotheremail@example.com",
|
||||
Id: "usrid-1",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
13
examples/user/update/node/updateAnAccount.js
Executable file
13
examples/user/update/node/updateAnAccount.js
Executable file
@@ -0,0 +1,13 @@
|
||||
import * as user from "m3o/user";
|
||||
|
||||
// Update the account username or email
|
||||
async function UpdateAnAccount() {
|
||||
let userService = new user.UserService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await userService.update({
|
||||
email: "joeotheremail@example.com",
|
||||
id: "usrid-1",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await UpdateAnAccount();
|
||||
9
examples/user/updatePassword/curl/updateTheAccountPassword.sh
Executable file
9
examples/user/updatePassword/curl/updateTheAccountPassword.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
curl "https://api.m3o.com/v1/user/UpdatePassword" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"confirmPassword": "myEvenMoreSecretPass123",
|
||||
"id": "usrid-1",
|
||||
"newPassword": "myEvenMoreSecretPass123",
|
||||
"oldPassword": "mySecretPass123"
|
||||
}'
|
||||
18
examples/user/updatePassword/go/updateTheAccountPassword.go
Executable file
18
examples/user/updatePassword/go/updateTheAccountPassword.go
Executable file
@@ -0,0 +1,18 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/user"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Update the account password
|
||||
func UpdateTheAccountPassword() {
|
||||
userService := user.NewUserService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := userService.UpdatePassword(&user.UpdatePasswordRequest{
|
||||
ConfirmPassword: "myEvenMoreSecretPass123",
|
||||
NewPassword: "myEvenMoreSecretPass123",
|
||||
OldPassword: "mySecretPass123",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
15
examples/user/updatePassword/node/updateTheAccountPassword.js
Executable file
15
examples/user/updatePassword/node/updateTheAccountPassword.js
Executable file
@@ -0,0 +1,15 @@
|
||||
import * as user from "m3o/user";
|
||||
|
||||
// Update the account password
|
||||
async function UpdateTheAccountPassword() {
|
||||
let userService = new user.UserService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await userService.updatePassword({
|
||||
confirmPassword: "myEvenMoreSecretPass123",
|
||||
id: "usrid-1",
|
||||
newPassword: "myEvenMoreSecretPass123",
|
||||
oldPassword: "mySecretPass123",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await UpdateTheAccountPassword();
|
||||
6
examples/user/verifyEmail/curl/verifyEmail.sh
Executable file
6
examples/user/verifyEmail/curl/verifyEmail.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
curl "https://api.m3o.com/v1/user/VerifyEmail" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"token": "t2323t232t"
|
||||
}'
|
||||
16
examples/user/verifyEmail/go/verifyEmail.go
Executable file
16
examples/user/verifyEmail/go/verifyEmail.go
Executable file
@@ -0,0 +1,16 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/user"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Verify the email address of an account from a token sent in an email to the user.
|
||||
func VerifyEmail() {
|
||||
userService := user.NewUserService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := userService.VerifyEmail(&user.VerifyEmailRequest{
|
||||
Token: "t2323t232t",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
12
examples/user/verifyEmail/node/verifyEmail.js
Executable file
12
examples/user/verifyEmail/node/verifyEmail.js
Executable file
@@ -0,0 +1,12 @@
|
||||
import * as user from "m3o/user";
|
||||
|
||||
// Verify the email address of an account from a token sent in an email to the user.
|
||||
async function VerifyEmail() {
|
||||
let userService = new user.UserService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await userService.verifyEmail({
|
||||
token: "t2323t232t",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await VerifyEmail();
|
||||
7
examples/weather/forecast/curl/forecaseWeather.sh
Executable file
7
examples/weather/forecast/curl/forecaseWeather.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
curl "https://api.m3o.com/v1/weather/Forecast" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $MICRO_API_TOKEN" \
|
||||
-d '{
|
||||
"days": 2,
|
||||
"location": "London"
|
||||
}'
|
||||
17
examples/weather/forecast/go/forecaseWeather.go
Executable file
17
examples/weather/forecast/go/forecaseWeather.go
Executable file
@@ -0,0 +1,17 @@
|
||||
package example
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/micro/services/clients/go/weather"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Get the weather forecast for the next 1-10 days
|
||||
func ForecaseWeather() {
|
||||
weatherService := weather.NewWeatherService(os.Getenv("MICRO_API_TOKEN"))
|
||||
rsp, err := weatherService.Forecast(&weather.ForecastRequest{
|
||||
Days: 2,
|
||||
Location: "London",
|
||||
})
|
||||
fmt.Println(rsp, err)
|
||||
}
|
||||
13
examples/weather/forecast/node/forecaseWeather.js
Executable file
13
examples/weather/forecast/node/forecaseWeather.js
Executable file
@@ -0,0 +1,13 @@
|
||||
import * as weather from "m3o/weather";
|
||||
|
||||
// Get the weather forecast for the next 1-10 days
|
||||
async function ForecaseWeather() {
|
||||
let weatherService = new weather.WeatherService(process.env.MICRO_API_TOKEN);
|
||||
let rsp = await weatherService.forecast({
|
||||
days: 2,
|
||||
location: "London",
|
||||
});
|
||||
console.log(rsp);
|
||||
}
|
||||
|
||||
await ForecaseWeather();
|
||||
@@ -10,5 +10,15 @@
|
||||
"response": {
|
||||
"message": "Hello John"
|
||||
}
|
||||
}],
|
||||
"stream": [{
|
||||
"title": "Streams are currently temporarily not supported in clients",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"name": "not supported"
|
||||
},
|
||||
"response": {
|
||||
"message": "not supported"
|
||||
}
|
||||
}]
|
||||
}
|
||||
|
||||
@@ -1,47 +1,58 @@
|
||||
|
||||
{
|
||||
"generate": [{
|
||||
"title": "Generate a unique ID",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"type": "uuid"
|
||||
},
|
||||
"response": {
|
||||
"type": "uuid",
|
||||
"id": "e9c427d8-cef1-48bd-ab89-59a6df29673b"
|
||||
}
|
||||
"generate": [
|
||||
{
|
||||
"title": "Generate a unique ID",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"type": "uuid"
|
||||
},
|
||||
"response": {
|
||||
"type": "uuid",
|
||||
"id": "e9c427d8-cef1-48bd-ab89-59a6df29673b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Generate a short ID",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"type": "shortid"
|
||||
},
|
||||
"response": {
|
||||
"type": "shortid",
|
||||
"id": "Yivg2UeGg"
|
||||
}
|
||||
"title": "Generate a short ID",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"type": "shortid"
|
||||
},
|
||||
"response": {
|
||||
"type": "shortid",
|
||||
"id": "Yivg2UeGg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Generate a snowflake ID",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"type": "snowflake"
|
||||
},
|
||||
"response": {
|
||||
"type": "snowflake",
|
||||
"id": "1248956308049350656"
|
||||
}
|
||||
"title": "Generate a snowflake ID",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"type": "snowflake"
|
||||
},
|
||||
"response": {
|
||||
"type": "snowflake",
|
||||
"id": "1248956308049350656"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Generate a bigflake ID",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"type": "bigflake"
|
||||
},
|
||||
"response": {
|
||||
"type": "bigflake",
|
||||
"id": "29941839868462377496067580952577"
|
||||
}
|
||||
}]
|
||||
"title": "Generate a bigflake ID",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"type": "bigflake"
|
||||
},
|
||||
"response": {
|
||||
"type": "bigflake",
|
||||
"id": "29941839868462377496067580952577"
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"title": "List the types of IDs available",
|
||||
"run_check": false,
|
||||
"request": {},
|
||||
"response": {
|
||||
"types": ["uuid", "shortid", "snowflake", "bigflake"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,20 +1,105 @@
|
||||
{
|
||||
"timeline": [{
|
||||
"title": "Get a twitter timeline",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"username": "m3oservices",
|
||||
"limit": 1
|
||||
},
|
||||
"response": {
|
||||
"tweets": [{
|
||||
"timeline": [
|
||||
{
|
||||
"title": "Get a twitter timeline",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"username": "m3oservices",
|
||||
"limit": 1
|
||||
},
|
||||
"response": {
|
||||
"tweets": [
|
||||
{
|
||||
"id": "1437415171966873611",
|
||||
"text": "Leveraging Micro APIs through Nocode (using @bubble) https://t.co/I5Z6bx31c7 #bubble #nocode #microapis #publicapis #m3o",
|
||||
"username": "m3oservices",
|
||||
"created_at": "Mon Sep 13 13:57:37 +0000 2021",
|
||||
"retweeted_count": "2",
|
||||
"favourited_count": "2"
|
||||
}]
|
||||
"text": "Leveraging Micro APIs through Nocode (using @bubble) https://t.co/I5Z6bx31c7 #bubble #nocode #microapis #publicapis #m3o",
|
||||
"username": "m3oservices",
|
||||
"created_at": "Mon Sep 13 13:57:37 +0000 2021",
|
||||
"retweeted_count": "2",
|
||||
"favourited_count": "2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"search": [
|
||||
{
|
||||
"title": "Search for tweets",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"query": "cats"
|
||||
},
|
||||
"response": {
|
||||
"tweets": [
|
||||
{
|
||||
"id": "1440333358018424841",
|
||||
"text": "RT @_Bomfha: In the world, I have cats on rainy days. 🌧️💧 https://t.co/C3n1NRRvhX",
|
||||
"username": "syrupai",
|
||||
"created_at": "Tue Sep 21 15:13:27 +0000 2021",
|
||||
"retweeted_count": "114",
|
||||
"favourited_count": "0"
|
||||
},
|
||||
{
|
||||
"id": "1440333343636090882",
|
||||
"text": "RT @jbdefsyg: Bam said it’s been a long time since he’s not been alone for Chuseok considering his family is in Thailand. Seulgi asked what…",
|
||||
"username": "Blackbeau5",
|
||||
"created_at": "Tue Sep 21 15:13:23 +0000 2021",
|
||||
"retweeted_count": "656",
|
||||
"favourited_count": "0"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"trends": [
|
||||
{
|
||||
"title": "Get the current global trending topics",
|
||||
"run_check": false,
|
||||
"request": {},
|
||||
"response": {
|
||||
"trends": [
|
||||
{
|
||||
"name": "#ios15",
|
||||
"url": "http://twitter.com/search?q=%23ios15",
|
||||
"tweet_volume": "255802"
|
||||
},
|
||||
{
|
||||
"name": "#4toinformeedomex",
|
||||
"url": "http://twitter.com/search?q=%234toinformeedomex",
|
||||
"tweet_volume": "231617"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"user": [
|
||||
{
|
||||
"title": "Get a user's twitter profile",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"username": "crufter"
|
||||
},
|
||||
"response": {
|
||||
"status": {
|
||||
"id": "1093875272926023681",
|
||||
"text": "@O2 It's already sorted, thanks! At least your customer support is awesome. ;)",
|
||||
"username": "crufter",
|
||||
"created_at": "Fri Feb 08 14:12:42 +0000 2019",
|
||||
"retweeted_count": "0",
|
||||
"favourited_count": "0"
|
||||
},
|
||||
"profile": {
|
||||
"id": "2788401541",
|
||||
"name": "Janos Dobronszki",
|
||||
"username": "crufter",
|
||||
"description": "FOLLOWS YOU. Quietly hacking away and waiting for the AI surveillance apocalypse. Always high on sencha.",
|
||||
"created_at": "Wed Sep 03 18:00:02 +0000 2014",
|
||||
"location": "",
|
||||
"followers": "168",
|
||||
"private": false,
|
||||
"verified": false,
|
||||
"image_url": "http://pbs.twimg.com/profile_images/664040247211069440/IzdeZPPK_normal.jpg"
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,6 +12,30 @@
|
||||
"response": {}
|
||||
}
|
||||
],
|
||||
"update": [
|
||||
{
|
||||
"title": "Update an account",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"id": "usrid-1",
|
||||
"email": "joeotheremail@example.com"
|
||||
},
|
||||
"response": {}
|
||||
}
|
||||
],
|
||||
"updatePassword": [
|
||||
{
|
||||
"title": "Update the account password",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"id": "usrid-1",
|
||||
"oldPassword": "mySecretPass123",
|
||||
"newPassword": "myEvenMoreSecretPass123",
|
||||
"confirmPassword": "myEvenMoreSecretPass123"
|
||||
},
|
||||
"response": {}
|
||||
}
|
||||
],
|
||||
"read": [
|
||||
{
|
||||
"title": "Read an account by id",
|
||||
@@ -77,6 +101,16 @@
|
||||
"response": {}
|
||||
}
|
||||
],
|
||||
"verifyEmail": [
|
||||
{
|
||||
"title": "Verify email",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"token": "t2323t232t"
|
||||
},
|
||||
"response": {}
|
||||
}
|
||||
],
|
||||
"delete": [
|
||||
{
|
||||
"title": "Delete user account",
|
||||
@@ -114,5 +148,22 @@
|
||||
},
|
||||
"response": {}
|
||||
}
|
||||
],
|
||||
"readSession": [
|
||||
{
|
||||
"title": "Read a session by the session id.",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"sessionId": "sds34s34s34-s34s34-s43s43s34-s4s34s"
|
||||
},
|
||||
"response": {
|
||||
"session": {
|
||||
"id": "sds34s34s34-s34s34-s43s43s34-s4s34s",
|
||||
"created": "1623677579",
|
||||
"expires": "1623699579",
|
||||
"userId": "fdf34f34f34-f34f34-f43f43f34-f4f34f"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,32 +1,74 @@
|
||||
{
|
||||
"now": [{
|
||||
"title": "Get current weather",
|
||||
"description": "Get the weather forecast right at this moment",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"location": "london"
|
||||
},
|
||||
"response": {
|
||||
"location": "London",
|
||||
"region": "City of London, Greater London",
|
||||
"country": "City of London, Greater London",
|
||||
"latitude": 51.52,
|
||||
"longitude": -0.11,
|
||||
"timezone": "Europe/London",
|
||||
"local_time": "2021-06-23 11:18",
|
||||
"temp_c": 16,
|
||||
"temp_f": 60.8,
|
||||
"feels_like_c": 16,
|
||||
"feels_like_f": 60.8,
|
||||
"humidity": 48,
|
||||
"cloud": 75,
|
||||
"daytime": true,
|
||||
"now": [
|
||||
{
|
||||
"title": "Get current weather",
|
||||
"description": "Get the weather forecast right at this moment",
|
||||
"run_check": true,
|
||||
"request": {
|
||||
"location": "london"
|
||||
},
|
||||
"response": {
|
||||
"location": "London",
|
||||
"region": "City of London, Greater London",
|
||||
"country": "City of London, Greater London",
|
||||
"latitude": 51.52,
|
||||
"longitude": -0.11,
|
||||
"timezone": "Europe/London",
|
||||
"local_time": "2021-06-23 11:18",
|
||||
"temp_c": 16,
|
||||
"temp_f": 60.8,
|
||||
"feels_like_c": 16,
|
||||
"feels_like_f": 60.8,
|
||||
"humidity": 48,
|
||||
"cloud": 75,
|
||||
"daytime": true,
|
||||
"condition": "Partly cloudy",
|
||||
"icon_url": "//cdn.weatherapi.com/weather/64x64/day/116.png",
|
||||
"wind_mph": 4.3,
|
||||
"wind_kph": 6.8,
|
||||
"wind_direction": "NE",
|
||||
"wind_degree": 40
|
||||
}
|
||||
}
|
||||
],
|
||||
"forecast": [
|
||||
{
|
||||
"title": "Forecase weather",
|
||||
"run_check": false,
|
||||
"request": {
|
||||
"days": 2,
|
||||
"location": "London"
|
||||
},
|
||||
"response": {
|
||||
"forecast": [
|
||||
{
|
||||
"date": "2021-09-21",
|
||||
"max_temp_c": 21.8,
|
||||
"max_temp_f": 71.2,
|
||||
"min_temp_c": 13,
|
||||
"min_temp_f": 55.4,
|
||||
"avg_temp_c": 17.3,
|
||||
"avg_temp_f": 63.1,
|
||||
"condition": "Partly cloudy",
|
||||
"icon_url": "//cdn.weatherapi.com/weather/64x64/day/116.png",
|
||||
"wind_mph": 4.3,
|
||||
"wind_kph": 6.8,
|
||||
"wind_direction": "NE",
|
||||
"wind_degree": 40
|
||||
}
|
||||
}]
|
||||
"sunrise": "06:45 AM",
|
||||
"sunset": "07:01 PM"
|
||||
},
|
||||
{
|
||||
"date": "2021-09-22",
|
||||
"max_temp_c": 24.1,
|
||||
"max_temp_f": 75.4,
|
||||
"min_temp_c": 13.4,
|
||||
"min_temp_f": 56.1,
|
||||
"avg_temp_c": 18.1,
|
||||
"avg_temp_f": 64.6,
|
||||
"condition": "Partly cloudy",
|
||||
"icon_url": "//cdn.weatherapi.com/weather/64x64/day/116.png",
|
||||
"sunrise": "06:47 AM",
|
||||
"sunset": "06:58 PM"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user