Skip to content

Commit

Permalink
Added export/import templates
Browse files Browse the repository at this point in the history
  • Loading branch information
Fi1osof committed Apr 25, 2020
1 parent a846f9b commit dbef4ea
Show file tree
Hide file tree
Showing 11 changed files with 1,970 additions and 1 deletion.
2 changes: 2 additions & 0 deletions .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@ GethServer=

# Connect all notification types to user on signup
SIGNUP_SET_NOTIFICATIONS=true

API_SEED_TEMPLATES=false
3 changes: 3 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
============================================
- Added export/import templates

4.4.2
============================================
- Remove legacy code
Expand Down
8 changes: 8 additions & 0 deletions src/server/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ import dotenv from "dotenv";
import * as helpers from "./helpers";
import permissions from './middleware/permissions';

import seed from './seed';

dotenv.config();


Expand Down Expand Up @@ -154,6 +156,12 @@ const startServer = async function () {

await server.startServer();

seed({
db: server.db,
});

// console.log('server.db', server.db);

}

startServer();
Expand Down
3 changes: 2 additions & 1 deletion src/server/middleware/permissions/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ export default shield(
createCountryProcessor: rules.isSudo,
updateCountryProcessor: rules.isSudo,
deleteCountry: rules.isSudo,


exportTemplates: rules.isSudo,
},
},
{
Expand Down
99 changes: 99 additions & 0 deletions src/server/modules/ImportExport/Template/index.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@

import PrismaModule from "@prisma-cms/prisma-module";
import PrismaProcessor from "@prisma-cms/prisma-processor";
import fs from 'fs';


export class TemplateProcessor extends PrismaProcessor {

constructor(props) {

super(props);

this.objectType = "Template";
}


async exportTemplates() {

const {
db,
} = this.ctx;

let result = false;

const templates = await db.query.templates({
// first: 1,
orderBy: "createdAt_ASC",
}, `
{
id
externalKey
name
description
component
props
components
vars
rank
Parent {
id
}
}
`);

fs.writeFileSync('src/server/seed/data/templates.json', JSON.stringify(templates, true, 2), {
flag: "w+",
});

result = true;

return result;
}
}


export default class TemplateModule extends PrismaModule {

constructor(props = {}) {

super(props);

this.mergeModules([
]);

}


getProcessor(ctx) {
return new (this.getProcessorClass())(ctx);
}


getProcessorClass() {
return TemplateProcessor;
}


getResolvers() {

const {
Mutation: {
...Mutation
},
...other
} = super.getResolvers();

return {
...other,
Mutation: {
...Mutation,
exportTemplates: (source, args, ctx, info) => {
return this.getProcessor(ctx).exportTemplates(args, info);
},
},
}

}

}
18 changes: 18 additions & 0 deletions src/server/modules/ImportExport/index.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@

import PrismaModule from "@prisma-cms/prisma-module";

import TemplateModule from './Template';

export default class ImportExportModule extends PrismaModule {

constructor(props) {

super(props);

this.mergeModules([
TemplateModule,
]);

}

}
2 changes: 2 additions & 0 deletions src/server/modules/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import Comment from "./Comment";
import OSMModule from "./OSM";
import WorldModule from "./World";

import ImportExportModule from './ImportExport';

import chalk from 'chalk';

Expand Down Expand Up @@ -101,6 +102,7 @@ class CoreModule extends PrismaModule {
UserModule,
OSMModule,
WorldModule,
ImportExportModule,
])
);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

"""Экспорт шаблонов"""
type Mutation {
exportTemplates: Boolean!
}
Loading

0 comments on commit dbef4ea

Please sign in to comment.