symphonygopher

command module
v0.0.0-...-cad6fc2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 27, 2017 License: MIT Imports: 1 Imported by: 0

README

Symphony Go Code Sample

Pre requirements

Requirements for this project are localy installed Golang and mongodb. You should create database with any name and create one user with read/write permisions. (Later in examples I used database called symphonyGopher and user with credentials user:password on port 27017)

Configuration

Application configuration is stored in environment variables.

Example script to configure environment (added to $HOME/.bash_profile):

  • Go variables export GOPATH="/Users/stefanilijevski/go" export GOBIN="/Users/stefanilijevski/go/bin"

  • SympohonyGopher variables export SG_DB="mongodb://user:password@localhost:27017/symphonyGopher" export SG_PORT=8082

Installation

Application uses vendoring, and govendor tool to manage dependencies. Dependencies are kept into vendor/ folder, aren't version controlled. Folders under vendor/ folder are ignored.

Steps
  • Install govendor tool go get -u github.com/kardianos/govendor
  • Run govendor get github.com/IlijevskiSymphony/symphonyGopher
  • Run govendor sync in project folder
  • To install project, run go install
  • Change directory to bin: cd $GOPATH/bin
  • Run application server with ./symphonyGopher

Examples of use

Server endpoints and their purpose:

  • '/register' (POST) Used for registration of new user, expects next form data parameters in JSON format. { "email":"random123@gmail.com", "password": "Ilijevski1234" }

  • '/signup/accept/{reference uuid}' (GET) Used to confirm registration and should be sent by email. Reference uuid is stored in registrations document and is referenced to user by 'partnerID'

  • '/login' (GET) Used to check if there is current session active. Session is stored in cookie.

  • '/login' (POST) Used to login to server and create new session, expects next form data parameters in JSON format. { "email":"random123@gmail.com", "password": "Ilijevski1234" }

  • '/logout' (GET) Used to terminate user session

  • '/addLink' (POST) Add link with tags to repository for logged in user, expects next form data parameters in JSON format. { "link":"www.symphony.is", "tags": [ "da", "ud" ] }

  • '/verification/resend' (POST) Resends verification email for registrated credentials, expects next form data parameters in JSON format. { "email":"random123@gmail.com" }

  • '/resetPasswordEmail' (POST) Sends an email with reference to user to reset password, expects next form data parameters in JSON format. { "email":"random123@gmail.com" }

  • '/resetPasswordCheck/{reference}' (GET) Checks if reference used from reset password email is valid

  • '/resetPassword' (POST) Resets password for user that used link from the email, expects next form data parameters in JSON format. { "password":"newPassword123" "id":"e1955c74-8211-43fb-a1d1-b43e24ef6d1e" }

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL