# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# 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.

# Note the app name used to be "samplesyncadapter2", but it's now "samplesyncadapterhr" because
# it's been migrated to HR.  But it's still accessible under the old URL,
# http://samplesyncadapter2.appspot.com/
application: samplesyncadapterhr
version: 1
runtime: python
api_version: 1

handlers:

#
# Define a handler for our static files (css, images, etc)
#
- url: /static
  static_dir: static

#
# Route all "web services" requests to the main.py file
#
- url: /auth
  script: web_services.py

- url: /sync
  script: web_services.py

- url: /reset_database
  script: web_services.py
  
#
# Route all page requests to the dashboard.py file
#
- url: /
  script: dashboard.py

- url: /add_contact
  script: dashboard.py

- url: /edit_contact
  script: dashboard.py

- url: /delete_contact
  script: dashboard.py

- url: /avatar
  script: dashboard.py

- url: /edit_avatar
  script: dashboard.py
