Skip to content

Instantly share code, notes, and snippets.

View navsqi's full-sized avatar

Nauval Shidqi navsqi

View GitHub Profile
@navsqi
navsqi / 1.type_basic.ts
Last active October 18, 2021 12:48
Belajar typescript
// string
let nama: string = 'Nauval';
nama = 'Shidqi Ganteng';
// number
let umur: number = 12;
umur = 6;
let angka = <number>umur; // cara lain deklarasi variable Type Assertion
console.log('angka', angka);
@navsqi
navsqi / joi.js
Created March 15, 2021 09:48
Validasi dengan Joi di Node.JS
// Full docs: https://joi.dev/api/?v=17.4.0
const Joi = require('joi');
try {
const schema = Joi.object().keys({
name: Joi.string().min(2).required().messages({
'string.base': `"username" should be a type of 'text'`,
'string.empty': `"username" cannot be an empty field`,
'string.min': `"username" should have a minimum length of {#limit}`,
'any.required': `"username" is a required field`,
@navsqi
navsqi / error.txt
Last active April 29, 2021 09:07
Error on working
Error: Ngirim email menggunakan nodemailer & smtp google, di pc local lancar di production gagal.
Error Message: Error: connect ECONNREFUSED,code: ESOCKET, port: 45
Sebelumnya:
nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'xx',
pass: 'xx',
@navsqi
navsqi / psql.sql
Last active June 13, 2021 06:40
PostgreSQL Cheatseet
-- Install: https://www.2ndquadrant.com/en/blog/pginstaller-install-postgresql/
-- Env postgresn in windows: https://sqlbackupandftp.com/blog/setting-windows-path-for-postgres-tools
-- Nyalain service
-- Run (Win + R) -> services.msc
-- Cari PostgreSQL -> klik kanan -> start
-- Menjalankan perintah SQL di CMD
-- cd C:\Program Files\2ndQuadrant\PostgreSQL\12\bin
-- psql.exe -U postgres
@navsqi
navsqi / triggers.sql
Last active December 23, 2020 15:11
Membuat trigger di MySQL
-- Cara penulisan triggers
DELIMITER $$
CREATE TRIGGER nama_trigger
{BEFORE | AFTER} {INSERT | UPDATE| DELETE }
ON nama_table
FOR EACH ROW
BEGIN
KODE SQL
END$$
DELIMITER ;
@navsqi
navsqi / scheduler.sql
Created December 23, 2020 15:02
Membuat event scheduler di MySQL
-- Aktifkan event scheduler
SET GLOBAL event_scheduler := 1;
SELECT @@event_scheduler;
-- Menampilkan events yang ada pada db
SHOW EVENTS;
-- Contoh
-- nama event: event_payments
CREATE EVENT `event_payments` ON SCHEDULE EVERY 1 MINUTE
@navsqi
navsqi / cron.bash
Last active December 18, 2020 10:56
Cronjobs cpanel
# Back up db
# 0 0 * * * => everyday at 00:00
mysqldump -u user_name -p'your_password' -h127.0.0.1 db_name | gzip > /home/dreamtechnology/logistics/backups/backup_$(date +"\%Y.\%m.\%d.\%S.\%N").sql.gz
# Curl
# */5 * * * * => every 5 minute
curl -m 120 -s http://api.xxx.com
@navsqi
navsqi / 1.appError.js
Last active November 11, 2020 08:05
Error handling in Node.JS
class AppError extends Error {
constructor(message, statusCode) {
super(message);
this.statusCode = statusCode;
this.status = `${statusCode}`.startsWith('4') ? 'fail' : 'error';
this.isOperational = true;
Error.captureStackTrace(this, this.constructor);
}
@navsqi
navsqi / 01.StoresMigration.js
Last active December 17, 2020 04:59
Sequelize guide examples.
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('stores', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
@navsqi
navsqi / apidocjs.js
Created August 12, 2020 06:30
Membuat dokumentasi API dengan APIdocJS
https://speakerdeck.com/rottmann/api-documentation?slide=14
https://indrakusuma.web.id/2017/11/09/Tutorial-Buat-Dokumentasi-RESTful-API-dengan-APIdocJS/