Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import i18n from "./i18n";
import mutations from "./mutations";
import queries from "./queries";
import resolvers from "./resolvers";
import schemas from "./schemas";
import i18n from "./i18n/index.js";
import mutations from "./mutations/index.js";
import queries from "./queries/index.js";
import resolvers from "./resolvers/index.js";
import schemas from "./schemas/index.js";
import { Tag } from "./simpleSchemas.js";

/**
* @summary Import and call this function to add this plugin to your API.
Expand Down Expand Up @@ -35,6 +36,9 @@ export default async function register(app) {
},
mutations,
queries,
simpleSchemas: {
Tag
},
registry: [{
label: "Tags",
description: "Tag Management",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Random from "@reactioncommerce/random";
import ReactionError from "@reactioncommerce/reaction-error";
import { Tag as TagSchema } from "/imports/collections/schemas";
import getSlug from "/imports/plugins/core/core/server/Reaction/getSlug";
import getSlug from "@reactioncommerce/api-utils/getSlug.js";
import { Tag as TagSchema } from "../simpleSchemas.js"; // TODO: update schemas

/**
* @name Mutation.addTag
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import mockContext from "/imports/test-utils/helpers/mockContext";
import addTag from "./addTag";
import mockContext from "@reactioncommerce/api-utils/tests/mockContext.js";
import addTag from "./addTag.js";

beforeEach(() => {
jest.resetAllMocks();
Expand Down
11 changes: 11 additions & 0 deletions imports/node-app/core-services/tags/mutations/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import addTag from "./addTag.js";
import setTagHeroMedia from "./setTagHeroMedia.js";
import removeTag from "./removeTag.js";
import updateTag from "./updateTag.js";

export default {
addTag,
setTagHeroMedia,
removeTag,
updateTag
};
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import mockContext from "/imports/test-utils/helpers/mockContext";
import removeTag from "./removeTag";
import mockContext from "@reactioncommerce/api-utils/tests/mockContext.js";
import removeTag from "./removeTag.js";

const testShopId = "1234";
const testTagId = "5678";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import ReactionError from "@reactioncommerce/reaction-error";
import SimpleSchema from "simpl-schema";
import getSlug from "/imports/plugins/core/core/server/Reaction/getSlug";
import getSlug from "@reactioncommerce/api-utils/getSlug.js";

const inputSchema = new SimpleSchema({
"slug": String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* eslint-disable id-length */
import mockContext from "/imports/test-utils/helpers/mockContext";
import updateTag from "./updateTag";
import mockContext from "@reactioncommerce/api-utils/tests/mockContext.js";
import updateTag from "./updateTag.js";

const testShopId = "1234";
const testTagId = "5678";
Expand Down
5 changes: 5 additions & 0 deletions imports/node-app/core-services/tags/queries/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import productsByTagId from "./productsByTagId.js";

export default {
productsByTagId
};
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import ReactionError from "@reactioncommerce/reaction-error";
import arrayJoinPlusRemainingQuery from "/imports/utils/arrayJoinPlusRemainingQuery";
import arrayJoinPlusRemainingQuery from "@reactioncommerce/api-utils/arrayJoinPlusRemainingQuery.js";

/**
* @name queries.productsByTagId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { encodeShopOpaqueId } from "@reactioncommerce/reaction-graphql-xforms/shop";
import { encodeTagOpaqueId } from "@reactioncommerce/reaction-graphql-xforms/tag";
import addTag from "./addTag";
import addTag from "./addTag.js";

beforeEach(() => {
jest.resetAllMocks();
Expand Down
11 changes: 11 additions & 0 deletions imports/node-app/core-services/tags/resolvers/Mutation/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import addTag from "./addTag.js";
import setTagHeroMedia from "./setTagHeroMedia.js";
import removeTag from "./removeTag.js";
import updateTag from "./updateTag.js";

export default {
addTag,
setTagHeroMedia,
removeTag,
updateTag
};
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

import { encodeShopOpaqueId } from "@reactioncommerce/reaction-graphql-xforms/shop";
import { encodeTagOpaqueId } from "@reactioncommerce/reaction-graphql-xforms/tag";
import removeTag from "./removeTag";
import removeTag from "./removeTag.js";

beforeEach(() => {
jest.resetAllMocks();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { encodeShopOpaqueId } from "@reactioncommerce/reaction-graphql-xforms/shop";
import { encodeTagOpaqueId } from "@reactioncommerce/reaction-graphql-xforms/tag";
import updateTag from "./updateTag";
import updateTag from "./updateTag.js";

beforeEach(() => {
jest.resetAllMocks();
Expand Down
5 changes: 5 additions & 0 deletions imports/node-app/core-services/tags/resolvers/Query/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import productsByTagId from "./productsByTagId.js";

export default {
productsByTagId
};
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { getConnectionTypeResolvers } from "@reactioncommerce/reaction-graphql-utils";
import Mutation from "./Mutation";
import Query from "./Query";
import Mutation from "./Mutation/index.js";
import Query from "./Query/index.js";

export default {
Mutation,
Expand Down
125 changes: 125 additions & 0 deletions imports/node-app/core-services/tags/simpleSchemas.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
import SimpleSchema from "simpl-schema";

/**
* @name Metafield
* @memberof Schemas
* @type {SimpleSchema}
* @property {String} key optional
* @property {String} namespace optional
* @property {String} scope optional
* @property {String} value optional
* @property {String} valueType optional
* @property {String} description optional
*/
const Metafield = new SimpleSchema({
key: {
type: String,
max: 30,
optional: true
},
namespace: {
type: String,
max: 20,
optional: true
},
scope: {
type: String,
optional: true
},
value: {
type: String,
optional: true
},
valueType: {
type: String,
optional: true
},
description: {
type: String,
optional: true
}
});

