@lynsoluciones/medusa-docs
Version:
Medusa plugins to generate docs
161 lines (160 loc) • 9.24 kB
JavaScript
"use strict";
/*
*
*
* MIT License
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
const medusa_1 = require("@medusajs/medusa");
const document_shipping_tag_settings_1 = require("../models/document-shipping-tag-settings");
const utils_1 = require("@medusajs/utils");
class DocumentShippingTagSettingsService extends medusa_1.TransactionBaseService {
constructor(container) {
super(container);
try {
this.loggedInUser_ = container.authenticatedUser;
}
catch (e) {
// avoid errors when backend first runs
}
}
copySettingsIfPossible(newSettings, lastSettings) {
if (lastSettings) {
newSettings.forced_number = lastSettings.forced_number;
newSettings.number_format = lastSettings.number_format;
newSettings.template = lastSettings.template;
}
}
async getShippingTagForcedNumber() {
const documentShippingTagSettings = await this.getDocumentShippingTagSettings();
if (documentShippingTagSettings && documentShippingTagSettings.forced_number) {
const nextNumber = documentShippingTagSettings.forced_number.toString();
return nextNumber;
}
return undefined;
}
async resetForcedNumberByCreatingNewSettings() {
const documentShippingTagSettingsRepository = this.activeManager_.getRepository(document_shipping_tag_settings_1.DocumentShippingTagSettings);
const documentShippingTagSettings = await this.getDocumentShippingTagSettings();
if (!documentShippingTagSettings) {
const newDocumentShippingTagSettings = this.activeManager_.create(document_shipping_tag_settings_1.DocumentShippingTagSettings);
newDocumentShippingTagSettings.forced_number = undefined;
newDocumentShippingTagSettings.store_id = this.loggedInUser_.store_id;
return await documentShippingTagSettingsRepository.save(newDocumentShippingTagSettings);
}
documentShippingTagSettings.forced_number = undefined;
documentShippingTagSettings.store_id = this.loggedInUser_.store_id;
const result = await documentShippingTagSettingsRepository.save(documentShippingTagSettings);
return result;
}
async getLastDocumentShippingTagSettings() {
const documentShippingTagSettingsRepository = this.activeManager_.getRepository(document_shipping_tag_settings_1.DocumentShippingTagSettings);
const documentShippingTagSettings = await documentShippingTagSettingsRepository.createQueryBuilder('documentShippingTagSettings')
.orderBy('documentShippingTagSettings.created_at', 'DESC')
.getOne();
if (documentShippingTagSettings === null) {
return undefined;
}
return documentShippingTagSettings;
}
async getDocumentShippingTagSettings() {
const documentShippingTagSettingsRepository = this.activeManager_.getRepository(document_shipping_tag_settings_1.DocumentShippingTagSettings);
const lastDocumentShippingTagSettings = await documentShippingTagSettingsRepository.createQueryBuilder('documentShippingTagSettings')
.where("documentShippingTagSettings.store_id = :storeId", { storeId: this.loggedInUser_.store_id })
.orderBy('documentShippingTagSettings.created_at', 'DESC')
.getOne();
if (lastDocumentShippingTagSettings === null) {
return undefined;
}
return lastDocumentShippingTagSettings;
}
async getShippingTagTemplate() {
const lastDocumentShippingTagSettings = await this.getDocumentShippingTagSettings();
if (lastDocumentShippingTagSettings) {
return lastDocumentShippingTagSettings.template;
}
return undefined;
}
async updateShippingTagForcedNumber(forcedNumber) {
if (forcedNumber && !isNaN(Number(forcedNumber))) {
const documentShippingTagSettingsRepository = this.activeManager_.getRepository(document_shipping_tag_settings_1.DocumentShippingTagSettings);
const documentShippingTagSettings = await this.getDocumentShippingTagSettings();
if (!documentShippingTagSettings) {
const newDocumentShippingTagSettings = this.activeManager_.create(document_shipping_tag_settings_1.DocumentShippingTagSettings);
newDocumentShippingTagSettings.forced_number = parseInt(forcedNumber);
newDocumentShippingTagSettings.store_id = this.loggedInUser_.store_id;
return await documentShippingTagSettingsRepository.save(newDocumentShippingTagSettings);
}
documentShippingTagSettings.forced_number = parseInt(forcedNumber);
documentShippingTagSettings.store_id = this.loggedInUser_.store_id;
const result = await documentShippingTagSettingsRepository.save(documentShippingTagSettings);
return result;
}
else {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'You need to set proper number');
}
}
async updateShippingTagTemplate(shippingTagTemplate) {
const documentShippingTagSettingsRepository = this.activeManager_.getRepository(document_shipping_tag_settings_1.DocumentShippingTagSettings);
const documentShippingTagSettings = await this.getDocumentShippingTagSettings();
if (!documentShippingTagSettings) {
const newDocumentShippingTagSettings = this.activeManager_.create(document_shipping_tag_settings_1.DocumentShippingTagSettings);
newDocumentShippingTagSettings.template = shippingTagTemplate;
newDocumentShippingTagSettings.store_id = this.loggedInUser_.store_id;
return await documentShippingTagSettingsRepository.save(newDocumentShippingTagSettings);
}
documentShippingTagSettings.template = shippingTagTemplate;
documentShippingTagSettings.store_id = this.loggedInUser_.store_id;
const result = await documentShippingTagSettingsRepository.save(documentShippingTagSettings);
return result;
}
async updateFormatNumber(newFormatNumber) {
const documentShippingTagSettingsRepository = this.activeManager_.getRepository(document_shipping_tag_settings_1.DocumentShippingTagSettings);
const documentShippingTagSettings = await this.getDocumentShippingTagSettings();
if (!documentShippingTagSettings) {
const newDocumentShippingTagSettings = this.activeManager_.create(document_shipping_tag_settings_1.DocumentShippingTagSettings);
newDocumentShippingTagSettings.number_format = newFormatNumber;
newDocumentShippingTagSettings.store_id = this.loggedInUser_.store_id;
return await documentShippingTagSettingsRepository.save(newDocumentShippingTagSettings);
}
documentShippingTagSettings.number_format = newFormatNumber;
documentShippingTagSettings.store_id = this.loggedInUser_.store_id;
const result = await documentShippingTagSettingsRepository.save(documentShippingTagSettings);
return result;
}
async updateSettings(newFormatNumber, forcedNumber, shippingTagTemplate) {
const documentShippingTagSettingsRepository = this.activeManager_.getRepository(document_shipping_tag_settings_1.DocumentShippingTagSettings);
const documentShippingTagSettings = await this.getDocumentShippingTagSettings();
if (!documentShippingTagSettings) {
const newDocumentShippingTagSettings = this.activeManager_.create(document_shipping_tag_settings_1.DocumentShippingTagSettings);
newDocumentShippingTagSettings.number_format = newFormatNumber;
newDocumentShippingTagSettings.template = shippingTagTemplate;
newDocumentShippingTagSettings.store_id = this.loggedInUser_.store_id;
if (forcedNumber !== undefined && !isNaN(Number(forcedNumber))) {
newDocumentShippingTagSettings.forced_number = parseInt(forcedNumber);
}
return await documentShippingTagSettingsRepository.save(newDocumentShippingTagSettings);
}
if (newFormatNumber) {
documentShippingTagSettings.number_format = newFormatNumber;
}
if (forcedNumber !== undefined && !isNaN(Number(forcedNumber))) {
documentShippingTagSettings.forced_number = parseInt(forcedNumber);
}
if (shippingTagTemplate) {
documentShippingTagSettings.template = shippingTagTemplate;
}
if (this.loggedInUser_.store_id) {
documentShippingTagSettings.store_id = this.loggedInUser_.store_id;
}
const result = await documentShippingTagSettingsRepository.save(documentShippingTagSettings);
return result;
}
}
exports.default = DocumentShippingTagSettingsService;