Пример #1
0
        def update_action_view(request) -> None:
            context: Context = request.context
            args = context.get_request_body()
            validator: Validator = Validator()
            (validator.expect("action_id", int, is_required=True).expect(
                "title",
                str,
                is_required=False,
                options={
                    "min_length": 4,
                    "max_length": 40
                }).expect("calculator_action", int, is_required=False).expect(
                    "image",
                    "file",
                    is_required=False,
                    options={
                        "is_logo": True
                    }).expect("rank", int, is_required=False).expect(
                        "is_global", bool, is_required=False).expect(
                            "is_published", bool, is_required=False).expect(
                                "tags", list,
                                is_required=False).expect("vendors",
                                                          list,
                                                          is_required=False))

            args, err = validator.verify(args)
            if err:
                return err

            action_info, err = self.service.update_action(context, args)
            if err:
                return MassenergizeResponse(error=str(err), status=err.status)

            return MassenergizeResponse(data=action_info)
Пример #2
0
        def update_vendor_view(request) -> None:
            context: Context = request.context
            args = context.get_request_body()
            args = rename_field(args, 'id', 'vendor_id')
            validator: Validator = Validator()
            (validator.expect("vendor_id", int).expect(
                "key_contact_name", str, is_required=False).expect(
                    "key_contact_email", str, is_required=False).expect(
                        "onboarding_contact_email", str,
                        is_required=False).expect(
                            "name", str, is_required=False).expect(
                                "email", str, is_required=False).expect(
                                    "is_verified", bool,
                                    is_required=False).expect(
                                        "phone_number", str,
                                        is_required=False).expect(
                                            "have_address",
                                            bool,
                                            is_required=False).expect(
                                                "is_published",
                                                bool,
                                                is_required=False).expect(
                                                    "communities",
                                                    list,
                                                    is_required=False).
             expect("service_area_states", list, is_required=False).expect(
                 "properties_serviced",
                 list, is_required=False).expect("tags",
                                                 list,
                                                 is_required=False).expect(
                                                     "image",
                                                     "file",
                                                     is_required=False).expect(
                                                         "location",
                                                         "location",
                                                         is_required=False))

            args, err = validator.verify(args)
            if err:
                return err

            args['key_contact'] = {}
            key_contact_name = args.pop('key_contact_name', None)
            key_contact_email = args.pop('key_contact_email', None)
            if key_contact_name:
                args['key_contact']["name"] = key_contact_name
            if key_contact_email:
                args['key_contact']["email"] = key_contact_email

            vendor_info, err = self.service.update_vendor(context, args)
            if err:
                return MassenergizeResponse(error=str(err), status=err.status)
            return MassenergizeResponse(data=vendor_info)
Пример #3
0
        def action_info_view(request) -> None:
            context: Context = request.context
            args: dict = context.args
            # verify the body of the incoming request
            v: Validator = Validator()
            v.expect("action_id", str, is_required=True)
            v.rename("id", "action_id")
            args, err = v.verify(args, strict=True)
            if err:
                return err

            action_id = args.pop('action_id', None)
            action_info, err = self.service.get_action_info(context, action_id)
            if err:
                return MassenergizeResponse(error=str(err), status=err.status)
            return MassenergizeResponse(data=action_info)
Пример #4
0
    def remove_super_admin_view(request) -> None: 
      context: Context  = request.context
      args = context.get_request_body() 
      validator: Validator = Validator()
      (validator
        .add("user_id", str, is_required=False)
        .add("email", str, is_required=False)
      )
      args, err = validator.verify(args)
      if err:
        return err

      admin_info, err = self.service.remove_super_admin(context, args)
      if err:
        return err
      return MassenergizeResponse(data=admin_info)
Пример #5
0
        def create_vendor_view(request) -> None:
            context: Context = request.context
            args = context.get_request_body()
            validator: Validator = Validator()
            (validator.expect("key_contact_name", str).expect(
                "key_contact_email",
                str).expect("onboarding_contact_email", str).expect(
                    "name", str).expect("email", str).expect(
                        "phone_number",
                        str).expect("have_address", bool).expect(
                            "is_verified",
                            bool).expect("is_published", bool).expect(
                                "communities", list, is_required=False).expect(
                                    "service_area_states",
                                    list,
                                    is_required=False).expect(
                                        "properties_serviced",
                                        list,
                                        is_required=False).expect(
                                            "image", "file",
                                            is_required=False).expect(
                                                "tags",
                                                list,
                                                is_required=False).expect(
                                                    "location",
                                                    "location",
                                                    is_required=False))

            args, err = validator.verify(args)
            if err:
                return err

            args = parse_location(args)

            #TODO: remove this after deploy
            args.pop('accept_terms_and_conditions', None)

            args['key_contact'] = {
                "name": args.pop('key_contact_name', None),
                "email": args.pop('key_contact_email', None)
            }

            vendor_info, err = self.service.create_vendor(context, args)
            if err:
                return MassenergizeResponse(error=str(err), status=err.status)
            return MassenergizeResponse(data=vendor_info)
Пример #6
0
    def list_messages_view(request) -> None: 
      context: Context  = request.context
      args = context.get_request_body() 
      validator: Validator = Validator()
      (validator
        .add("community_id", str, is_required=False)
        .add("subdomain", str, is_required=False)
      )

      args, err = validator.verify(args)
      if err:
        return err

      admin_info, err = self.service.list_admin_messages(context, args)
      if err:
        return err
      return MassenergizeResponse(data=admin_info)
Пример #7
0
        def list_graph_view(request) -> None:
            context: Context = request.context
            args: dict = context.args

            # verify the body of the incoming request
            v: Validator = Validator()
            v.expect("community_id", str, False)
            v.expect("subdomain", str, False)
            v.rename("id", "community_id")
            args, err = v.verify(args, strict=True)
            if err:
                return err

            graph_info, err = self.service.list_graphs(context, args)
            if err:
                return MassenergizeResponse(error=str(err), status=err.status)
            return MassenergizeResponse(data=graph_info)
Пример #8
0
    def add_community_admin_view(request) -> None: 
      context: Context  = request.context
      args = context.get_request_body() 
      validator: Validator = Validator()
      (validator
        .expect("name", str, is_required=True)
        .expect("email", str, is_required=True)
        .expect("community_id", str, is_required=False)
        .expect("subdomain", str, is_required=False)
      )

      args, err = validator.verify(args)
      if err:
        return err

      admin_info, err = self.service.add_community_admin(context, args)
      if err:
        return err
      return MassenergizeResponse(data=admin_info)
Пример #9
0
    def create_subscriber_view(request) -> None: 
      context: Context = request.context
      args: dict = context.args

      validator: Validator = Validator()
      (validator
        .add("name", str, is_required=True)
        .add("email", str, is_required=True)
      )

      args, err = validator.verify(args)
      if err:
        return err
      
      community_id = args.pop('community_id', None)
      is_global = args.pop('is_global', None)
      if is_global:
        args["is_global"] = parse_bool(is_global)
      subscriber_info, err = self.service.create_subscriber(community_id ,args)
      if err:
        return MassenergizeResponse(error=str(err), status=err.status)
      return MassenergizeResponse(data=subscriber_info)
Пример #10
0
 def __init__(self):
     self.routes = {}
     self.validator = Validator()