From c61dd7bd443fcb853c16fac3ba93952be6b602ce Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Tue, 16 Aug 2022 17:52:07 -0400 Subject: [PATCH] Shadify (Independent Publisher) (#1856) * Revert "Merge branch 'microsoft:dev' into dev" This reverts commit 096a7c31993f909c3ee2ccacb4d6a206a1a2b2a3, reversing changes made to cb0948670feda35e9fc2a43241de68bc50e06812. * Revert "Merge branch 'microsoft:dev' into dev" This reverts commit cb0948670feda35e9fc2a43241de68bc50e06812, reversing changes made to dc26e8a0268f26bc2f38bf3a66e8c90e98df9404. * Revert "Revert "Merge branch 'microsoft:dev' into dev"" This reverts commit 01764d0a6d9e3afa849a6a4159d751aee6108580. * Revert "Revert "Merge branch 'microsoft:dev' into dev"" This reverts commit a3f086ef0f4e8b47ec14e9287ec7ebc29a09ea33. * Add files via upload * Revert "Add files via upload" This reverts commit eeff7b7a02a5c65406413e7c848ebc718c30183e. * Add files via upload * Delete independent-publisher-connectors/FileIO directory * Add files via upload --- .../Shadify/apiDefinition.swagger.json | 1070 +++++++++++++++++ .../Shadify/apiProperties.json | 9 + .../Shadify/readme.md | 41 + 3 files changed, 1120 insertions(+) create mode 100644 independent-publisher-connectors/Shadify/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Shadify/apiProperties.json create mode 100644 independent-publisher-connectors/Shadify/readme.md diff --git a/independent-publisher-connectors/Shadify/apiDefinition.swagger.json b/independent-publisher-connectors/Shadify/apiDefinition.swagger.json new file mode 100644 index 000000000..32cabdcdc --- /dev/null +++ b/independent-publisher-connectors/Shadify/apiDefinition.swagger.json @@ -0,0 +1,1070 @@ +{ + "swagger": "2.0", + "info": { + "title": "Shadify", + "description": "Shadify is a powerful service for generating data and executing various logic to create different applications and games. Endpoints include data generated for Suduku, Takuzu, Schulte, Minesweeper, word search, anagrams, and math expressions.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "shadify.dev", + "basePath": "/api/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/sudoku/verifier": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "isError": { + "type": "boolean", + "description": "Whether is error.", + "title": "Is Error" + }, + "position": { + "type": "string", + "description": "The position.", + "title": "Position" + } + } + } + } + }, + "summary": "Check Sudoku answers", + "description": "Uses answer lines in a string format (separated by a dash) to retrieve errors and error position.", + "operationId": "SudokuCheck", + "parameters": [ + { + "name": "task", + "in": "query", + "x-ms-summary": "Answer", + "description": "The answer lines.", + "required": true, + "type": "string" + } + ] + } + }, + "/sudoku/generator": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "grid": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "description": "The grid.", + "title": "Grid" + }, + "task": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "description": "The task.", + "title": "Task" + } + } + } + } + }, + "summary": "Get a Sudoku puzzle", + "description": "Returns an array of the task and completed grid lines.", + "operationId": "SudokuGet", + "parameters": [ + { + "name": "fill", + "in": "query", + "x-ms-summary": "Fill", + "description": "The fill level.", + "required": false, + "type": "integer" + } + ] + } + }, + "/takuzu/generator": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "size": { + "type": "integer", + "format": "int32", + "description": "The size.", + "title": "Size" + }, + "field": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "The field.", + "title": "Field" + }, + "task": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "The task.", + "title": "Task" + } + } + } + } + }, + "summary": "Get a Takuzu puzzle", + "description": "Retrieves a puzzle based on the requested size and field fill.", + "operationId": "TakuzuGet", + "parameters": [ + { + "name": "size", + "in": "query", + "x-ms-summary": "Size", + "description": "The size.", + "required": false, + "type": "integer", + "default": 8 + }, + { + "name": "fill", + "in": "query", + "x-ms-summary": "Fill", + "description": "The fill level.", + "required": false, + "type": "integer", + "default": 33 + } + ] + } + }, + "/takuzu/verifier": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "isError": { + "type": "boolean", + "description": "Whether is error.", + "title": "Is Error" + }, + "message": { + "type": "string", + "description": "The message.", + "title": "Message" + }, + "position": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The position.", + "title": "Position" + } + } + } + } + }, + "description": "Uses answer lines in a string format (separated by a dash) to retrieve errors and error position.", + "summary": "Check Takuzu answers", + "operationId": "TakuzuCheck", + "parameters": [ + { + "name": "task", + "in": "query", + "x-ms-summary": "Answer", + "description": "The answer lines.", + "required": true, + "type": "string" + } + ] + } + }, + "/math/add": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "first": { + "type": "integer", + "format": "int32", + "description": "The first number.", + "title": "First" + }, + "second": { + "type": "integer", + "format": "int32", + "description": "The second number.", + "title": "Second" + }, + "operation": { + "type": "string", + "description": "The operation.", + "title": "Operation" + }, + "expression": { + "type": "string", + "description": "The expression.", + "title": "Expression" + }, + "answer": { + "type": "integer", + "format": "int32", + "description": "The answer.", + "title": "Answer" + } + } + } + } + }, + "summary": "Get an addition expression", + "description": "Retrieves a random addition expression.", + "operationId": "AdditionGet", + "parameters": [ + { + "name": "minFirst", + "in": "query", + "x-ms-summary": "First Minimum", + "description": "The first number minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxFirst", + "in": "query", + "x-ms-summary": "First Maximum", + "description": "The first number maximum.", + "required": false, + "type": "integer", + "default": 99 + }, + { + "name": "minSecond", + "in": "query", + "x-ms-summary": "Second Minimum", + "description": "The second number minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxSecond", + "in": "query", + "x-ms-summary": "Second Maximum", + "description": "The second number maximum", + "required": false, + "type": "integer", + "default": 99 + }, + { + "name": "negative", + "in": "query", + "x-ms-summary": "Negative", + "description": "Whether to allow (1) negative numbers or not (0).", + "required": false, + "type": "integer", + "default": 0, + "enum": [ + 0, + 1 + ] + } + ] + } + }, + "/schulte/generator": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "grid": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "description": "The grid.", + "title": "Grid" + } + } + } + } + }, + "summary": "Get a Schulte table", + "description": "Retrieves a random Schulte table with the given size and mode.", + "operationId": "SchulteGet", + "parameters": [ + { + "name": "size", + "in": "query", + "x-ms-summary": "Size", + "description": "The size.", + "required": false, + "type": "integer", + "default": 5, + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ] + }, + { + "name": "mode", + "in": "query", + "x-ms-summary": "Mode", + "description": "The mode.", + "required": false, + "type": "string", + "default": "number", + "enum": [ + "number", + "alphabet" + ] + } + ] + } + }, + "/minesweeper/generator": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "start": { + "type": "string", + "description": "The start position.", + "title": "Start" + }, + "width": { + "type": "integer", + "format": "int32", + "description": "The width.", + "title": "Width" + }, + "height": { + "type": "integer", + "format": "int32", + "description": "The height.", + "title": "Height" + }, + "board": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "The board.", + "title": "Board" + }, + "mines": { + "type": "integer", + "format": "int32", + "description": "The number of mines.", + "title": "Mines" + } + } + } + } + }, + "summary": "Get a Minesweeper puzzle", + "description": "Retrieve a random Minesweeper puzzle from the given width and height, number of mines, and start position.", + "operationId": "MinesweeperGet", + "parameters": [ + { + "name": "width", + "in": "query", + "x-ms-summary": "Width", + "description": "The width.", + "required": false, + "type": "integer", + "default": 9 + }, + { + "name": "height", + "in": "query", + "x-ms-summary": "Height", + "description": "The height.", + "required": false, + "type": "integer", + "default": 9 + }, + { + "name": "start", + "in": "query", + "x-ms-summary": "Start", + "description": "The start position.", + "required": false, + "type": "string" + }, + { + "name": "mines", + "in": "query", + "x-ms-summary": "Mines", + "description": "The number of mines.", + "required": false, + "type": "integer", + "default": 12 + } + ] + } + }, + "/wordsearch/generator": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "width": { + "type": "integer", + "format": "int32", + "description": "The width.", + "title": "Width" + }, + "height": { + "type": "integer", + "format": "int32", + "description": "The height.", + "title": "Height" + }, + "wordsCount": { + "type": "integer", + "format": "int32", + "description": "The words count.", + "title": "Words Count" + }, + "grid": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "The grid.", + "title": "Grid" + }, + "words": { + "type": "array", + "items": { + "type": "object", + "properties": { + "word": { + "type": "string", + "description": "The word.", + "title": "Word" + }, + "position": { + "type": "object", + "properties": { + "start": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The start.", + "title": "Start" + }, + "end": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The end.", + "title": "End" + } + }, + "description": "The position.", + "title": "Position" + } + } + }, + "title": "Words" + } + } + } + } + }, + "summary": "Get a word search puzzle", + "description": "Retrieve a random word search puzzle.", + "operationId": "WordSearchGet", + "parameters": [ + { + "name": "width", + "in": "query", + "x-ms-summary": "Width", + "description": "The width.", + "required": false, + "type": "integer", + "default": 9, + "enum": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + }, + { + "name": "height", + "in": "query", + "x-ms-summary": "Height", + "description": "The height.", + "required": false, + "type": "integer", + "default": 9, + "enum": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + } + ] + } + }, + "/anagram/generator": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Task": { + "type": "string", + "description": "The task.", + "title": "Task" + }, + "Words": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The words.", + "title": "Words" + } + } + } + } + }, + "summary": "Get an anagram", + "description": "Retrieves a word and an array of all possible words composed from that word.", + "operationId": "AnagramGet", + "parameters": [] + } + }, + "/math/sub": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "first": { + "type": "integer", + "format": "int32", + "description": "The first number.", + "title": "First" + }, + "second": { + "type": "integer", + "format": "int32", + "description": "The second number.", + "title": "Second" + }, + "operation": { + "type": "string", + "description": "The operation.", + "title": "Operation" + }, + "expression": { + "type": "string", + "description": "The expression.", + "title": "Expression" + }, + "answer": { + "type": "integer", + "format": "int32", + "description": "The answer.", + "title": "Answer" + } + } + } + } + }, + "summary": "Get a subtraction expression", + "description": "Retrieves a random subtraction expression.", + "operationId": "SubtractionGet", + "parameters": [ + { + "name": "minFirst", + "in": "query", + "x-ms-summary": "First Minimum", + "description": "The first number minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxFirst", + "in": "query", + "x-ms-summary": "First Maximum", + "description": "The first number maximum.", + "required": false, + "type": "integer", + "default": 99 + }, + { + "name": "minSecond", + "in": "query", + "x-ms-summary": "Second Minimum", + "description": "The second number minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxSecond", + "in": "query", + "x-ms-summary": "Second Maximum", + "description": "The second number maximum", + "required": false, + "type": "integer", + "default": 99 + }, + { + "name": "negative", + "in": "query", + "x-ms-summary": "Negative", + "description": "Whether to allow (1) negative numbers or not (0).", + "required": false, + "type": "integer", + "default": 0, + "enum": [ + 0, + 1 + ] + } + ] + } + }, + "/math/mul": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "first": { + "type": "integer", + "format": "int32", + "description": "The first number.", + "title": "First" + }, + "second": { + "type": "integer", + "format": "int32", + "description": "The second number.", + "title": "Second" + }, + "operation": { + "type": "string", + "description": "The operation.", + "title": "Operation" + }, + "expression": { + "type": "string", + "description": "The expression.", + "title": "Expression" + }, + "answer": { + "type": "integer", + "format": "int32", + "description": "The answer.", + "title": "Answer" + } + } + } + } + }, + "summary": "Get a multiplication expression", + "description": "Retrieves a random multiplication expression.", + "operationId": "MultiplicationGet", + "parameters": [ + { + "name": "minFirst", + "in": "query", + "x-ms-summary": "First Minimum", + "description": "The first number minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxFirst", + "in": "query", + "x-ms-summary": "First Maximum", + "description": "The first number maximum.", + "required": false, + "type": "integer", + "default": 99 + }, + { + "name": "minSecond", + "in": "query", + "x-ms-summary": "Second Minimum", + "description": "The second number minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxSecond", + "in": "query", + "x-ms-summary": "Second Maximum", + "description": "The second number maximum", + "required": false, + "type": "integer", + "default": 99 + }, + { + "name": "negative", + "in": "query", + "x-ms-summary": "Negative", + "description": "Whether to allow (1) negative numbers or not (0).", + "required": false, + "type": "integer", + "default": 0, + "enum": [ + 0, + 1 + ] + } + ] + } + }, + "/math/div": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "first": { + "type": "integer", + "format": "int32", + "description": "The first number.", + "title": "First" + }, + "second": { + "type": "integer", + "format": "int32", + "description": "The second number.", + "title": "Second" + }, + "operation": { + "type": "string", + "description": "The operation.", + "title": "Operation" + }, + "expression": { + "type": "string", + "description": "The expression.", + "title": "Expression" + }, + "answer": { + "type": "integer", + "format": "int32", + "description": "The answer.", + "title": "Answer" + } + } + } + } + }, + "summary": "Get a division expression", + "description": "Retrieves a random division expression.", + "operationId": "DivisionGet", + "parameters": [ + { + "name": "minFirst", + "in": "query", + "x-ms-summary": "First Minimum", + "description": "The first number minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxFirst", + "in": "query", + "x-ms-summary": "First Maximum", + "description": "The first number maximum.", + "required": false, + "type": "integer", + "default": 99 + }, + { + "name": "minSecond", + "in": "query", + "x-ms-summary": "Second Minimum", + "description": "The second number minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxSecond", + "in": "query", + "x-ms-summary": "Second Maximum", + "description": "The second number maximum", + "required": false, + "type": "integer", + "default": 99 + }, + { + "name": "negative", + "in": "query", + "x-ms-summary": "Negative", + "description": "Whether to allow (1) negative numbers or not (0).", + "required": false, + "type": "integer", + "default": 0, + "enum": [ + 0, + 1 + ] + } + ] + } + }, + "/math/quad": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "equation": { + "type": "string", + "description": "The equation.", + "title": "Equation" + }, + "a": { + "type": "integer", + "format": "int32", + "description": "The value of A.", + "title": "a" + }, + "b": { + "type": "integer", + "format": "int32", + "description": "The value of b.", + "title": "b" + }, + "c": { + "type": "integer", + "format": "int32", + "description": "The value of c.", + "title": "c" + }, + "discriminant": { + "type": "integer", + "format": "int32", + "description": "The discriminant.", + "title": "Discriminant" + }, + "x1": { + "type": "string", + "description": "The value of x1.", + "title": "x1" + }, + "x2": { + "type": "string", + "description": "The value of c2.", + "title": "x2" + } + } + } + } + }, + "summary": "Get a quadratic equation", + "description": "Retrieve a random quadratic equation.", + "operationId": "QuadraticGet", + "parameters": [ + { + "name": "minA", + "in": "query", + "x-ms-summary": "a Minimum", + "description": "The a minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxA", + "in": "query", + "x-ms-summary": "a Maximum", + "description": "The a maximum.", + "required": false, + "type": "integer", + "default": 20 + }, + { + "name": "minB", + "in": "query", + "x-ms-summary": "b Minimum", + "description": "The b minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxB", + "in": "query", + "x-ms-summary": "b Maximum", + "description": "The b maximum.", + "required": false, + "type": "integer", + "default": 40 + }, + { + "name": "minC", + "in": "query", + "x-ms-summary": "c Minimum", + "description": "The c minimum.", + "required": false, + "type": "integer", + "default": 1 + }, + { + "name": "maxC", + "in": "query", + "x-ms-summary": "c Maximum", + "description": "The c maximum.", + "required": false, + "type": "integer", + "default": 20 + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://github.com/cheatsnake/shadify" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://github.com/cheatsnake/shadify" + }, + { + "propertyName": "Categories", + "propertyValue": "Data;Lifestyle and Entertainment" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Shadify/apiProperties.json b/independent-publisher-connectors/Shadify/apiProperties.json new file mode 100644 index 000000000..b548e9bc1 --- /dev/null +++ b/independent-publisher-connectors/Shadify/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor", + "stackOwner": "Yury Swiderko" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Shadify/readme.md b/independent-publisher-connectors/Shadify/readme.md new file mode 100644 index 000000000..c5f3183aa --- /dev/null +++ b/independent-publisher-connectors/Shadify/readme.md @@ -0,0 +1,41 @@ +# Shadify +Shadify is a powerful service for generating data and executing various logic to create different applications and games. Endpoints include data generated for Suduku, Takuzu, Schulte, Minesweeper, word search, anagrams, and math expressions. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +There are no prerequisites to use this service. + +## Obtaining Credentials +There are no credentials needed to use this service. + +## Supported Operations +### Check Sudoku answers +Uses answer lines in a string format (separated by a dash) to retrieve errors and error position. +### Get a Sudoku puzzle +Returns an array of the task and completed grid lines. +### Get a Takuzu puzzle +Retrieves a puzzle based on the requested size and field fill. +### Check Takuzu answers +Uses answer lines in a string format (separated by a dash) to retrieve errors and error position. +### Get a Schulte table +Retrieves a random Schulte table with the given size and mode. +### Get a Minesweeper puzzle +Retrieve a random Minesweeper puzzle from the given width and height, number of mines, and start position. +### Get a word search puzzle +Retrieve a random word search puzzle. +### Get an anagram +Retrieves a word and an array of all possible words composed from that word. +### Get an addition expression +Retrieves a random addition expression. +### Get a subtraction expression +Retrieves a random subtraction expression. +### Get a multiplication expression +Retrieves a random multiplication expression. +### Get a division expression +Retrieves a random division expression. +### Get a quadratic equation +Retrieve a random quadratic equation. + +## Known Issues and Limitations +There are no known issues at this time.