diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-django-trips.spec | 751 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 753 insertions, 0 deletions
@@ -0,0 +1 @@ +/django%20-%20trips-0.2.10.tar.gz diff --git a/python-django-trips.spec b/python-django-trips.spec new file mode 100644 index 0000000..456450e --- /dev/null +++ b/python-django-trips.spec @@ -0,0 +1,751 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-trips +Version: 0.2.10 +Release: 1 +Summary: A Django Rest API for fetching and creating trips and their schedules. +License: MIT License +URL: https://github.com/awaisdar001/django-trips +Source0: https://mirrors.aliyun.com/pypi/web/packages/52/72/8dc8d7f8d47583f8ea63147868a7d6d25d20198631d3b625e8f0dac11fb4/django%20-%20trips-0.2.10.tar.gz +BuildArch: noarch + +Requires: python3-setuptools + +%description +# Django Trips API + +This is a Django Rest API for fetching and creating trips and schedules. +## Installation +Simply do: +```bash +pip install django-trips +``` + +## Usage +Add the app into your installed apps in your project's settings file. +``` +INSTALLED_APPS = [ + ... + 'django_trips', +] +``` +## Migrate +``` +python manage.py migrate +``` +Add the following to your root `urls.py` or to your desired file location. +``` +urlpatterns = [ + ... + path('trips/', include(('django_trips.api.urls', 'trips-api'), namespace='trips-api')), +] +``` +You can replace `trips/` to any namespace you like for the api. + +## Generate random trips. +Before you generate random scripts, make sure you have the required settings available in your project. If you want to use the default settings set `USE_DEFAULT_TRIPS=True`. +The script depends upon these variables, if you don't want to use the default settings set the +following settings. +1. `TRIP_DESTINATIONS` +2. `TRIP_DEPARTURE_LOCATION` +3. `TRIP_LOCATIONS = TRIP_DEPARTURE_LOCATION + TRIP_DESTINATIONS` +4. `TRIP_HOSTS` +5. `TRIP_FACILITIES` +6. `TRIP_CATEGORIES` +7. `TRIP_GEARS` + +``` +python manage.py generate_trips --batch_size=100 +``` +Change the `batch_size` variable to create as much of trips you want. + +## API Endpoints +The following pages are served in the development: + +| Page | Method | URL | +|----------------------|------------------|----------------------------------------------- | +| Scheduled Trips List | GET | http://localhost:8000/api/trips/ | +| Available Trips List | GET | http://localhost:8000/api/trips/by/availability/ | +| Search Trip | GET | http://localhost:8000/api/trips?name=Boston/ | +| Single Trip | GET | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Update Trip | PUT | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Update Trip | PATCH | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Delete Trip | DELETE | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Destination | GET | http://localhost:8000/api/destinations/ | +| Destination Detail | GET | http://localhost:8000/api/destination/location-slug | +| All Trip Bookings | GET | http://localhost:8000/api/trip/bookings | +| Single Bookings | GET | http://localhost:8000/api/trip/booking/id | +| Single Trip Bookings | GET | http://localhost:8000/api/trip/<trip-slug>/bookings | | + + +### API permissions +| Authentication +|-------------------------- | +| `SessionAuthentication` | +| `BasicAuthentication` | + +| Permissions | +|------------------------- | +| `IsAuthenticated` | + + +### Trip List +`http://localhost:8000/api/trips/` + +This endpoint is used to list all the trips by schedule using the **GET** request type. These trips have specified +(fixed) schedule. These trips use django model `TripSchedule` for creating their schedule. Once the schedule is expired, +these trips do not renew automatically. +These are the trip with "**static**" schedule data. + +### Trip List by Availability +`http://localhost:8000/api/trips/by/availability/` + +There is another mechanism which would like you to define dynamic trips schedule. Which is using `TripAvailability` +model. In this model you can define the recurrence of any trip, weekly, daily, or monthly and these trip may +auto-renew themselves. They come handy when you have dynamic trips schedule. + +### Search Trip +`http://localhost:8000/api/trip/id-or-slug?destination=<destination name, destination name 2,>` + +Search specific trips. Here are the params that can be passed while searching. You can also mix the params together to +narrow down the search. + +| param | description | example | +| --- | --- |--- | +| name (str) | Find trips that contains specific name. | `/api/trips/?name=Boston` +| destination[] | Filter trips with specific destinations. | `destination=Boston,London` +| price_from (str) | Find trips that has price greater than or equal to the given amount | `/api/trips/?price_from=200` +| price_to (str) | Find trips that has price less than or equal to the given amount | `/api/trips/?price_to=200` +| duration_from (int) | Find trips having duration greater than or equal to the given number | `/api/trips/?duration_from=2` +| duration_to (int) | Find trips having duration less than or equal to the given number | `/api/trips/?duration_to=10` +| date_from (date) | Find trips that are scheduled greater than or specified date `<yyyy-mm-dd>` | `/api/trips/?date_from=2020-01-02` +| date_to (date) | Find trips that are scheduled less than or equal to specified date`<yyyy-mm-dd>` | `/api/trips/?date_from=2020-01-02` + + + +### Single Trip +`http://localhost:8000/api/trip/id-or-slug` + +This endpoint is used to fetch a single trip using GET request type. + +### Update Trip (using PUT) +`http://localhost:8000/api/trip/trip-id-or-slug/` + +This endpoint is used to update a single trip using PUT request type. You would need to pass the complete trip object. +```python +reset_of_params = {} +data = { + 'age_limit': 39, + **reset_of_params, +} +``` +### Update Trip (using PATCH) +`http://localhost:8000/api/trip/trip-id-or-slug/` +```python +data = { + 'age_limit': 39, +} +``` +### Update Trip (using PUT) +`http://localhost:8000/api/trip/trip-id-or-slug/` + +This endpoint is used to delete a single trip using DELETE request type. + +### Get Destinations List +`http://localhost:8000/api/destinations/` + +This endpoint is used to fetch all destinations available. + +### Get Destination Detail +`http://localhost:8000/api/destination/destination-slug` + +Given a slug, this endpoint provides detail about a single trip. + +### Create Trip booking +`http://localhost:8000/api/trip/bookings` + +#### GET: +Get all the trips list using the `GET` request method. +#### POST: +Create trip booking by giving the following "example" data in the `POST` request. +``` +{ + "name": "tom latham", + "trip": "5-days-trip-to-city-center", + "phone_number": "tom", + "cnic_number": "1234234-23423", + "email": "a@gmail.com", + "target_date": "2021-09-01", + "message": "Tom booking# 1" +} +``` + +### Single Trip booking Operations +`http://localhost:8000/api/trip/booking/<booking-id>/` + +Retrieve, Update & Delete a single trip booking. + +### All Trip Bookings +`http://localhost:8000/api/trip/<trip-slug>bookings/` + +Retrieve all bookings of a single trip. + +## Develop Django Trips +Kick the docker build using the following command. +``` +make build +``` +This task may take few minutes. + + +Once the build has been completed, spin up the docker and migrate the database. +```bash +> make run +> make shell +> make update_db +``` +Create a superuser with username `admin`. + +``` bash +> make shell +> python manage.py createsuperuser +``` + +Create batch of trips. Run the following command inside docker shell. +```bash +> python manage.py generate_trips --batch_size=100 +OR +> make random_trips +``` + +## Test +Run tests using the following command. +``` +make tests +``` +## Docker Commands + +| Action | Command | +|-----------------------------------|-------------------| +| Run Server | `make run` | +| Trail Logs | `make logs` | +| Attach sever | `make attach` | +| Stop server | `make stop` | +| * Destroy docker container. | `make destory` | + +_* caution, this will remove all your data._ + +## How to Contribute +Contributions are welcome! + + + +%package -n python3-django-trips +Summary: A Django Rest API for fetching and creating trips and their schedules. +Provides: python-django-trips +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-trips +# Django Trips API + +This is a Django Rest API for fetching and creating trips and schedules. +## Installation +Simply do: +```bash +pip install django-trips +``` + +## Usage +Add the app into your installed apps in your project's settings file. +``` +INSTALLED_APPS = [ + ... + 'django_trips', +] +``` +## Migrate +``` +python manage.py migrate +``` +Add the following to your root `urls.py` or to your desired file location. +``` +urlpatterns = [ + ... + path('trips/', include(('django_trips.api.urls', 'trips-api'), namespace='trips-api')), +] +``` +You can replace `trips/` to any namespace you like for the api. + +## Generate random trips. +Before you generate random scripts, make sure you have the required settings available in your project. If you want to use the default settings set `USE_DEFAULT_TRIPS=True`. +The script depends upon these variables, if you don't want to use the default settings set the +following settings. +1. `TRIP_DESTINATIONS` +2. `TRIP_DEPARTURE_LOCATION` +3. `TRIP_LOCATIONS = TRIP_DEPARTURE_LOCATION + TRIP_DESTINATIONS` +4. `TRIP_HOSTS` +5. `TRIP_FACILITIES` +6. `TRIP_CATEGORIES` +7. `TRIP_GEARS` + +``` +python manage.py generate_trips --batch_size=100 +``` +Change the `batch_size` variable to create as much of trips you want. + +## API Endpoints +The following pages are served in the development: + +| Page | Method | URL | +|----------------------|------------------|----------------------------------------------- | +| Scheduled Trips List | GET | http://localhost:8000/api/trips/ | +| Available Trips List | GET | http://localhost:8000/api/trips/by/availability/ | +| Search Trip | GET | http://localhost:8000/api/trips?name=Boston/ | +| Single Trip | GET | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Update Trip | PUT | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Update Trip | PATCH | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Delete Trip | DELETE | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Destination | GET | http://localhost:8000/api/destinations/ | +| Destination Detail | GET | http://localhost:8000/api/destination/location-slug | +| All Trip Bookings | GET | http://localhost:8000/api/trip/bookings | +| Single Bookings | GET | http://localhost:8000/api/trip/booking/id | +| Single Trip Bookings | GET | http://localhost:8000/api/trip/<trip-slug>/bookings | | + + +### API permissions +| Authentication +|-------------------------- | +| `SessionAuthentication` | +| `BasicAuthentication` | + +| Permissions | +|------------------------- | +| `IsAuthenticated` | + + +### Trip List +`http://localhost:8000/api/trips/` + +This endpoint is used to list all the trips by schedule using the **GET** request type. These trips have specified +(fixed) schedule. These trips use django model `TripSchedule` for creating their schedule. Once the schedule is expired, +these trips do not renew automatically. +These are the trip with "**static**" schedule data. + +### Trip List by Availability +`http://localhost:8000/api/trips/by/availability/` + +There is another mechanism which would like you to define dynamic trips schedule. Which is using `TripAvailability` +model. In this model you can define the recurrence of any trip, weekly, daily, or monthly and these trip may +auto-renew themselves. They come handy when you have dynamic trips schedule. + +### Search Trip +`http://localhost:8000/api/trip/id-or-slug?destination=<destination name, destination name 2,>` + +Search specific trips. Here are the params that can be passed while searching. You can also mix the params together to +narrow down the search. + +| param | description | example | +| --- | --- |--- | +| name (str) | Find trips that contains specific name. | `/api/trips/?name=Boston` +| destination[] | Filter trips with specific destinations. | `destination=Boston,London` +| price_from (str) | Find trips that has price greater than or equal to the given amount | `/api/trips/?price_from=200` +| price_to (str) | Find trips that has price less than or equal to the given amount | `/api/trips/?price_to=200` +| duration_from (int) | Find trips having duration greater than or equal to the given number | `/api/trips/?duration_from=2` +| duration_to (int) | Find trips having duration less than or equal to the given number | `/api/trips/?duration_to=10` +| date_from (date) | Find trips that are scheduled greater than or specified date `<yyyy-mm-dd>` | `/api/trips/?date_from=2020-01-02` +| date_to (date) | Find trips that are scheduled less than or equal to specified date`<yyyy-mm-dd>` | `/api/trips/?date_from=2020-01-02` + + + +### Single Trip +`http://localhost:8000/api/trip/id-or-slug` + +This endpoint is used to fetch a single trip using GET request type. + +### Update Trip (using PUT) +`http://localhost:8000/api/trip/trip-id-or-slug/` + +This endpoint is used to update a single trip using PUT request type. You would need to pass the complete trip object. +```python +reset_of_params = {} +data = { + 'age_limit': 39, + **reset_of_params, +} +``` +### Update Trip (using PATCH) +`http://localhost:8000/api/trip/trip-id-or-slug/` +```python +data = { + 'age_limit': 39, +} +``` +### Update Trip (using PUT) +`http://localhost:8000/api/trip/trip-id-or-slug/` + +This endpoint is used to delete a single trip using DELETE request type. + +### Get Destinations List +`http://localhost:8000/api/destinations/` + +This endpoint is used to fetch all destinations available. + +### Get Destination Detail +`http://localhost:8000/api/destination/destination-slug` + +Given a slug, this endpoint provides detail about a single trip. + +### Create Trip booking +`http://localhost:8000/api/trip/bookings` + +#### GET: +Get all the trips list using the `GET` request method. +#### POST: +Create trip booking by giving the following "example" data in the `POST` request. +``` +{ + "name": "tom latham", + "trip": "5-days-trip-to-city-center", + "phone_number": "tom", + "cnic_number": "1234234-23423", + "email": "a@gmail.com", + "target_date": "2021-09-01", + "message": "Tom booking# 1" +} +``` + +### Single Trip booking Operations +`http://localhost:8000/api/trip/booking/<booking-id>/` + +Retrieve, Update & Delete a single trip booking. + +### All Trip Bookings +`http://localhost:8000/api/trip/<trip-slug>bookings/` + +Retrieve all bookings of a single trip. + +## Develop Django Trips +Kick the docker build using the following command. +``` +make build +``` +This task may take few minutes. + + +Once the build has been completed, spin up the docker and migrate the database. +```bash +> make run +> make shell +> make update_db +``` +Create a superuser with username `admin`. + +``` bash +> make shell +> python manage.py createsuperuser +``` + +Create batch of trips. Run the following command inside docker shell. +```bash +> python manage.py generate_trips --batch_size=100 +OR +> make random_trips +``` + +## Test +Run tests using the following command. +``` +make tests +``` +## Docker Commands + +| Action | Command | +|-----------------------------------|-------------------| +| Run Server | `make run` | +| Trail Logs | `make logs` | +| Attach sever | `make attach` | +| Stop server | `make stop` | +| * Destroy docker container. | `make destory` | + +_* caution, this will remove all your data._ + +## How to Contribute +Contributions are welcome! + + + +%package help +Summary: Development documents and examples for django-trips +Provides: python3-django-trips-doc +%description help +# Django Trips API + +This is a Django Rest API for fetching and creating trips and schedules. +## Installation +Simply do: +```bash +pip install django-trips +``` + +## Usage +Add the app into your installed apps in your project's settings file. +``` +INSTALLED_APPS = [ + ... + 'django_trips', +] +``` +## Migrate +``` +python manage.py migrate +``` +Add the following to your root `urls.py` or to your desired file location. +``` +urlpatterns = [ + ... + path('trips/', include(('django_trips.api.urls', 'trips-api'), namespace='trips-api')), +] +``` +You can replace `trips/` to any namespace you like for the api. + +## Generate random trips. +Before you generate random scripts, make sure you have the required settings available in your project. If you want to use the default settings set `USE_DEFAULT_TRIPS=True`. +The script depends upon these variables, if you don't want to use the default settings set the +following settings. +1. `TRIP_DESTINATIONS` +2. `TRIP_DEPARTURE_LOCATION` +3. `TRIP_LOCATIONS = TRIP_DEPARTURE_LOCATION + TRIP_DESTINATIONS` +4. `TRIP_HOSTS` +5. `TRIP_FACILITIES` +6. `TRIP_CATEGORIES` +7. `TRIP_GEARS` + +``` +python manage.py generate_trips --batch_size=100 +``` +Change the `batch_size` variable to create as much of trips you want. + +## API Endpoints +The following pages are served in the development: + +| Page | Method | URL | +|----------------------|------------------|----------------------------------------------- | +| Scheduled Trips List | GET | http://localhost:8000/api/trips/ | +| Available Trips List | GET | http://localhost:8000/api/trips/by/availability/ | +| Search Trip | GET | http://localhost:8000/api/trips?name=Boston/ | +| Single Trip | GET | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Update Trip | PUT | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Update Trip | PATCH | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Delete Trip | DELETE | http://localhost:8000/api/trip/trip-id-or-slug/ | +| Destination | GET | http://localhost:8000/api/destinations/ | +| Destination Detail | GET | http://localhost:8000/api/destination/location-slug | +| All Trip Bookings | GET | http://localhost:8000/api/trip/bookings | +| Single Bookings | GET | http://localhost:8000/api/trip/booking/id | +| Single Trip Bookings | GET | http://localhost:8000/api/trip/<trip-slug>/bookings | | + + +### API permissions +| Authentication +|-------------------------- | +| `SessionAuthentication` | +| `BasicAuthentication` | + +| Permissions | +|------------------------- | +| `IsAuthenticated` | + + +### Trip List +`http://localhost:8000/api/trips/` + +This endpoint is used to list all the trips by schedule using the **GET** request type. These trips have specified +(fixed) schedule. These trips use django model `TripSchedule` for creating their schedule. Once the schedule is expired, +these trips do not renew automatically. +These are the trip with "**static**" schedule data. + +### Trip List by Availability +`http://localhost:8000/api/trips/by/availability/` + +There is another mechanism which would like you to define dynamic trips schedule. Which is using `TripAvailability` +model. In this model you can define the recurrence of any trip, weekly, daily, or monthly and these trip may +auto-renew themselves. They come handy when you have dynamic trips schedule. + +### Search Trip +`http://localhost:8000/api/trip/id-or-slug?destination=<destination name, destination name 2,>` + +Search specific trips. Here are the params that can be passed while searching. You can also mix the params together to +narrow down the search. + +| param | description | example | +| --- | --- |--- | +| name (str) | Find trips that contains specific name. | `/api/trips/?name=Boston` +| destination[] | Filter trips with specific destinations. | `destination=Boston,London` +| price_from (str) | Find trips that has price greater than or equal to the given amount | `/api/trips/?price_from=200` +| price_to (str) | Find trips that has price less than or equal to the given amount | `/api/trips/?price_to=200` +| duration_from (int) | Find trips having duration greater than or equal to the given number | `/api/trips/?duration_from=2` +| duration_to (int) | Find trips having duration less than or equal to the given number | `/api/trips/?duration_to=10` +| date_from (date) | Find trips that are scheduled greater than or specified date `<yyyy-mm-dd>` | `/api/trips/?date_from=2020-01-02` +| date_to (date) | Find trips that are scheduled less than or equal to specified date`<yyyy-mm-dd>` | `/api/trips/?date_from=2020-01-02` + + + +### Single Trip +`http://localhost:8000/api/trip/id-or-slug` + +This endpoint is used to fetch a single trip using GET request type. + +### Update Trip (using PUT) +`http://localhost:8000/api/trip/trip-id-or-slug/` + +This endpoint is used to update a single trip using PUT request type. You would need to pass the complete trip object. +```python +reset_of_params = {} +data = { + 'age_limit': 39, + **reset_of_params, +} +``` +### Update Trip (using PATCH) +`http://localhost:8000/api/trip/trip-id-or-slug/` +```python +data = { + 'age_limit': 39, +} +``` +### Update Trip (using PUT) +`http://localhost:8000/api/trip/trip-id-or-slug/` + +This endpoint is used to delete a single trip using DELETE request type. + +### Get Destinations List +`http://localhost:8000/api/destinations/` + +This endpoint is used to fetch all destinations available. + +### Get Destination Detail +`http://localhost:8000/api/destination/destination-slug` + +Given a slug, this endpoint provides detail about a single trip. + +### Create Trip booking +`http://localhost:8000/api/trip/bookings` + +#### GET: +Get all the trips list using the `GET` request method. +#### POST: +Create trip booking by giving the following "example" data in the `POST` request. +``` +{ + "name": "tom latham", + "trip": "5-days-trip-to-city-center", + "phone_number": "tom", + "cnic_number": "1234234-23423", + "email": "a@gmail.com", + "target_date": "2021-09-01", + "message": "Tom booking# 1" +} +``` + +### Single Trip booking Operations +`http://localhost:8000/api/trip/booking/<booking-id>/` + +Retrieve, Update & Delete a single trip booking. + +### All Trip Bookings +`http://localhost:8000/api/trip/<trip-slug>bookings/` + +Retrieve all bookings of a single trip. + +## Develop Django Trips +Kick the docker build using the following command. +``` +make build +``` +This task may take few minutes. + + +Once the build has been completed, spin up the docker and migrate the database. +```bash +> make run +> make shell +> make update_db +``` +Create a superuser with username `admin`. + +``` bash +> make shell +> python manage.py createsuperuser +``` + +Create batch of trips. Run the following command inside docker shell. +```bash +> python manage.py generate_trips --batch_size=100 +OR +> make random_trips +``` + +## Test +Run tests using the following command. +``` +make tests +``` +## Docker Commands + +| Action | Command | +|-----------------------------------|-------------------| +| Run Server | `make run` | +| Trail Logs | `make logs` | +| Attach sever | `make attach` | +| Stop server | `make stop` | +| * Destroy docker container. | `make destory` | + +_* caution, this will remove all your data._ + +## How to Contribute +Contributions are welcome! + + + +%prep +%autosetup -n django - trips-0.2.10 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-trips -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.10-1 +- Package Spec generated @@ -0,0 +1 @@ +71940239b2ef26c2a8e8bc84f1e9319d django%20-%20trips-0.2.10.tar.gz |