🥇 First commit
This commit is contained in:
62
services/comicvine.service.ts
Normal file
62
services/comicvine.service.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
"use strict";
|
||||
|
||||
import { Service, ServiceBroker, Context } from "moleculer";
|
||||
import axios from "axios";
|
||||
const CV_BASE_URL = "https://comicvine.gamespot.com/api/";
|
||||
const CV_API_KEY = "a5fa0663683df8145a85d694b5da4b87e1c92c69";
|
||||
|
||||
export default class GreeterService extends Service {
|
||||
public constructor(public broker: ServiceBroker) {
|
||||
super(broker);
|
||||
this.parseServiceSchema({
|
||||
name: "comicvine",
|
||||
actions: {
|
||||
fetchSeries: {
|
||||
rest: "/fetchseries",
|
||||
params: {
|
||||
format: { type: "string", optional: false },
|
||||
sort: { type: "string", optional: true },
|
||||
query: { type: "string", optional: false },
|
||||
fieldList: { type: "string", optional: true },
|
||||
limit: { type: "string", optional: false },
|
||||
offset: { type: "string", optional: false },
|
||||
resources: { type: "string", optional: false },
|
||||
},
|
||||
handler: async (
|
||||
ctx: Context<{
|
||||
format: string;
|
||||
sort: string;
|
||||
query: string;
|
||||
fieldList: string;
|
||||
limit: string;
|
||||
offset: string;
|
||||
resources: string;
|
||||
}>
|
||||
): Promise<any> => {
|
||||
const response = await axios.request({
|
||||
url:
|
||||
CV_BASE_URL +
|
||||
"search" +
|
||||
"?api_key=" +
|
||||
CV_API_KEY,
|
||||
params: ctx.params,
|
||||
transformResponse: (r) => JSON.parse(r),
|
||||
headers: { Accept: "application/json" },
|
||||
});
|
||||
const { data } = response;
|
||||
return data;
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
// Action
|
||||
public ActionHello(): string {
|
||||
return "Hello Moleculer";
|
||||
}
|
||||
|
||||
public ActionWelcome(name: string): string {
|
||||
return `Welcome, ${name}`;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user