/**
* @name Tag
* @memberof Schemas
* @type {SimpleSchema}
* @property {String} _id optional
* @property {String} name required
* @property {String} slug required
* @property {String} type optional
* @property {Metafield[]} metafields optional
* @property {Number} position optional
* @property {String[]} relatedTagIds optional
* @property {Boolean} isDeleted default value: `false`
* @property {Boolean} isTopLevel required
* @property {Boolean} isVisible default value: `true`
* @property {String[]} groups optional, default value: `[],` groupIds that this tag belongs to
* @property {String} shopId Tag shopId
* @property {Date} createdAt required
* @property {Date} updatedAt required
*/
export const Tag = new SimpleSchema({
"_id": {
type: String,
optional: true
},
"name": String,
"slug": String,
"type": {
type: String,
optional: true
},
"metafields": {
type: Array,
optional: true
},
"metafields.$": Metafield,
"position": {
type: SimpleSchema.Integer,
optional: true
},
"relatedTagIds": {
type: Array,
optional: true
},
"relatedTagIds.$": String,
"isDeleted": {
type: Boolean,
defaultValue: false
},
"isTopLevel": Boolean,
"isVisible": {
type: Boolean,
defaultValue: true
},
"groups": {
type: Array, // groupIds that this tag belongs to
optional: true,
defaultValue: []
},
"groups.$": String,
"shopId": {
type: String,
label: "Tag shopId"
},
"createdAt": {
type: Date
},
"updatedAt": {
type: Date
},
"heroMediaUrl": {
type: String,
optional: true
},
"displayTitle": {
type: String,
optional: true
},
"featuredProductIds": {
type: Array,
optional: true
},
"featuredProductIds.$": String
});
2 changes: 1 addition & 1 deletion imports/node-app/registerPlugins.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import registerI18nPlugin from "./core-services/i18n/index.js";
import registerSettingsPlugin from "./core-services/settings/index.js";
import registerShippingPlugin from "./core-services/shipping/index.js";
import registerShopPlugin from "./core-services/shop/index.js";
import registerTagsPlugin from "./core-services/tags/index.js";

/* plugins */
import registerAddressPlugin from "./plugins/address/index.js";
Expand Down Expand Up @@ -43,7 +44,6 @@ import registerProductPlugin from "/imports/plugins/core/product/server/no-meteo
import registerProductVariantPlugin from "/imports/plugins/included/product-variant/server/no-meteor/register";
import registerSitemapGeneratorPlugin from "/imports/plugins/included/sitemap-generator/server/no-meteor/register";
import registerStripePaymentsPlugin from "/imports/plugins/included/payments-stripe/server/no-meteor/register";
import registerTagsPlugin from "/imports/plugins/core/tags/server/no-meteor/register";
import registerTaxesPlugin from "/imports/plugins/core/taxes/server/no-meteor/register";
import registerTaxesRatesPlugin from "/imports/plugins/included/taxes-rates/server/no-meteor/register";

Expand Down
2 changes: 1 addition & 1 deletion imports/plugins/core/tags/register.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
* temporary bridge.
*/
import Reaction from "/imports/plugins/core/core/server/Reaction";
import register from "./server/no-meteor/register";
import register from "/imports/node-app/core-services/tags/index.js";

Reaction.whenAppInstanceReady(register);
11 changes: 0 additions & 11 deletions imports/plugins/core/tags/server/no-meteor/mutations/index.js

This file was deleted.

5 changes: 0 additions & 5 deletions imports/plugins/core/tags/server/no-meteor/queries/index.js

This file was deleted.

This file was deleted.

This file was deleted.