diff --git a/docs/methods.md b/docs/methods.md index 105d573..787e35e 100644 --- a/docs/methods.md +++ b/docs/methods.md @@ -64,418 +64,422 @@ - [`connection.patch`](#connectionpatch) - [Request](#request-17) - [Response](#response-17) - - [identity](#identity) - - [`identity.approve`](#identityapprove) + - [graphql](#graphql) + - [`graphql.execute`](#graphqlexecute) - [Request](#request-18) - [Response](#response-18) - - [`identity.cancel`](#identitycancel) + - [identity](#identity) + - [`identity.approve`](#identityapprove) - [Request](#request-19) - [Response](#response-19) - - [`identity.create`](#identitycreate) + - [`identity.cancel`](#identitycancel) - [Request](#request-20) - [Response](#response-20) - - [`identity.delete`](#identitydelete) + - [`identity.create`](#identitycreate) - [Request](#request-21) - [Response](#response-21) - - [`identity.get`](#identityget) + - [`identity.delete`](#identitydelete) - [Request](#request-22) - [Response](#response-22) - - [`identity.list`](#identitylist) + - [`identity.get`](#identityget) - [Request](#request-23) - [Response](#response-23) - - [`identity.reject`](#identityreject) + - [`identity.list`](#identitylist) - [Request](#request-24) - [Response](#response-24) - - [`identity.submit`](#identitysubmit) + - [`identity.reject`](#identityreject) - [Request](#request-25) - [Response](#response-25) - - [IdentityDocument](#identitydocument) - - [`identityDocument.create`](#identitydocumentcreate) + - [`identity.submit`](#identitysubmit) - [Request](#request-26) - [Response](#response-26) - - [`identityDocument.delete`](#identitydocumentdelete) - - [Request](#request-27) - - [Response](#response-27) - - [`identityDocument.get`](#identitydocumentget) - - [Request](#request-28) - - [Response](#response-28) - - [`identityDocument.list`](#identitydocumentlist) - - [Request](#request-29) - - [Response](#response-29) + - [IdentityDocument](#identitydocument) + - [`identityDocument.create`](#identitydocumentcreate) + - [Request](#request-27) + - [Response](#response-27) + - [`identityDocument.delete`](#identitydocumentdelete) + - [Request](#request-28) + - [Response](#response-28) + - [`identityDocument.get`](#identitydocumentget) + - [Request](#request-29) + - [Response](#response-29) + - [`identityDocument.list`](#identitydocumentlist) + - [Request](#request-30) + - [Response](#response-30) - [invite](#invite) - [`invite.cancel`](#invitecancel) - - [Request](#request-30) - - [Response](#response-30) - - [`invite.create`](#invitecreate) - [Request](#request-31) - [Response](#response-31) - - [`invite.get`](#inviteget) + - [`invite.create`](#invitecreate) - [Request](#request-32) - [Response](#response-32) - - [`invite.list`](#invitelist) + - [`invite.get`](#inviteget) - [Request](#request-33) - [Response](#response-33) - - [`invite.send`](#invitesend) + - [`invite.list`](#invitelist) - [Request](#request-34) - [Response](#response-34) - - [`invite.validate`](#invitevalidate) + - [`invite.send`](#invitesend) - [Request](#request-35) - [Response](#response-35) - - [movement](#movement) - - [`movement.get`](#movementget) + - [`invite.validate`](#invitevalidate) - [Request](#request-36) - [Response](#response-36) - - [`movement.list`](#movementlist) + - [movement](#movement) + - [`movement.get`](#movementget) - [Request](#request-37) - [Response](#response-37) - - [order](#order) - - [`order.cancel`](#ordercancel) + - [`movement.list`](#movementlist) - [Request](#request-38) - [Response](#response-38) - - [`order.create`](#ordercreate) + - [order](#order) + - [`order.cancel`](#ordercancel) - [Request](#request-39) - [Response](#response-39) - - [`order.fulfill`](#orderfulfill) + - [`order.create`](#ordercreate) - [Request](#request-40) - [Response](#response-40) - - [`order.get`](#orderget) + - [`order.fulfill`](#orderfulfill) - [Request](#request-41) - [Response](#response-41) - - [`order.list`](#orderlist) + - [`order.get`](#orderget) - [Request](#request-42) - [Response](#response-42) - - [`order.patch`](#orderpatch) + - [`order.list`](#orderlist) - [Request](#request-43) - [Response](#response-43) - - [`order.pay`](#orderpay) + - [`order.patch`](#orderpatch) - [Request](#request-44) - [Response](#response-44) - - [`order.refund`](#orderrefund) + - [`order.pay`](#orderpay) - [Request](#request-45) - [Response](#response-45) - - [`order.unfulfill`](#orderunfulfill) + - [`order.refund`](#orderrefund) - [Request](#request-46) - [Response](#response-46) - - [orderLine](#orderline) - - [`orderLine.fulfill`](#orderlinefulfill) + - [`order.unfulfill`](#orderunfulfill) - [Request](#request-47) - [Response](#response-47) - - [`orderLine.get`](#orderlineget) + - [orderLine](#orderline) + - [`orderLine.fulfill`](#orderlinefulfill) - [Request](#request-48) - [Response](#response-48) - - [`orderLine.list`](#orderlinelist) + - [`orderLine.get`](#orderlineget) - [Request](#request-49) - [Response](#response-49) - - [`orderLine.unfulfill`](#orderlineunfulfill) + - [`orderLine.list`](#orderlinelist) - [Request](#request-50) - [Response](#response-50) - - [paymentMethod](#paymentmethod) - - [`paymentMethod.get`](#paymentmethodget) + - [`orderLine.unfulfill`](#orderlineunfulfill) - [Request](#request-51) - [Response](#response-51) - - [`paymentMethod.list`](#paymentmethodlist) + - [paymentMethod](#paymentmethod) + - [`paymentMethod.get`](#paymentmethodget) - [Request](#request-52) - [Response](#response-52) - - [product](#product) - - [`product.create`](#productcreate) + - [`paymentMethod.list`](#paymentmethodlist) - [Request](#request-53) - [Response](#response-53) - - [`product.createQuestion`](#productcreatequestion) + - [product](#product) + - [`product.create`](#productcreate) - [Request](#request-54) - [Response](#response-54) - - [`product.delete`](#productdelete) + - [`product.createQuestion`](#productcreatequestion) - [Request](#request-55) - [Response](#response-55) - - [`product.deleteQuestion`](#productdeletequestion) + - [`product.delete`](#productdelete) - [Request](#request-56) - [Response](#response-56) - - [`product.get`](#productget) + - [`product.deleteQuestion`](#productdeletequestion) - [Request](#request-57) - [Response](#response-57) - - [`product.list`](#productlist) + - [`product.get`](#productget) - [Request](#request-58) - [Response](#response-58) - - [`product.patch`](#productpatch) + - [`product.list`](#productlist) - [Request](#request-59) - [Response](#response-59) - - [`product.reorder`](#productreorder) + - [`product.patch`](#productpatch) - [Request](#request-60) - [Response](#response-60) - - [`product.reorderQuestion`](#productreorderquestion) + - [`product.reorder`](#productreorder) - [Request](#request-61) - [Response](#response-61) - - [productCategory](#productcategory) - - [`productCategory.create`](#productcategorycreate) + - [`product.reorderQuestion`](#productreorderquestion) - [Request](#request-62) - [Response](#response-62) - - [`productCategory.delete`](#productcategorydelete) + - [productCategory](#productcategory) + - [`productCategory.create`](#productcategorycreate) - [Request](#request-63) - [Response](#response-63) - - [`productCategory.get`](#productcategoryget) + - [`productCategory.delete`](#productcategorydelete) - [Request](#request-64) - [Response](#response-64) - - [`productCategory.list`](#productcategorylist) + - [`productCategory.get`](#productcategoryget) - [Request](#request-65) - [Response](#response-65) - - [`productCategory.patch`](#productcategorypatch) + - [`productCategory.list`](#productcategorylist) - [Request](#request-66) - [Response](#response-66) - - [`productCategory.reorder`](#productcategoryreorder) + - [`productCategory.patch`](#productcategorypatch) - [Request](#request-67) - [Response](#response-67) - - [productImage](#productimage) - - [`productImage.create`](#productimagecreate) + - [`productCategory.reorder`](#productcategoryreorder) - [Request](#request-68) - [Response](#response-68) - - [`productImage.delete`](#productimagedelete) + - [productImage](#productimage) + - [`productImage.create`](#productimagecreate) - [Request](#request-69) - [Response](#response-69) - - [`productImage.get`](#productimageget) + - [`productImage.delete`](#productimagedelete) - [Request](#request-70) - [Response](#response-70) - - [`productImage.list`](#productimagelist) + - [`productImage.get`](#productimageget) - [Request](#request-71) - [Response](#response-71) - - [`productImage.reorder`](#productimagereorder) + - [`productImage.list`](#productimagelist) - [Request](#request-72) - [Response](#response-72) - - [question](#question) - - [`question.create`](#questioncreate) + - [`productImage.reorder`](#productimagereorder) - [Request](#request-73) - [Response](#response-73) - - [`question.delete`](#questiondelete) + - [question](#question) + - [`question.create`](#questioncreate) - [Request](#request-74) - [Response](#response-74) - - [`question.get`](#questionget) + - [`question.delete`](#questiondelete) - [Request](#request-75) - [Response](#response-75) - - [`question.list`](#questionlist) + - [`question.get`](#questionget) - [Request](#request-76) - [Response](#response-76) - - [`question.patch`](#questionpatch) + - [`question.list`](#questionlist) - [Request](#request-77) - [Response](#response-77) - - [questionType](#questiontype) - - [`question.list`](#questionlist-1) + - [`question.patch`](#questionpatch) - [Request](#request-78) - [Response](#response-78) - - [rate](#rate) - - [`rate.create`](#ratecreate) + - [questionType](#questiontype) + - [`question.list`](#questionlist-1) - [Request](#request-79) - [Response](#response-79) - - [`rate.delete`](#ratedelete) + - [rate](#rate) + - [`rate.create`](#ratecreate) - [Request](#request-80) - [Response](#response-80) - - [`rate.get`](#rateget) + - [`rate.delete`](#ratedelete) - [Request](#request-81) - [Response](#response-81) - - [`rate.list`](#ratelist) + - [`rate.get`](#rateget) - [Request](#request-82) - [Response](#response-82) - - [`rate.patch`](#ratepatch) + - [`rate.list`](#ratelist) - [Request](#request-83) - [Response](#response-83) - - [setting](#setting) - - [`setting.get`](#settingget) + - [`rate.patch`](#ratepatch) - [Request](#request-84) - [Response](#response-84) - - [`setting.list`](#settinglist) + - [setting](#setting) + - [`setting.get`](#settingget) - [Request](#request-85) - [Response](#response-85) - - [task](#task) - - [`task.complete`](#taskcomplete) + - [`setting.list`](#settinglist) - [Request](#request-86) - [Response](#response-86) - - [`task.completeSurvey`](#taskcompletesurvey) + - [task](#task) + - [`task.complete`](#taskcomplete) - [Request](#request-87) - [Response](#response-87) - - [`task.create`](#taskcreate) + - [`task.completeSurvey`](#taskcompletesurvey) - [Request](#request-88) - [Response](#response-88) - - [`task.get`](#taskget) + - [`task.create`](#taskcreate) - [Request](#request-89) - [Response](#response-89) - - [`task.getStatistics`](#taskgetstatistics) + - [`task.get`](#taskget) - [Request](#request-90) - [Response](#response-90) - - [`task.list`](#tasklist) + - [`task.getStatistics`](#taskgetstatistics) - [Request](#request-91) - [Response](#response-91) - - [`task.listAnswers`](#tasklistanswers) + - [`task.list`](#tasklist) - [Request](#request-92) - [Response](#response-92) - - [`task.patch`](#taskpatch) + - [`task.listAnswers`](#tasklistanswers) - [Request](#request-93) - [Response](#response-93) - - [`task.reorder`](#taskreorder) + - [`task.patch`](#taskpatch) - [Request](#request-94) - [Response](#response-94) - - [taskStep](#taskstep) - - [`taskStep.get`](#taskstepget) + - [`task.reorder`](#taskreorder) - [Request](#request-95) - [Response](#response-95) - - [`taskStep.list`](#tasksteplist) + - [taskStep](#taskstep) + - [`taskStep.get`](#taskstepget) - [Request](#request-96) - [Response](#response-96) - - [`taskStep.patch`](#tasksteppatch) + - [`taskStep.list`](#tasksteplist) - [Request](#request-97) - [Response](#response-97) - - [taskStepQuestion](#taskstepquestion) - - [`taskStepQuestion.list`](#taskstepquestionlist) + - [`taskStep.patch`](#tasksteppatch) - [Request](#request-98) - [Response](#response-98) - - [taxRate](#taxrate) - - [`taxRate.create`](#taxratecreate) + - [taskStepQuestion](#taskstepquestion) + - [`taskStepQuestion.list`](#taskstepquestionlist) - [Request](#request-99) - [Response](#response-99) - - [`taxRate.delete`](#taxratedelete) + - [taxRate](#taxrate) + - [`taxRate.create`](#taxratecreate) - [Request](#request-100) - [Response](#response-100) - - [`taxRate.get`](#taxrateget) + - [`taxRate.delete`](#taxratedelete) - [Request](#request-101) - [Response](#response-101) - - [`taxRate.list`](#taxratelist) + - [`taxRate.get`](#taxrateget) - [Request](#request-102) - [Response](#response-102) - - [`taxRate.patch`](#taxratepatch) + - [`taxRate.list`](#taxratelist) - [Request](#request-103) - [Response](#response-103) - - [transaction](#transaction) - - [`transaction.approve`](#transactionapprove) + - [`taxRate.patch`](#taxratepatch) - [Request](#request-104) - [Response](#response-104) - - [`transaction.confirm`](#transactionconfirm) + - [transaction](#transaction) + - [`transaction.approve`](#transactionapprove) - [Request](#request-105) - [Response](#response-105) - - [`transaction.deposit`](#transactiondeposit) + - [`transaction.confirm`](#transactionconfirm) - [Request](#request-106) - [Response](#response-106) - - [`transaction.fail`](#transactionfail) + - [`transaction.deposit`](#transactiondeposit) - [Request](#request-107) - [Response](#response-107) - - [`transaction.get`](#transactionget) + - [`transaction.fail`](#transactionfail) - [Request](#request-108) - [Response](#response-108) - - [`transaction.list`](#transactionlist) + - [`transaction.get`](#transactionget) - [Request](#request-109) - [Response](#response-109) - - [`transaction.pay`](#transactionpay) + - [`transaction.list`](#transactionlist) - [Request](#request-110) - [Response](#response-110) - - [`transaction.reject`](#transactionreject) + - [`transaction.pay`](#transactionpay) - [Request](#request-111) - [Response](#response-111) - - [`transaction.request`](#transactionrequest) + - [`transaction.reject`](#transactionreject) - [Request](#request-112) - [Response](#response-112) - - [`transaction.send`](#transactionsend) + - [`transaction.request`](#transactionrequest) - [Request](#request-113) - [Response](#response-113) - - [`transaction.transfer`](#transactiontransfer) + - [`transaction.send`](#transactionsend) - [Request](#request-114) - [Response](#response-114) - - [`transaction.withdrawal`](#transactionwithdrawal) + - [`transaction.transfer`](#transactiontransfer) - [Request](#request-115) - [Response](#response-115) - - [user](#user) - - [`user.approve`](#userapprove) + - [`transaction.withdrawal`](#transactionwithdrawal) - [Request](#request-116) - [Response](#response-116) - - [`user.block`](#userblock) + - [user](#user) + - [`user.approve`](#userapprove) - [Request](#request-117) - [Response](#response-117) - - [`user.changeEmail`](#userchangeemail) + - [`user.block`](#userblock) - [Request](#request-118) - [Response](#response-118) - - [`user.changePassword`](#userchangepassword) + - [`user.changeEmail`](#userchangeemail) - [Request](#request-119) - [Response](#response-119) - - [`user.changePhone`](#userchangephone) + - [`user.changePassword`](#userchangepassword) - [Request](#request-120) - [Response](#response-120) - - [`user.confirmEmail`](#userconfirmemail) + - [`user.changePhone`](#userchangephone) - [Request](#request-121) + - [Response](#response-121) + - [`user.confirmEmail`](#userconfirmemail) + - [Request](#request-122) - [Responses](#responses) - [`user.confirmPhone`](#userconfirmphone) - - [Request](#request-122) + - [Request](#request-123) - [Responses](#responses-1) - [`user.create`](#usercreate) - - [Request](#request-123) - - [Response](#response-121) - - [`user.forgotPassword`](#userforgotpassword) - [Request](#request-124) - [Response](#response-122) - - [`user.get`](#userget) + - [`user.forgotPassword`](#userforgotpassword) - [Request](#request-125) - [Response](#response-123) - - [`user.getReferralProgram`](#usergetreferralprogram) + - [`user.get`](#userget) - [Request](#request-126) - [Response](#response-124) - - [`user.delete`](#userdelete) + - [`user.getReferralProgram`](#usergetreferralprogram) - [Request](#request-127) - [Response](#response-125) - - [`user.list`](#userlist) + - [`user.delete`](#userdelete) - [Request](#request-128) - [Response](#response-126) - - [`user.patch`](#userpatch) + - [`user.list`](#userlist) - [Request](#request-129) - [Response](#response-127) - - [`user.resendConfirmation`](#userresendconfirmation) + - [`user.patch`](#userpatch) - [Request](#request-130) - [Response](#response-128) - - [`user.resetPassword`](#userresetpassword) + - [`user.resendConfirmation`](#userresendconfirmation) - [Request](#request-131) - [Response](#response-129) - - [`user.unblock`](#userunblock) + - [`user.resetPassword`](#userresetpassword) - [Request](#request-132) - [Response](#response-130) - - [wallet](#wallet) - - [`wallet.activity`](#walletactivity) + - [`user.unblock`](#userunblock) - [Request](#request-133) - [Response](#response-131) - - [`wallet.balance`](#walletbalance) + - [wallet](#wallet) + - [`wallet.activity`](#walletactivity) - [Request](#request-134) - [Response](#response-132) - - [`wallet.create`](#walletcreate) + - [`wallet.balance`](#walletbalance) - [Request](#request-135) - [Response](#response-133) - - [`wallet.get`](#walletget) + - [`wallet.create`](#walletcreate) - [Request](#request-136) - [Response](#response-134) - - [`wallet.globalActivity`](#walletglobalactivity) + - [`wallet.get`](#walletget) - [Request](#request-137) - [Response](#response-135) - - [`wallet.globalBalance`](#walletglobalbalance) + - [`wallet.globalActivity`](#walletglobalactivity) - [Request](#request-138) - [Response](#response-136) - - [`wallet.list`](#walletlist) + - [`wallet.globalBalance`](#walletglobalbalance) - [Request](#request-139) - [Response](#response-137) - - [`wallet.movements`](#walletmovements) + - [`wallet.list`](#walletlist) - [Request](#request-140) - [Response](#response-138) - - [`wallet.patch`](#walletpatch) + - [`wallet.movements`](#walletmovements) - [Request](#request-141) - [Response](#response-139) - - [`wallet.transactions`](#wallettransactions) + - [`wallet.patch`](#walletpatch) - [Request](#request-142) - [Response](#response-140) - - [webhook](#webhook) - - [`webhook.create`](#webhookcreate) + - [`wallet.transactions`](#wallettransactions) - [Request](#request-143) - [Response](#response-141) - - [`webhook.delete`](#webhookdelete) + - [webhook](#webhook) + - [`webhook.create`](#webhookcreate) - [Request](#request-144) - [Response](#response-142) - - [`webhook.get`](#webhookget) + - [`webhook.delete`](#webhookdelete) - [Request](#request-145) - [Response](#response-143) - - [`webhook.list`](#webhooklist) + - [`webhook.get`](#webhookget) - [Request](#request-146) - [Response](#response-144) - - [`webhook.patch`](#webhookpatch) + - [`webhook.list`](#webhooklist) - [Request](#request-147) - [Response](#response-145) + - [`webhook.patch`](#webhookpatch) + - [Request](#request-148) + - [Response](#response-146) ## address @@ -1077,6 +1081,56 @@ await slyk.connection.patch('f1ee08ee-265b-472c-88cf-4bae10d0ff9b', { uri: 'wald } ``` +## graphql + +### `graphql.execute` + +This method executes a graphQL operation. + +**Example:** + +#### Request + +```js +await slyk.graphql.execute({ + query: `mutation { + foobarMutation (input: { foo: "bar" }) { + createdAt + id + updatedAt + } + + foobizMutation (input: { foo: "biz" }) { + createdAt + foo + id + updatedAt + } + } + ` +}); +``` + +#### Response + +```json +{ + "data": { + "foobarMutation": { + "createdAt": "2021-09-30T13:17:18.483Z", + "id": "plugh", + "updatedAt": "2021-09-30T13:17:18.483Z" + }, + "foobizMutation": { + "createdAt": "2021-09-20T15:31:09.948Z", + "foo": "biz", + "id": "waldo", + "updatedAt": "2021-09-23T10:01:58.894Z" + } + } +} +``` + ## identity The result of each one of the following `identity` methods return one or an array of `Identity` objects that include the following methods: @@ -1399,12 +1453,12 @@ await slyk.identity.submit('bar'); } ``` -## IdentityDocument +## identityDocument The result of each one of the following `identityDocument` methods return one or an array of `IdentityDocument` objects that include the following methods: - `delete`: Deletes the `identityDocument`. -## `identityDocument.create` +### `identityDocument.create` Creates an `identityDocument` for the `identity` of the given `identityId`. @@ -1431,7 +1485,7 @@ await slyk.identityDocument.create(identityId, { file: 'garply' }); } ``` -## `identityDocument.delete` +### `identityDocument.delete` Deletes an `identityDocument` of the given `id` related with the `identity` of the given `identityId`. @@ -1452,7 +1506,7 @@ await slyk.identityDocument.delete(id, identityId); true ``` -## `identityDocument.get` +### `identityDocument.get` Gets the `identityDocument` of the given `id` related with the `identity` of the given `identityId`. @@ -1480,7 +1534,7 @@ await slyk.identityDocument.get(id, identityId); } ``` -## `identityDocument.list` +### `identityDocument.list` Lists the `identityDocuments` related with the `identity` of the given `identityId`. @@ -4518,6 +4572,7 @@ await slyk.taxRate.patch('d30eacc4-8896-4376-b171-c374cbdb7681', { name: 'foo', "rate": "5.00000000" } ``` + ## transaction The result of each one of the following `transaction` methods return one or an array of `Transaction` objects that include the following methods: diff --git a/src/core/library/index.js b/src/core/library/index.js index db92a59..2ab612e 100644 --- a/src/core/library/index.js +++ b/src/core/library/index.js @@ -25,6 +25,7 @@ import address from 'address'; import asset from 'asset'; import auth from 'auth'; import connection from 'connection'; +import graphql from 'graphql'; import invite from 'invite'; import movement from 'movement'; import paymentMethod from 'payment-method'; @@ -45,6 +46,7 @@ export default { bankAccount, bankAccountRegion, connection, + graphql, identity, identityDocument, invite, diff --git a/src/graphql/index.js b/src/graphql/index.js new file mode 100644 index 0000000..7a8edc0 --- /dev/null +++ b/src/graphql/index.js @@ -0,0 +1,15 @@ + +/* istanbul ignore file */ + +/** + * Module dependencies. + */ + +import GraphqlManager from 'graphql/managers/graphql-manager'; +import GraphqlResolver from 'graphql/resolvers/graphql-resolver'; + +/** + * Export `graphql`. + */ + +export default { manager: GraphqlManager, resolver: GraphqlResolver }; diff --git a/src/graphql/managers/graphql-manager.js b/src/graphql/managers/graphql-manager.js new file mode 100644 index 0000000..05566f5 --- /dev/null +++ b/src/graphql/managers/graphql-manager.js @@ -0,0 +1,22 @@ + +/** + * Module dependencies. + */ + +import AbstractManager from 'core/managers/abstract-manager'; + +/** + * Export `GraphqlManager`. + */ + +export default class GraphqlManager extends AbstractManager { + + /** + * Execute graphql request. + */ + + execute({ query }) { + return this.resolver.execute({ query }); + } + +} diff --git a/src/graphql/resolvers/graphql-resolver.js b/src/graphql/resolvers/graphql-resolver.js new file mode 100644 index 0000000..7f76bff --- /dev/null +++ b/src/graphql/resolvers/graphql-resolver.js @@ -0,0 +1,23 @@ + +/** + * Module dependencies. + */ + +import resolverFactory from 'core/util/resolver-factory'; + +/** + * Configuration. + */ + +const config = { + execute: { + endpoint: 'graphql', + method: 'post' + } +}; + +/** + * Export `GraphqlResolver`. + */ + +export default connection => resolverFactory(connection, config); diff --git a/test/src/graphql/managers/graphql-manager.test.js b/test/src/graphql/managers/graphql-manager.test.js new file mode 100644 index 0000000..dd0a2a7 --- /dev/null +++ b/test/src/graphql/managers/graphql-manager.test.js @@ -0,0 +1,53 @@ + +/** + * Module dependencies. + */ + +import nock from 'nock'; +import sdk from ''; + +/** + * Test `GraphqlManager`. + */ + +describe('GraphqlManager', () => { + const apikey = 'xyzzy'; + const host = 'http://foobar:3000'; + const slyk = sdk({ apikey, host }); + + describe('execute', () => { + it('should call api `/graphql` endpoint with method `post` and return the endpoint response', async () => { + const query = `{ + foobar (id: "foo") { + createdAt + id + updatedAt + } + }`; + + nock(host, { reqheaders: { apikey } }) + .post('/graphql', { query }) + .reply(200, { + data: { + foobar: { + createdAt: '2021-07-30T13:17:18.483Z', + id: 'foo', + updatedAt: '2021-07-30T13:17:18.483Z' + } + } + }); + + const result = await slyk.graphql.execute({ query }); + + expect(result).toEqual({ + data: { + foobar: { + createdAt: '2021-07-30T13:17:18.483Z', + id: 'foo', + updatedAt: '2021-07-30T13:17:18.483Z' + } + } + }); + }); + }); +});